In this study, new techniques and algorithms are presented for the derivation and optimisation of mixed polarity Reed Muller (MPRM) and mixed polarity dual Reed Muller (MPDRM) functions. The first algorithm is used for bidirectional conversion between fixed polarity dual Reed Muller (FPDRM) and MPDRM and to derive any polarity from another polarity. The second algorithm is used to generate reduced MPDRM expressions from FPDRM using a new procedure based on tabular techniques. The third algorithm is proposed for bidirectional conversion between sum of products (SOP)/product of sums (POS) and MPRM/MPDRM forms, respectively. It can also be used to derive any mixed polarity from another MPRM/MPDRM. The last algorithm is to find optimal MPRM/MPDRM among 3n different polarities using genetic algorithm (GA) for large functions but without generating all the polarity sets. The proposed algorithms are efficient in terms of memory size and CPU time and can be used for large functions. Experimental results are given using a personal computer with an Intel CPU of 2.4 GHz and 2 GB RAM. All algorithms are implemented using C and fully tested with benchmark examples.