Software Implementation of Mathematical Functions for Modern Processors
The processors that support floating-point arithmetic instructions rarely have instructions for accurately calculating mathematical functions, such as exponential and trigonometric functions. Therefore, we require programs (software implementations) that can only be computed using the instructions contained in the processor. Because these mathematical functions often hinder the performance, there is a need for software programs that are fast. We are exploring high-performance software implementations of various mathematical functions that take advantage of recent processor features such as pipelined arithmetic units, out-of-order execution, and fused multiply and add instructions.