This patch adds a new reference file for the telecomm-FFT multisource benchmarkupdate the telecomm-FFT benchmark to use saved sin/cos values for some inputs, to account
for AIX.
A reference file is added for AIX to account for the differences of the AIX libm math library
compared to the Linux libm,. with the AIX version of the sin and cos functions producing slightly
less accurate results. The reference file change is justified by the following experiments.
An experiment was conductedWhen compared to Linux libm, where the telecomm-FFT benchmark was linked withwith the AIX version of the
the sin and cos functions from the AIX scalar MASS library (a high-performance alternative to libm).
When linked with scalar MASS, the benchmark passed, producing the same results as the Linux
reference file and the same results as the benchmark linked with Linux libmproducing slightly less accurate results (with 1 ulp).
FurthermoreThe AIX sin function produces different results when the input is (pi/4) or (pi/16), another experiment that was conducted where the arguments to thewhereas the cos function
sin and cos calls in `fourierf.c` were passed into the AIXproduces different results for the input (pi/4). The Linux libm sin and cos functions/cos results based off these inputs are saved
and also the AIX scalar MASS sin and cos functions. The results of the libm sin and cos
calls and the MASS sin and cos calls were compared against one another. The results were
found to differ by a maximum of 1 ulp (unit in the last place) for both sin and cos, which is
within an acceptable accuracy tolerance for such mathematical function libraries, and would
not normally be cause for any defects.
Since the telecomm-FFT benchmark passes when linked with AIX scalar MASS, and the sin ands three const-declared variables and substituted in when appropriate to ensure the benchmark on AIX
cos functions used in the benchmark behave within an acceptable accuracy tolerance betweenproduces the same results.
AIX scalar MASS and AIX libm, the use of the new reference file for AIX libm is reasonable.