A processor comprising: decoding circuitry configured to decode an instruction, wherein the instruction comprises a first operand specifying an output location, a second operand specifying a plurality of data element values to be computed, and a third operand specifying a precision requirement for the computation; and execution circuitry configured to execute the decoded instruction, wherein the execution is configured to: compute a result for each of the plurality of data element values using a polynomial function to approximate a complex function, wherein the computation uses coefficients stored in a lookup table for the complex function, wherein the lookup table is selected from among a plurality of lookup tables for different precisions based on the third operand, and wherein data element values within different data element value ranges use different sets of coefficients, and store results of the computation in the output location, wherein widths for the different data element value ranges are different, wherein the execution circuitry is configured to compare a data element value with a plurality of mappings stored in the lookup table in parallel for range determination of the data element value, each mapping being between a data element value range and a set of coefficients for the polynomial function to approximate the complex function. decoding circuitry configured to decode an instruction, wherein the instruction comprises a first operand specifying an output location, a second operand specifying a plurality of data element values to be computed, and a third operand specifying a precision requirement for the computation; and execution circuitry configured to execute the decoded instruction, wherein the execution is configured to: compute a result for each of the plurality of data element values using a polynomial function to approximate a complex function, wherein the computation uses coefficients stored in a lookup table for the complex function, wherein the lookup table is selected from among a plurality of lookup tables for different precisions based on the third operand, and wherein data element values within different data element value ranges use different sets of coefficients, and store results of the computation in the output location, compute a result for each of the plurality of data element values using a polynomial function to approximate a complex function, wherein the computation uses coefficients stored in a lookup table for the complex function, wherein the lookup table is selected from among a plurality of lookup tables for different precisions based on the third operand, and wherein data element values within different data element value ranges use different sets of coefficients, and store results of the computation in the output location, wherein widths for the different data element value ranges are different, wherein the execution circuitry is configured to compare a data element value with a plurality of mappings stored in the lookup table in parallel for range determination of the data element value, each mapping being between a data element value range and a set of coefficients for the polynomial function to approximate the complex function.