302 the process generates combinations of multiple channel input symbol patterns for a single polarization and polmux coefficients in block 304 next one dimensional symbol patterns are generated using predetermined rules in block 306 the pattern is provided to a non linearity compensation processor 314 the processor has access to programmatic details of the back propagation method in block 310 or other non linearity compensation methods to select from block 312 the processed output is saved to a non linearity compensation look up table 316 or is used to update the look up table 316 turning now to the real time processing module 330 multiple channel input binary data is applied by block 332 to generate the symbol pattern using the predetermined rule used in block 306 next the process searches the look up table with the input symbol pattern in block 334 the result of the table look up is provided to a dac the real time processing module 330 also receives data from a multiple channel joint non linearity compensation block 340 the multiple channel joint non linearity compensation block 340 receives multiple channel input binary data 342 for single polarization and multiple channel input binary data 344 for polmux the output of the non linearity compensation block 340 is provided to a dac array 350 that drives a single polarization driver modulator 352 and a polmux driver modulator 354 the outputs of modulators 352 and 354 are provided to the awg and the transmission line 356 in the foregoing embodiments the non linearity compensation processing.