In general, the programming objectives of the floating-point applications fall into the following categories:
Accuracy: The application produces that results that are close to the correct result.
Reproducibility and portability: The application produces results that are consistent across different runs, different set of build options, different compilers, different platforms, and different architectures.
Performance: The application produces the most efficient code possible.
Based on the goal of an application, you will need to balance the tradeoffs among these objectives. For example, if you are developing a 3D graphics engine, then performance can be the most important factor to consider, and reproducibility and accuracy can be your secondary concerns.
IntelĀ® Compiler provides appropriate compiler options, such as the -fp-model (Linux* and Mac OS* X) or /fp (Windows*) option, which allows you to tune your applications based on specific objectives. The compiler processes the code differently when you specify different compiler options.
In most case, an application will be much more complicated. You should select appropriate compiler options by carefully considering your programming objectives and balancing the tradeoffs among these objectives.