| // |
| // Copyright (c) 2017 The Khronos Group Inc. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| #ifndef REFERENCE_MATH_H |
| #define REFERENCE_MATH_H |
| |
| #if defined( __APPLE__ ) |
| #include <OpenCL/opencl.h> |
| #else |
| #include <CL/cl.h> |
| #endif |
| |
| // -- for testing float -- |
| double reference_sinh( double x ); |
| double reference_sqrt( double x ); |
| double reference_tanh( double x ); |
| double reference_acos( double ); |
| double reference_asin( double ); |
| double reference_atan( double ); |
| double reference_atan2( double, double ); |
| double reference_ceil( double ); |
| double reference_cosh( double ); |
| double reference_exp( double ); |
| double reference_fabs( double ); |
| double reference_acospi( double ); |
| double reference_asinpi( double ); |
| double reference_atanpi( double ); |
| double reference_atan2pi( double, double ); |
| double reference_cospi( double ); |
| double reference_divide( double, double ); |
| double reference_fract( double, double * ); |
| float reference_fma( float, float, float, int ); |
| double reference_mad( double, double, double ); |
| double reference_nextafter(double, double ); |
| double reference_recip( double ); |
| double reference_rootn( double, int ); |
| double reference_rsqrt( double ); |
| double reference_sincos( double, double * ); |
| double reference_sinpi( double ); |
| double reference_tanpi( double ); |
| double reference_pow(double x, double y); |
| double reference_pown( double, int ); |
| double reference_powr( double, double ); |
| double reference_cos( double ); |
| double reference_sin( double ); |
| double reference_tan( double ); |
| double reference_log( double ); |
| double reference_log10( double ); |
| double reference_modf( double, double *n ); |
| |
| double reference_fdim( double, double ); |
| double reference_add( double, double ); |
| double reference_subtract( double, double ); |
| double reference_divide( double, double ); |
| double reference_multiply( double, double ); |
| double reference_remquo( double, double, int* ); |
| double reference_lgamma_r( double, int* ); |
| |
| int reference_isequal( double, double ); |
| int reference_isfinite( double ); |
| int reference_isgreater( double, double ); |
| int reference_isgreaterequal( double, double ); |
| int reference_isinf( double ); |
| int reference_isless( double, double ); |
| int reference_islessequal( double, double ); |
| int reference_islessgreater( double, double ); |
| int reference_isnan( double ); |
| int reference_isnormal( double ); |
| int reference_isnotequal( double, double ); |
| int reference_isordered( double, double ); |
| int reference_isunordered( double, double ); |
| int reference_signbit( float ); |
| |
| double reference_acosh( double x ); |
| double reference_asinh( double x ); |
| double reference_atanh( double x ); |
| double reference_cbrt(double x); |
| float reference_copysign( float x, float y); |
| double reference_copysignd( double x, double y); |
| double reference_exp10( double ); |
| double reference_exp2( double x ); |
| double reference_expm1( double x ); |
| double reference_fmax( double x, double y ); |
| double reference_fmin( double x, double y ); |
| double reference_hypot( double x, double y ); |
| double reference_lgamma( double x); |
| int reference_ilogb( double ); |
| double reference_log2( double x ); |
| double reference_log1p( double x ); |
| double reference_logb( double x ); |
| double reference_maxmag( double x, double y ); |
| double reference_minmag( double x, double y ); |
| double reference_nan( cl_uint x ); |
| double reference_reciprocal( double x ); |
| double reference_remainder( double x, double y ); |
| double reference_rint( double x ); |
| double reference_round( double x ); |
| double reference_trunc( double x ); |
| double reference_floor( double x ); |
| double reference_fmod( double x, double y ); |
| double reference_frexp( double x, int *n ); |
| double reference_ldexp( double x, int n ); |
| |
| double reference_assignment( double x ); |
| int reference_not( double x ); |
| // -- for testing fast-relaxed |
| |
| double reference_relaxed_mad( double, double, double ); |
| double reference_relaxed_divide( double x, double y ); |
| double reference_relaxed_sin( double x ); |
| double reference_relaxed_cos( double x ); |
| double reference_relaxed_sincos( double x, double * y); |
| double reference_relaxed_tan( double x ); |
| double reference_relaxed_exp( double x ); |
| double reference_relaxed_exp2( double x ); |
| double reference_relaxed_exp10( double x ); |
| double reference_relaxed_log( double x ); |
| double reference_relaxed_log2( double x ); |
| double reference_relaxed_pow( double x, double y); |
| double reference_relaxed_reciprocal( double x ); |
| |
| // -- for testing double -- |
| |
| long double reference_sinhl( long double x ); |
| long double reference_sqrtl( long double x ); |
| long double reference_tanhl( long double x ); |
| long double reference_acosl( long double ); |
| long double reference_asinl( long double ); |
| long double reference_atanl( long double ); |
| long double reference_atan2l( long double, long double ); |
| long double reference_ceill( long double ); |
| long double reference_coshl( long double ); |
| long double reference_expl( long double ); |
| long double reference_fabsl( long double ); |
| long double reference_acospil( long double ); |
| long double reference_asinpil( long double ); |
| long double reference_atanpil( long double ); |
| long double reference_atan2pil( long double, long double ); |
| long double reference_cospil( long double ); |
| long double reference_dividel( long double, long double ); |
| long double reference_fractl( long double, long double * ); |
| long double reference_fmal( long double, long double, long double ); |
| long double reference_madl( long double, long double, long double ); |
| long double reference_nextafterl(long double, long double ); |
| long double reference_recipl( long double ); |
| long double reference_rootnl( long double, int ); |
| long double reference_rsqrtl( long double ); |
| long double reference_sincosl( long double, long double * ); |
| long double reference_sinpil( long double ); |
| long double reference_tanpil( long double ); |
| long double reference_powl(long double x, long double y); |
| long double reference_pownl( long double, int ); |
| long double reference_powrl( long double, long double ); |
| long double reference_cosl( long double ); |
| long double reference_sinl(long double ); |
| long double reference_tanl( long double ); |
| long double reference_logl( long double ); |
| long double reference_log10l( long double ); |
| long double reference_modfl( long double, long double *n ); |
| |
| |
| long double reference_fdiml( long double, long double ); |
| long double reference_addl( long double, long double ); |
| long double reference_subtractl( long double, long double ); |
| long double reference_dividel( long double, long double ); |
| long double reference_multiplyl( long double, long double ); |
| long double reference_remquol( long double, long double, int* ); |
| long double reference_lgamma_rl( long double, int* ); |
| |
| |
| int reference_isequall( long double, long double ); |
| int reference_isfinitel( long double ); |
| int reference_isgreaterl( long double, long double ); |
| int reference_isgreaterequall( long double, long double ); |
| int reference_isinfl( long double ); |
| int reference_islessl( long double, long double ); |
| int reference_islessequall( long double, long double ); |
| int reference_islessgreaterl( long double, long double ); |
| int reference_isnanl( long double ); |
| int reference_isnormall( long double ); |
| int reference_isnotequall( long double, long double ); |
| int reference_isorderedl( long double, long double ); |
| int reference_isunorderedl( long double, long double ); |
| int reference_signbitl( long double ); |
| |
| long double reference_acoshl( long double x ); |
| long double reference_asinhl( long double x ); |
| long double reference_atanhl( long double x ); |
| long double reference_cbrtl(long double x); |
| long double reference_copysignl( long double x, long double y); |
| long double reference_exp10l( long double ); |
| long double reference_exp2l( long double x ); |
| long double reference_expm1l( long double x ); |
| long double reference_fmaxl( long double x, long double y ); |
| long double reference_fminl( long double x, long double y ); |
| long double reference_hypotl( long double x, long double y ); |
| long double reference_lgammal( long double x); |
| int reference_ilogbl( long double ); |
| long double reference_log2l( long double x ); |
| long double reference_log1pl( long double x ); |
| long double reference_logbl( long double x ); |
| long double reference_maxmagl( long double x, long double y ); |
| long double reference_minmagl( long double x, long double y ); |
| long double reference_nanl( cl_ulong x ); |
| long double reference_reciprocall( long double x ); |
| long double reference_remainderl( long double x, long double y ); |
| long double reference_rintl( long double x ); |
| long double reference_roundl( long double x ); |
| long double reference_truncl( long double x ); |
| long double reference_floorl( long double x ); |
| long double reference_fmodl( long double x, long double y ); |
| long double reference_frexpl( long double x, int *n ); |
| long double reference_ldexpl( long double x, int n ); |
| |
| long double reference_assignmentl( long double x ); |
| int reference_notl( long double x ); |
| |
| #endif |
| |
| |