STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
amp_math.h
Go to the documentation of this file.
1 /***
2 * ==++==
3 *
4 * Copyright (c) Microsoft Corporation. All rights reserved.
5 *
6 * ==--==
7 * =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
8 *
9 * amp_math.h
10 *
11 * C++ AMP Math Library
12 *
13 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
14 ****/
15 
16 #pragma once
17 
18 #include <cmath>
19 #include <amprt.h>
20 
21 #define _AMP_MATH_H
22 
23 extern "C"
24 {
25 
26 //=============================================================================
27 // fast_math intrinsics.
28 //=============================================================================
29 float __dp_d3d_absf(float) __GPU_ONLY;
30 float __dp_d3d_acosf(float) __GPU_ONLY;
31 float __dp_d3d_asinf(float) __GPU_ONLY;
32 float __dp_d3d_atanf(float) __GPU_ONLY;
33 float __dp_d3d_atan2f(float, float) __GPU_ONLY;
34 float __dp_d3d_ceilf(float) __GPU_ONLY;
35 float __dp_d3d_cosf(float) __GPU_ONLY;
36 float __dp_d3d_coshf(float) __GPU_ONLY;
37 float __dp_d3d_expf(float) __GPU_ONLY;
38 float __dp_d3d_exp2f(float) __GPU_ONLY;
39 float __dp_d3d_floorf(float) __GPU_ONLY;
40 float __dp_d3d_fmodf(float, float) __GPU_ONLY;
41 float __dp_d3d_fracf(float) __GPU_ONLY;
42 float __dp_d3d_frexpf(float, _Out_ float *) __GPU_ONLY;
44 int __dp_d3d_isinff(float) __GPU_ONLY;
45 int __dp_d3d_isnanf(float) __GPU_ONLY;
46 float __dp_d3d_ldexpf(float, float) __GPU_ONLY;
47 float __dp_d3d_logf(float) __GPU_ONLY;
48 float __dp_d3d_log10f(float) __GPU_ONLY;
49 float __dp_d3d_log2f(float) __GPU_ONLY;
50 float __dp_d3d_maxf(float, float) __GPU_ONLY;
51 float __dp_d3d_minf(float, float) __GPU_ONLY;
52 float __dp_d3d_modff(float, _Out_ float *) __GPU_ONLY;
53 float __dp_d3d_powf(float, float) __GPU_ONLY;
54 float __dp_d3d_roundf(float) __GPU_ONLY;
55 float __dp_d3d_rsqrtf(float) __GPU_ONLY;
56 int __dp_d3d_signf(float) __GPU_ONLY;
57 float __dp_d3d_sincosf(float, _Out_ float *) __GPU_ONLY;
58 float __dp_d3d_sinf(float) __GPU_ONLY;
59 float __dp_d3d_sinhf(float) __GPU_ONLY;
60 float __dp_d3d_sqrtf(float) __GPU_ONLY;
61 float __dp_d3d_tanf(float) __GPU_ONLY;
62 float __dp_d3d_tanhf(float) __GPU_ONLY;
63 float __dp_d3d_truncf(float) __GPU_ONLY;
64 
65 //=============================================================================
66 // Single-precision precise_math intrinsics.
67 //=============================================================================
68 float __dp_math_acosf(float) __GPU_ONLY;
69 float __dp_math_acoshf(float) __GPU_ONLY;
70 float __dp_math_asinf(float) __GPU_ONLY;
71 float __dp_math_asinhf(float) __GPU_ONLY;
72 float __dp_math_atanf(float) __GPU_ONLY;
73 float __dp_math_atan2f(float, float) __GPU_ONLY;
74 float __dp_math_atanhf(float) __GPU_ONLY;
75 float __dp_math_cbrtf(float) __GPU_ONLY;
76 float __dp_math_ceilf(float) __GPU_ONLY;
77 float __dp_math_copysignf(float, float) __GPU_ONLY;
78 float __dp_math_cosf(float) __GPU_ONLY;
79 float __dp_math_coshf(float) __GPU_ONLY;
80 float __dp_math_cospif(float) __GPU_ONLY;
81 float __dp_math_erff(float) __GPU_ONLY;
82 float __dp_math_erfcf(float) __GPU_ONLY;
83 float __dp_math_erfinvf(float) __GPU_ONLY;
84 float __dp_math_erfcinvf(float) __GPU_ONLY;
85 float __dp_math_expf(float) __GPU_ONLY;
86 float __dp_math_exp2f(float) __GPU_ONLY;
87 float __dp_math_exp10f(float) __GPU_ONLY;
88 float __dp_math_expm1f(float) __GPU_ONLY;
89 float __dp_math_fabsf(float) __GPU_ONLY;
90 float __dp_math_fdimf(float, float) __GPU_ONLY;
91 float __dp_math_floorf(float) __GPU_ONLY;
92 float __dp_math_fmaf(float, float, float) __GPU_ONLY;
93 float __dp_math_fmaxf(float, float) __GPU_ONLY;
94 float __dp_math_fminf(float, float) __GPU_ONLY;
95 float __dp_math_fmodf(float, float) __GPU_ONLY;
97 float __dp_math_frexpf(float, _Out_ int *) __GPU_ONLY;
98 float __dp_math_hypotf(float, float) __GPU_ONLY;
99 int __dp_math_ilogbf(float) __GPU_ONLY;
101 int __dp_math_isinff(float) __GPU_ONLY;
102 int __dp_math_isnanf(float) __GPU_ONLY;
104 float __dp_math_ldexpf(float, int) __GPU_ONLY;
105 float __dp_math_lgammaf(float, _Out_ int *) __GPU_ONLY;
106 float __dp_math_logf(float) __GPU_ONLY;
107 float __dp_math_log10f(float) __GPU_ONLY;
108 float __dp_math_log2f(float) __GPU_ONLY;
109 float __dp_math_log1pf(float) __GPU_ONLY;
110 float __dp_math_logbf(float) __GPU_ONLY;
111 float __dp_math_modff(float, _Out_ float *) __GPU_ONLY;
112 float __dp_math_nanf(int) __GPU_ONLY;
113 float __dp_math_nearbyintf(float) __GPU_ONLY;
114 float __dp_math_nextafterf(float, float) __GPU_ONLY;
115 float __dp_math_phif(float) __GPU_ONLY;
116 float __dp_math_powf(float, float) __GPU_ONLY;
117 float __dp_math_probitf(float) __GPU_ONLY;
118 float __dp_math_rcbrtf(float) __GPU_ONLY;
119 float __dp_math_remainderf(float, float) __GPU_ONLY;
120 float __dp_math_remquof(float, float, _Out_ int *) __GPU_ONLY;
121 float __dp_math_roundf(float) __GPU_ONLY;
122 float __dp_math_rsqrtf(float) __GPU_ONLY;
123 float __dp_math_scalbf(float, float) __GPU_ONLY;
124 float __dp_math_scalbnf(float, int) __GPU_ONLY;
125 int __dp_math_signbitf(float) __GPU_ONLY;
126 float __dp_math_sinf(float) __GPU_ONLY;
127 float __dp_math_sincosf(float, _Out_ float *) __GPU_ONLY;
128 float __dp_math_sinpif(float) __GPU_ONLY;
129 float __dp_math_sinhf(float) __GPU_ONLY;
130 float __dp_math_sqrtf(float) __GPU_ONLY;
131 float __dp_math_tanf(float) __GPU_ONLY;
132 float __dp_math_tanhf(float) __GPU_ONLY;
133 float __dp_math_tanpif(float) __GPU_ONLY;
134 float __dp_math_tgammaf(float) __GPU_ONLY;
135 float __dp_math_truncf(float) __GPU_ONLY;
136 
137 //=============================================================================
138 // Double-precision precise_math intrinsics.
139 //=============================================================================
140 double __dp_math_acos(double) __GPU_ONLY;
141 double __dp_math_acosh(double) __GPU_ONLY;
142 double __dp_math_asin(double) __GPU_ONLY;
143 double __dp_math_asinh(double) __GPU_ONLY;
144 double __dp_math_atan(double) __GPU_ONLY;
145 double __dp_math_atan2(double, double) __GPU_ONLY;
146 double __dp_math_atanh(double) __GPU_ONLY;
147 double __dp_math_cbrt(double) __GPU_ONLY;
148 double __dp_math_ceil(double) __GPU_ONLY;
149 double __dp_math_copysign(double, double) __GPU_ONLY;
150 double __dp_math_cos(double) __GPU_ONLY;
151 double __dp_math_cosh(double) __GPU_ONLY;
152 double __dp_math_cospi(double) __GPU_ONLY;
153 double __dp_math_erf(double) __GPU_ONLY;
154 double __dp_math_erfc(double) __GPU_ONLY;
155 double __dp_math_erfinv(double) __GPU_ONLY;
156 double __dp_math_erfcinv(double) __GPU_ONLY;
157 double __dp_math_exp(double) __GPU_ONLY;
158 double __dp_math_exp2(double) __GPU_ONLY;
159 double __dp_math_exp10(double) __GPU_ONLY;
160 double __dp_math_expm1(double) __GPU_ONLY;
161 double __dp_math_fabs(double) __GPU_ONLY;
162 double __dp_math_fdim(double, double) __GPU_ONLY;
163 double __dp_math_floor(double) __GPU_ONLY;
164 double __dp_math_fma(double, double, double) __GPU_ONLY;
165 double __dp_math_fmax(double, double) __GPU_ONLY;
166 double __dp_math_fmin(double, double) __GPU_ONLY;
167 double __dp_math_fmod(double, double) __GPU_ONLY;
168 int __dp_math_fpclassify(double) __GPU_ONLY;
169 double __dp_math_frexp(double, _Out_ int *) __GPU_ONLY;
170 double __dp_math_hypot(double, double) __GPU_ONLY;
171 int __dp_math_ilogb(double) __GPU_ONLY;
172 int __dp_math_isfinite(double) __GPU_ONLY;
173 int __dp_math_isinf(double) __GPU_ONLY;
174 int __dp_math_isnan(double) __GPU_ONLY;
175 int __dp_math_isnormal(double) __GPU_ONLY;
176 double __dp_math_ldexp(double, int) __GPU_ONLY;
177 double __dp_math_lgamma(double, _Out_ int *) __GPU_ONLY;
178 double __dp_math_log(double) __GPU_ONLY;
179 double __dp_math_log10(double) __GPU_ONLY;
180 double __dp_math_log2(double) __GPU_ONLY;
181 double __dp_math_log1p(double) __GPU_ONLY;
182 double __dp_math_logb(double) __GPU_ONLY;
183 double __dp_math_modf(double, _Out_ double *) __GPU_ONLY;
184 double __dp_math_nan(int) __GPU_ONLY;
185 double __dp_math_nearbyint(double) __GPU_ONLY;
186 double __dp_math_nextafter(double, double) __GPU_ONLY;
187 double __dp_math_phi(double) __GPU_ONLY;
188 double __dp_math_pow(double, double) __GPU_ONLY;
189 double __dp_math_probit(double) __GPU_ONLY;
190 double __dp_math_rcbrt(double) __GPU_ONLY;
191 double __dp_math_remainder(double, double) __GPU_ONLY;
192 double __dp_math_remquo(double, double, _Out_ int *) __GPU_ONLY;
193 double __dp_math_round(double) __GPU_ONLY;
194 double __dp_math_rsqrt(double) __GPU_ONLY;
195 double __dp_math_scalb(double, double) __GPU_ONLY;
196 double __dp_math_scalbn(double, int) __GPU_ONLY;
197 int __dp_math_signbit(double) __GPU_ONLY;
198 double __dp_math_sin(double) __GPU_ONLY;
199 double __dp_math_sincos(double, _Out_ double *) __GPU_ONLY;
200 double __dp_math_sinpi(double) __GPU_ONLY;
201 double __dp_math_sinh(double) __GPU_ONLY;
202 double __dp_math_sqrt(double) __GPU_ONLY;
203 double __dp_math_tan(double) __GPU_ONLY;
204 double __dp_math_tanh(double) __GPU_ONLY;
205 double __dp_math_tanpi(double) __GPU_ONLY;
206 double __dp_math_tgamma(double) __GPU_ONLY;
207 double __dp_math_trunc(double) __GPU_ONLY;
208 }
209 
210 namespace Concurrency
211 {
216 namespace fast_math
217 {
227  inline float fabsf(float _X) __GPU_ONLY
228  {
229  return __dp_d3d_absf(_X);
230  }
231 
241  inline float fabs(float _X) __GPU_ONLY
242  {
243  return __dp_d3d_absf(_X);
244  }
245 
255  inline float acosf(float _X) __GPU_ONLY
256  {
257  return __dp_d3d_acosf(_X);
258  }
259 
269  inline float acos(float _X) __GPU_ONLY
270  {
271  return __dp_d3d_acosf(_X);
272  }
273 
283  inline float asinf(float _X) __GPU_ONLY
284  {
285  return __dp_d3d_asinf(_X);
286  }
287 
297  inline float asin(float _X) __GPU_ONLY
298  {
299  return __dp_d3d_asinf(_X);
300  }
301 
311  inline float atanf(float _X) __GPU_ONLY
312  {
313  return __dp_d3d_atanf(_X);
314  }
315 
325  inline float atan(float _X) __GPU_ONLY
326  {
327  return __dp_d3d_atanf(_X);
328  }
329 
342  inline float atan2f(float _Y, float _X) __GPU_ONLY
343  {
344  return __dp_d3d_atan2f(_Y, _X);
345  }
346 
359  inline float atan2(float _Y, float _X) __GPU_ONLY
360  {
361  return __dp_d3d_atan2f(_Y, _X);
362  }
363 
373  inline float ceilf(float _X) __GPU_ONLY
374  {
375  return __dp_d3d_ceilf(_X);
376  }
377 
387  inline float ceil(float _X) __GPU_ONLY
388  {
389  return __dp_d3d_ceilf(_X);
390  }
391 
401  inline float cosf(float _X) __GPU_ONLY
402  {
403  return __dp_d3d_cosf(_X);
404  }
405 
415  inline float cos(float _X) __GPU_ONLY
416  {
417  return __dp_d3d_cosf(_X);
418  }
419 
429  inline float coshf(float _X) __GPU_ONLY
430  {
431  return __dp_d3d_coshf(_X);
432  }
433 
443  inline float cosh(float _X) __GPU_ONLY
444  {
445  return __dp_d3d_coshf(_X);
446  }
447 
457  inline float expf(float _X) __GPU_ONLY
458  {
459  return __dp_d3d_expf(_X);
460  }
461 
471  inline float exp(float _X) __GPU_ONLY
472  {
473  return __dp_d3d_expf(_X);
474  }
475 
485  inline float exp2f(float _X) __GPU_ONLY
486  {
487  return __dp_d3d_exp2f(_X);
488  }
489 
499  inline float exp2(float _X) __GPU_ONLY
500  {
501  return __dp_d3d_exp2f(_X);
502  }
503 
513  inline float floorf(float _X) __GPU_ONLY
514  {
515  return __dp_d3d_floorf(_X);
516  }
517 
527  inline float floor(float _X) __GPU_ONLY
528  {
529  return __dp_d3d_floorf(_X);
530  }
531 
544  inline float fmaxf(float _X, float _Y) __GPU_ONLY
545  {
546  return __dp_d3d_maxf(_X, _Y);
547  }
548 
561  inline float fmax(float _X, float _Y) __GPU_ONLY
562  {
563  return __dp_d3d_maxf(_X, _Y);
564  }
565 
578  inline float fminf(float _X, float _Y) __GPU_ONLY
579  {
580  return __dp_d3d_minf(_X, _Y);
581  }
582 
595  inline float fmin(float _X, float _Y) __GPU_ONLY
596  {
597  return __dp_d3d_minf(_X, _Y);
598  }
599 
612  inline float fmodf(float _X, float _Y) __GPU_ONLY
613  {
614  return __dp_d3d_fmodf(_X, _Y);
615  }
616 
629  inline float fmod(float _X, float _Y) __GPU_ONLY
630  {
631  return __dp_d3d_fmodf(_X, _Y);
632  }
633 
646  inline float frexpf(float _X, _Out_ int * _Exp) __GPU_ONLY
647  {
648  float _FExp = 0.0f;
649  float _M = __dp_d3d_frexpf(_X, &_FExp);
650  *_Exp = static_cast<int>(_FExp);
651  // Currently, the mantissa returned by d3d's frexp is always positive
652  // Fetch the sign bit from _X to match cmath frexp
653  *reinterpret_cast<unsigned int*>(&_M) = *reinterpret_cast<unsigned int*>(&_M) | (*reinterpret_cast<unsigned int*>(&_X) & 0x80000000);
654  return _M;
655  }
656 
669  inline float frexp(float _X, _Out_ int * _Exp) __GPU_ONLY
670  {
671  return frexpf(_X, _Exp);
672  }
673 
683  inline int isfinite(float _X) __GPU_ONLY
684  {
685  return __dp_d3d_isfinitef(_X);
686  }
687 
697  inline int isinf(float _X) __GPU_ONLY
698  {
699  return __dp_d3d_isinff(_X);
700  }
701 
711  inline int isnan(float _X) __GPU_ONLY
712  {
713  return __dp_d3d_isnanf(_X);
714  }
715 
728  inline float ldexpf(float _X, int _Exp) __GPU_ONLY
729  {
730  float _FExp = static_cast<float>(_Exp);
731  return __dp_d3d_ldexpf(_X, _FExp);
732  }
733 
746  inline float ldexp(float _X, int _Exp) __GPU_ONLY
747  {
748  return ldexpf(_X, _Exp);
749  }
750 
760  inline float logf(float _X) __GPU_ONLY
761  {
762  return __dp_d3d_logf(_X);
763  }
764 
774  inline float log(float _X) __GPU_ONLY
775  {
776  return __dp_d3d_logf(_X);
777  }
778 
788  inline float log10f(float _X) __GPU_ONLY
789  {
790  return __dp_d3d_log10f(_X);
791  }
792 
802  inline float log10(float _X) __GPU_ONLY
803  {
804  return __dp_d3d_log10f(_X);
805  }
806 
816  inline float log2f(float _X) __GPU_ONLY
817  {
818  return __dp_d3d_log2f(_X);
819  }
820 
830  inline float log2(float _X) __GPU_ONLY
831  {
832  return __dp_d3d_log2f(_X);
833  }
834 
847  inline float modff(float _X, float * _Ip) __GPU_ONLY
848  {
849  return __dp_d3d_modff(_X, _Ip);
850  }
851 
864  inline float modf(float _X, float * _Ip) __GPU_ONLY
865  {
866  return __dp_d3d_modff(_X, _Ip);
867  }
868 
881  inline float powf(float _X, float _Y) __GPU_ONLY
882  {
883  return __dp_d3d_powf(_X, _Y);
884  }
885 
898  inline float pow(float _X, float _Y) __GPU_ONLY
899  {
900  return __dp_d3d_powf(_X, _Y);
901  }
902 
912  inline float roundf(float _X) __GPU_ONLY
913  {
914  return __dp_d3d_roundf(_X);
915  }
916 
926  inline float round(float _X) __GPU_ONLY
927  {
928  return __dp_d3d_roundf(_X);
929  }
930 
940  inline float rsqrtf(float _X) __GPU_ONLY
941  {
942  return __dp_d3d_rsqrtf(_X);
943  }
944 
954  inline float rsqrt(float _X) __GPU_ONLY
955  {
956  return __dp_d3d_rsqrtf(_X);
957  }
958 
968  inline int signbitf(float _X) __GPU_ONLY
969  {
970  return __dp_d3d_signf(_X);
971  }
972 
982  inline int signbit(float _X) __GPU_ONLY
983  {
984  return __dp_d3d_signf(_X);
985  }
986 
996  inline float sinf(float _X) __GPU_ONLY
997  {
998  return __dp_d3d_sinf(_X);
999  }
1000 
1010  inline float sin(float _X) __GPU_ONLY
1011  {
1012  return __dp_d3d_sinf(_X);
1013  }
1014 
1027  inline void sincosf(float _X, float * _S, float * _C) __GPU_ONLY
1028  {
1029  *_C = __dp_d3d_sincosf(_X, _S);
1030  }
1031 
1044  inline void sincos(float _X, float * _S, float * _C) __GPU_ONLY
1045  {
1046  *_C = __dp_d3d_sincosf(_X, _S);
1047  }
1048 
1058  inline float sinhf(float _X) __GPU_ONLY
1059  {
1060  return __dp_d3d_sinhf(_X);
1061  }
1062 
1072  inline float sinh(float _X) __GPU_ONLY
1073  {
1074  return __dp_d3d_sinhf(_X);
1075  }
1076 
1086  inline float sqrtf(float _X) __GPU_ONLY
1087  {
1088  return __dp_d3d_sqrtf(_X);
1089  }
1090 
1100  inline float sqrt(float _X) __GPU_ONLY
1101  {
1102  return __dp_d3d_sqrtf(_X);
1103  }
1104 
1114  inline float tanf(float _X) __GPU_ONLY
1115  {
1116  return __dp_d3d_tanf(_X);
1117  }
1118 
1128  inline float tan(float _X) __GPU_ONLY
1129  {
1130  return __dp_d3d_tanf(_X);
1131  }
1132 
1142  inline float tanhf(float _X) __GPU_ONLY
1143  {
1144  return __dp_d3d_tanhf(_X);
1145  }
1155  inline float tanh(float _X) __GPU_ONLY
1156  {
1157  return __dp_d3d_tanhf(_X);
1158  }
1159 
1169  inline float truncf(float _X) __GPU_ONLY
1170  {
1171  return __dp_d3d_truncf(_X);
1172  }
1173 
1183  inline float trunc(float _X) __GPU_ONLY
1184  {
1185  return __dp_d3d_truncf(_X);
1186  }
1187 
1188  //=============================================================================
1189  // Import CMATH C++ functions:
1190  //=============================================================================
1191  using std::acosf;
1192  using std::asinf;
1193  using std::atanf;
1194  using std::atan2f;
1195  using std::ceilf;
1196  using std::cosf;
1197  using std::coshf;
1198  using std::expf;
1199  using std::fabsf;
1200  using std::floorf;
1201  using std::fmodf;
1202  using std::frexpf;
1203  using std::ldexpf;
1204  using std::logf;
1205  using std::log10f;
1206  using std::modff;
1207  using std::powf;
1208  using std::sinf;
1209  using std::sinhf;
1210  using std::sqrtf;
1211  using std::tanf;
1212  using std::tanhf;
1213 
1214  using std::acos;
1215  using std::asin;
1216  using std::atan;
1217  using std::atan2;
1218  using std::ceil;
1219  using std::cos;
1220  using std::cosh;
1221  using std::exp;
1222  using std::fabs;
1223  using std::floor;
1224  using std::fmod;
1225  using std::frexp;
1226  using std::ldexp;
1227  using std::log;
1228  using std::log10;
1229  using std::modf;
1230  using std::pow;
1231  using std::sin;
1232  using std::sinh;
1233  using std::sqrt;
1234  using std::tan;
1235  using std::tanh;
1236  using std::exp2;
1237  using std::exp2f;
1238  using std::fmax;
1239  using std::fmaxf;
1240  using std::fmin;
1241  using std::fminf;
1242  using std::log2;
1243  using std::log2f;
1244  using std::round;
1245  using std::roundf;
1246  using std::trunc;
1247  using std::truncf;
1248 
1249 } // namespace fast_math
1250 
1251 
1256 namespace precise_math
1257 {
1267  inline float acosf(float _X) __GPU_ONLY
1268  {
1269  return __dp_math_acosf(_X);
1270  }
1271 
1281  inline float acos(float _X) __GPU_ONLY
1282  {
1283  return __dp_math_acosf(_X);
1284  }
1285 
1295  inline double acos(double _X) __GPU_ONLY
1296  {
1297  return __dp_math_acos(_X);
1298  }
1299 
1309  inline float acoshf(float _X) __GPU_ONLY
1310  {
1311  return __dp_math_acoshf(_X);
1312  }
1313 
1323  inline float acosh(float _X) __GPU_ONLY
1324  {
1325  return __dp_math_acoshf(_X);
1326  }
1327 
1337  inline double acosh(double _X) __GPU_ONLY
1338  {
1339  return __dp_math_acosh(_X);
1340  }
1341 
1342 
1352  inline float asinf(float _X) __GPU_ONLY
1353  {
1354  return __dp_math_asinf(_X);
1355  }
1356 
1366  inline float asin(float _X) __GPU_ONLY
1367  {
1368  return __dp_math_asinf(_X);
1369  }
1370 
1380  inline double asin(double _X) __GPU_ONLY
1381  {
1382  return __dp_math_asin(_X);
1383  }
1384 
1394  inline float asinhf(float _X) __GPU_ONLY
1395  {
1396  return __dp_math_asinhf(_X);
1397  }
1398 
1408  inline float asinh(float _X) __GPU_ONLY
1409  {
1410  return __dp_math_asinhf(_X);
1411  }
1412 
1422  inline double asinh(double _X) __GPU_ONLY
1423  {
1424  return __dp_math_asinh(_X);
1425  }
1426 
1436  inline float atanf(float _X) __GPU_ONLY
1437  {
1438  return __dp_math_atanf(_X);
1439  }
1440 
1450  inline float atan(float _X) __GPU_ONLY
1451  {
1452  return __dp_math_atanf(_X);
1453  }
1454 
1464  inline double atan(double _X) __GPU_ONLY
1465  {
1466  return __dp_math_atan(_X);
1467  }
1468 
1481  inline float atan2f(float _Y, float _X) __GPU_ONLY
1482  {
1483  return __dp_math_atan2f(_Y, _X);
1484  }
1485 
1498  inline float atan2(float _Y, float _X) __GPU_ONLY
1499  {
1500  return __dp_math_atan2f(_Y, _X);
1501  }
1502 
1515  inline double atan2(double _Y, double _X) __GPU_ONLY
1516  {
1517  return __dp_math_atan2(_Y, _X);
1518  }
1519 
1520 
1530  inline float atanhf(float _X) __GPU_ONLY
1531  {
1532  return __dp_math_atanhf(_X);
1533  }
1534 
1544  inline float atanh(float _X) __GPU_ONLY
1545  {
1546  return __dp_math_atanhf(_X);
1547  }
1548 
1558  inline double atanh(double _X) __GPU_ONLY
1559  {
1560  return __dp_math_atanh(_X);
1561  }
1562 
1572  inline float cbrtf(float _X) __GPU_ONLY
1573  {
1574  return __dp_math_cbrtf(_X);
1575  }
1576 
1586  inline float cbrt(float _X) __GPU_ONLY
1587  {
1588  return __dp_math_cbrtf(_X);
1589  }
1590 
1600  inline double cbrt(double _X) __GPU_ONLY
1601  {
1602  return __dp_math_cbrt(_X);
1603  }
1604 
1614  inline float ceilf(float _X) __GPU_ONLY
1615  {
1616  return __dp_math_ceilf(_X);
1617  }
1618 
1628  inline float ceil(float _X) __GPU_ONLY
1629  {
1630  return __dp_math_ceilf(_X);
1631  }
1632 
1642  inline double ceil(double _X) __GPU_ONLY
1643  {
1644  return __dp_math_ceil(_X);
1645  }
1646 
1659  inline float copysignf(float _X, float _Y) __GPU_ONLY
1660  {
1661  return __dp_math_copysignf(_X, _Y);
1662  }
1663 
1676  inline float copysign(float _X, float _Y) __GPU_ONLY
1677  {
1678  return __dp_math_copysignf(_X, _Y);
1679  }
1680 
1693  inline double copysign(double _X, double _Y) __GPU_ONLY
1694  {
1695  return __dp_math_copysign(_X, _Y);
1696  }
1697 
1707  inline float cosf(float _X) __GPU_ONLY
1708  {
1709  return __dp_math_cosf(_X);
1710  }
1711 
1721  inline float cos(float _X) __GPU_ONLY
1722  {
1723  return __dp_math_cosf(_X);
1724  }
1725 
1735  inline double cos(double _X) __GPU_ONLY
1736  {
1737  return __dp_math_cos(_X);
1738  }
1739 
1749  inline float coshf(float _X) __GPU_ONLY
1750  {
1751  return __dp_math_coshf(_X);
1752  }
1753 
1763  inline float cosh(float _X) __GPU_ONLY
1764  {
1765  return __dp_math_coshf(_X);
1766  }
1767 
1777  inline double cosh(double _X) __GPU_ONLY
1778  {
1779  return __dp_math_cosh(_X);
1780  }
1781 
1791  inline float cospif(float _X) __GPU_ONLY
1792  {
1793  return __dp_math_cospif(_X);
1794  }
1795 
1805  inline float cospi(float _X) __GPU_ONLY
1806  {
1807  return __dp_math_cospif(_X);
1808  }
1809 
1819  inline double cospi(double _X) __GPU_ONLY
1820  {
1821  return __dp_math_cospi(_X);
1822  }
1823 
1833  inline float erff(float _X) __GPU_ONLY
1834  {
1835  return __dp_math_erff(_X);
1836  }
1837 
1847  inline float erf(float _X) __GPU_ONLY
1848  {
1849  return __dp_math_erff(_X);
1850  }
1851 
1861  inline double erf(double _X) __GPU_ONLY
1862  {
1863  return __dp_math_erf(_X);
1864  }
1865 
1875  inline float erfcf(float _X) __GPU_ONLY
1876  {
1877  return __dp_math_erfcf(_X);
1878  }
1879 
1889  inline float erfc(float _X) __GPU_ONLY
1890  {
1891  return __dp_math_erfcf(_X);
1892  }
1893 
1903  inline double erfc(double _X) __GPU_ONLY
1904  {
1905  return __dp_math_erfc(_X);
1906  }
1907 
1917  inline float erfinvf(float _X) __GPU_ONLY
1918  {
1919  return __dp_math_erfinvf(_X);
1920  }
1921 
1931  inline float erfinv(float _X) __GPU_ONLY
1932  {
1933  return __dp_math_erfinvf(_X);
1934  }
1935 
1945  inline double erfinv(double _X) __GPU_ONLY
1946  {
1947  return __dp_math_erfinv(_X);
1948  }
1949 
1959  inline float erfcinvf(float _X) __GPU_ONLY
1960  {
1961  return __dp_math_erfcinvf(_X);
1962  }
1963 
1973  inline float erfcinv(float _X) __GPU_ONLY
1974  {
1975  return __dp_math_erfcinvf(_X);
1976  }
1977 
1987  inline double erfcinv(double _X) __GPU_ONLY
1988  {
1989  return __dp_math_erfcinv(_X);
1990  }
1991 
2001  inline float expf(float _X) __GPU_ONLY
2002  {
2003  return __dp_math_expf(_X);
2004  }
2005 
2015  inline float exp(float _X) __GPU_ONLY
2016  {
2017  return __dp_math_expf(_X);
2018  }
2019 
2029  inline double exp(double _X) __GPU_ONLY
2030  {
2031  return __dp_math_exp(_X);
2032  }
2033 
2043  inline float exp2f(float _X) __GPU_ONLY
2044  {
2045  return __dp_math_exp2f(_X);
2046  }
2047 
2057  inline float exp2(float _X) __GPU_ONLY
2058  {
2059  return __dp_math_exp2f(_X);
2060  }
2061 
2071  inline double exp2(double _X) __GPU_ONLY
2072  {
2073  return __dp_math_exp2(_X);
2074  }
2075 
2085  inline float exp10f(float _X) __GPU_ONLY
2086  {
2087  return __dp_math_exp10f(_X);
2088  }
2089 
2099  inline float exp10(float _X) __GPU_ONLY
2100  {
2101  return __dp_math_exp10f(_X);
2102  }
2103 
2113  inline double exp10(double _X) __GPU_ONLY
2114  {
2115  return __dp_math_exp10(_X);
2116  }
2117 
2127  inline float expm1f(float _X) __GPU_ONLY
2128  {
2129  return __dp_math_expm1f(_X);
2130  }
2131 
2141  inline float expm1(float _X) __GPU_ONLY
2142  {
2143  return __dp_math_expm1f(_X);
2144  }
2145 
2155  inline double expm1(double _X) __GPU_ONLY
2156  {
2157  return __dp_math_expm1(_X);
2158  }
2159 
2169  inline float fabsf(float _X) __GPU_ONLY
2170  {
2171  return __dp_math_fabsf(_X);
2172  }
2173 
2183  inline float fabs(float _X) __GPU_ONLY
2184  {
2185  return __dp_math_fabsf(_X);
2186  }
2187 
2197  inline double fabs(double _X) __GPU_ONLY
2198  {
2199  return __dp_math_fabs(_X);
2200  }
2201 
2214  inline float fdimf(float _X, float _Y) __GPU_ONLY
2215  {
2216  return __dp_math_fdimf(_X, _Y);
2217  }
2218 
2219 
2232  inline float fdim(float _X, float _Y) __GPU_ONLY
2233  {
2234  return __dp_math_fdimf(_X, _Y);
2235  }
2236 
2237 
2250  inline double fdim(double _X, double _Y) __GPU_ONLY
2251  {
2252  return __dp_math_fdim(_X, _Y);
2253  }
2254 
2264  inline float floorf(float _X) __GPU_ONLY
2265  {
2266  return __dp_math_floorf(_X);
2267  }
2268 
2278  inline float floor(float _X) __GPU_ONLY
2279  {
2280  return __dp_math_floorf(_X);
2281  }
2282 
2292  inline double floor(double _X) __GPU_ONLY
2293  {
2294  return __dp_math_floor(_X);
2295  }
2296 
2312  inline float fmaf(float _X, float _Y, float _Z) __GPU_ONLY
2313  {
2314  return __dp_math_fmaf(_X, _Y, _Z);
2315  }
2316 
2332  inline float fma(float _X, float _Y, float _Z) __GPU_ONLY
2333  {
2334  return __dp_math_fmaf(_X, _Y, _Z);
2335  }
2336 
2352  inline double fma(double _X, double _Y, double _Z) __GPU_ONLY
2353  {
2354  return __dp_math_fma(_X, _Y, _Z);
2355  }
2356 
2369  inline float fmaxf(float _X, float _Y) __GPU_ONLY
2370  {
2371  return __dp_math_fmaxf(_X, _Y);
2372  }
2373 
2386  inline float fmax(float _X, float _Y) __GPU_ONLY
2387  {
2388  return __dp_math_fmaxf(_X, _Y);
2389  }
2390 
2403  inline double fmax(double _X, double _Y) __GPU_ONLY
2404  {
2405  return __dp_math_fmax(_X, _Y);
2406  }
2407 
2420  inline float fminf(float _X, float _Y) __GPU_ONLY
2421  {
2422  return __dp_math_fminf(_X, _Y);
2423  }
2424 
2437  inline float fmin(float _X, float _Y) __GPU_ONLY
2438  {
2439  return __dp_math_fminf(_X, _Y);
2440  }
2441 
2454  inline double fmin(double _X, double _Y) __GPU_ONLY
2455  {
2456  return __dp_math_fmin(_X, _Y);
2457  }
2458 
2471  inline float fmodf(float _X, float _Y) __GPU_ONLY
2472  {
2473  return __dp_math_fmodf(_X, _Y);
2474  }
2475 
2488  inline float fmod(float _X, float _Y) __GPU_ONLY
2489  {
2490  return __dp_math_fmodf(_X, _Y);
2491  }
2492 
2505  inline double fmod(double _X, double _Y) __GPU_ONLY
2506  {
2507  return __dp_math_fmod(_X, _Y);
2508  }
2509 
2510 
2520  inline int fpclassify(float _X) __GPU_ONLY
2521  {
2522  return __dp_math_fpclassifyf(_X);
2523  }
2524 
2534  inline int fpclassify(double _X) __GPU_ONLY
2535  {
2536  return __dp_math_fpclassify(_X);
2537  }
2538 
2551  inline float frexpf(float _X, _Out_ int * _Exp) __GPU_ONLY
2552  {
2553  return __dp_math_frexpf(_X, _Exp);
2554  }
2555 
2568  inline float frexp(float _X, _Out_ int * _Exp) __GPU_ONLY
2569  {
2570  return __dp_math_frexpf(_X, _Exp);
2571  }
2572 
2585  inline double frexp(double _X, _Out_ int * _Exp) __GPU_ONLY
2586  {
2587  return __dp_math_frexp(_X, _Exp);
2588  }
2589 
2602  inline float hypotf(float _X, float _Y) __GPU_ONLY
2603  {
2604  return __dp_math_hypotf(_X, _Y);
2605  }
2606 
2619  inline float hypot(float _X, float _Y) __GPU_ONLY
2620  {
2621  return __dp_math_hypotf(_X, _Y);
2622  }
2623 
2636  inline double hypot(double _X, double _Y) __GPU_ONLY
2637  {
2638  return __dp_math_hypot(_X, _Y);
2639  }
2640 
2650  inline int ilogbf(float _X) __GPU_ONLY
2651  {
2652  return __dp_math_ilogbf(_X);
2653  }
2654 
2664  inline int ilogb(float _X) __GPU_ONLY
2665  {
2666  return __dp_math_ilogbf(_X);
2667  }
2668 
2678  inline int ilogb(double _X) __GPU_ONLY
2679  {
2680  return __dp_math_ilogb(_X);
2681  }
2682 
2692  inline int isfinite(float _X) __GPU_ONLY
2693  {
2694  return __dp_math_isfinitef(_X);
2695  }
2696 
2706  inline int isfinite(double _X) __GPU_ONLY
2707  {
2708  return __dp_math_isfinite(_X);
2709  }
2710 
2720  inline int isinf(float _X) __GPU_ONLY
2721  {
2722  return __dp_math_isinff(_X);
2723  }
2724 
2734  inline int isinf(double _X) __GPU_ONLY
2735  {
2736  return __dp_math_isinf(_X);
2737  }
2738 
2748  inline int isnan(float _X) __GPU_ONLY
2749  {
2750  return __dp_math_isnanf(_X);
2751  }
2752 
2762  inline int isnan(double _X) __GPU_ONLY
2763  {
2764  return __dp_math_isnan(_X);
2765  }
2766 
2776  inline int isnormal(float _X) __GPU_ONLY
2777  {
2778  return __dp_math_isnormalf(_X);
2779  }
2780 
2790  inline int isnormal(double _X) __GPU_ONLY
2791  {
2792  return __dp_math_isnormal(_X);
2793  }
2794 
2807  inline float ldexpf(float _X, int _Exp) __GPU_ONLY
2808  {
2809  return __dp_math_ldexpf(_X, _Exp);
2810  }
2811 
2824  inline float ldexp(float _X, int _Exp) __GPU_ONLY
2825  {
2826  return __dp_math_ldexpf(_X, _Exp);
2827  }
2828 
2841  inline double ldexp(double _X, int _Exp) __GPU_ONLY
2842  {
2843  return __dp_math_ldexp(_X, _Exp);
2844  }
2845 
2858  inline float lgammaf(float _X, _Out_ int * _Sign) __GPU_ONLY
2859  {
2860  return __dp_math_lgammaf(_X, _Sign);
2861  }
2862 
2875  inline float lgamma(float _X, _Out_ int * _Sign) __GPU_ONLY
2876  {
2877  return __dp_math_lgammaf(_X, _Sign);
2878  }
2879 
2892  inline double lgamma(double _X, _Out_ int * _Sign) __GPU_ONLY
2893  {
2894  return __dp_math_lgamma(_X, _Sign);
2895  }
2896 
2906  inline float logf(float _X) __GPU_ONLY
2907  {
2908  return __dp_math_logf(_X);
2909  }
2910 
2920  inline float log(float _X) __GPU_ONLY
2921  {
2922  return __dp_math_logf(_X);
2923  }
2924 
2934  inline double log(double _X) __GPU_ONLY
2935  {
2936  return __dp_math_log(_X);
2937  }
2938 
2948  inline float log10f(float _X) __GPU_ONLY
2949  {
2950  return __dp_math_log10f(_X);
2951  }
2952 
2962  inline float log10(float _X) __GPU_ONLY
2963  {
2964  return __dp_math_log10f(_X);
2965  }
2966 
2976  inline double log10(double _X) __GPU_ONLY
2977  {
2978  return __dp_math_log10(_X);
2979  }
2980 
2990  inline float log2f(float _X) __GPU_ONLY
2991  {
2992  return __dp_math_log2f(_X);
2993  }
2994 
3004  inline float log2(float _X) __GPU_ONLY
3005  {
3006  return __dp_math_log2f(_X);
3007  }
3008 
3018  inline double log2(double _X) __GPU_ONLY
3019  {
3020  return __dp_math_log2(_X);
3021  }
3022 
3032  inline float log1pf(float _X) __GPU_ONLY
3033  {
3034  return __dp_math_log1pf(_X);
3035  }
3036 
3046  inline float log1p(float _X) __GPU_ONLY
3047  {
3048  return __dp_math_log1pf(_X);
3049  }
3050 
3060  inline double log1p(double _X) __GPU_ONLY
3061  {
3062  return __dp_math_log1p(_X);
3063  }
3064 
3074  inline float logbf(float _X) __GPU_ONLY
3075  {
3076  return __dp_math_logbf(_X);
3077  }
3078 
3088  inline float logb(float _X) __GPU_ONLY
3089  {
3090  return __dp_math_logbf(_X);
3091  }
3092 
3102  inline double logb(double _X) __GPU_ONLY
3103  {
3104  return __dp_math_logb(_X);
3105  }
3106 
3119  inline float modff(float _X, _Out_ float * _Iptr) __GPU_ONLY
3120  {
3121  return __dp_math_modff(_X, _Iptr);
3122  }
3123 
3136  inline float modf(float _X, _Out_ float * _Iptr) __GPU_ONLY
3137  {
3138  return __dp_math_modff(_X, _Iptr);
3139  }
3140 
3153  inline double modf(double _X, _Out_ double * _Iptr) __GPU_ONLY
3154  {
3155  return __dp_math_modf(_X, _Iptr);
3156  }
3157 
3167  inline float nanf(int _X) __GPU_ONLY
3168  {
3169  return __dp_math_nanf(_X);
3170  }
3171 
3181  inline double nan(int _X) __GPU_ONLY
3182  {
3183  return __dp_math_nan(_X);
3184  }
3185 
3186 
3197  inline float nearbyintf(float _X) __GPU_ONLY
3198  {
3199  return __dp_math_nearbyintf(_X);
3200  }
3201 
3212  inline float nearbyint(float _X) __GPU_ONLY
3213  {
3214  return __dp_math_nearbyintf(_X);
3215  }
3216 
3227  inline double nearbyint(double _X) __GPU_ONLY
3228  {
3229  return __dp_math_nearbyint(_X);
3230  }
3231 
3232 
3247  inline float nextafterf(float _X, float _Y) __GPU_ONLY
3248  {
3249  return __dp_math_nextafterf(_X, _Y);
3250  }
3251 
3266  inline float nextafter(float _X, float _Y) __GPU_ONLY
3267  {
3268  return __dp_math_nextafterf(_X, _Y);
3269  }
3270 
3285  inline double nextafter(double _X, double _Y) __GPU_ONLY
3286  {
3287  return __dp_math_nextafter(_X, _Y);
3288  }
3289 
3299  inline float phif(float _X) __GPU_ONLY
3300  {
3301  return __dp_math_phif(_X);
3302  }
3303 
3313  inline float phi(float _X) __GPU_ONLY
3314  {
3315  return __dp_math_phif(_X);
3316  }
3317 
3327  inline double phi(double _X) __GPU_ONLY
3328  {
3329  return __dp_math_phi(_X);
3330  }
3331 
3344  inline float powf(float _X, float _Y) __GPU_ONLY
3345  {
3346  return __dp_math_powf(_X, _Y);
3347  }
3348 
3361  inline float pow(float _X, float _Y) __GPU_ONLY
3362  {
3363  return __dp_math_powf(_X, _Y);
3364  }
3365 
3378  inline double pow(double _X, double _Y) __GPU_ONLY
3379  {
3380  return __dp_math_pow(_X, _Y);
3381  }
3382 
3383 
3393  inline float probitf(float _X) __GPU_ONLY
3394  {
3395  return __dp_math_probitf(_X);
3396  }
3397 
3407  inline float probit(float _X) __GPU_ONLY
3408  {
3409  return __dp_math_probitf(_X);
3410  }
3411 
3421  inline double probit(double _X) __GPU_ONLY
3422  {
3423  return __dp_math_probit(_X);
3424  }
3425 
3435  inline float rcbrtf(float _X) __GPU_ONLY
3436  {
3437  return __dp_math_rcbrtf(_X);
3438  }
3439 
3449  inline float rcbrt(float _X) __GPU_ONLY
3450  {
3451  return __dp_math_rcbrtf(_X);
3452  }
3453 
3463  inline double rcbrt(double _X) __GPU_ONLY
3464  {
3465  return __dp_math_rcbrt(_X);
3466  }
3467 
3480  inline float remainderf(float _X, float _Y) __GPU_ONLY
3481  {
3482  return __dp_math_remainderf(_X, _Y);
3483  }
3484 
3497  inline float remainder(float _X, float _Y) __GPU_ONLY
3498  {
3499  return __dp_math_remainderf(_X, _Y);
3500  }
3501 
3514  inline double remainder(double _X, double _Y) __GPU_ONLY
3515  {
3516  return __dp_math_remainder(_X, _Y);
3517  }
3518 
3537  inline float remquof(float _X, float _Y, _Out_ int * _Quo) __GPU_ONLY
3538  {
3539  return __dp_math_remquof(_X, _Y, _Quo);
3540  }
3541 
3560  inline float remquo(float _X, float _Y, _Out_ int * _Quo) __GPU_ONLY
3561  {
3562  return __dp_math_remquof(_X, _Y, _Quo);
3563  }
3564 
3583  inline double remquo(double _X, double _Y, _Out_ int * _Quo) __GPU_ONLY
3584  {
3585  return __dp_math_remquo(_X, _Y, _Quo);
3586  }
3587 
3597  inline float roundf(float _X) __GPU_ONLY
3598  {
3599  return __dp_math_roundf(_X);
3600  }
3601 
3611  inline float round(float _X) __GPU_ONLY
3612  {
3613  return __dp_math_roundf(_X);
3614  }
3615 
3625  inline double round(double _X) __GPU_ONLY
3626  {
3627  return __dp_math_round(_X);
3628  }
3629 
3639  inline float rsqrtf(float _X) __GPU_ONLY
3640  {
3641  return __dp_math_rsqrtf(_X);
3642  }
3643 
3653  inline float rsqrt(float _X) __GPU_ONLY
3654  {
3655  return __dp_math_rsqrtf(_X);
3656  }
3657 
3667  inline double rsqrt(double _X) __GPU_ONLY
3668  {
3669  return __dp_math_rsqrt(_X);
3670  }
3671 
3684  inline float scalbf(float _X, float _Y) __GPU_ONLY
3685  {
3686  return __dp_math_scalbf(_X, _Y);
3687  }
3688 
3701  inline float scalb(float _X, float _Y) __GPU_ONLY
3702  {
3703  return __dp_math_scalbf(_X, _Y);
3704  }
3705 
3718  inline double scalb(double _X, double _Y) __GPU_ONLY
3719  {
3720  return __dp_math_scalb(_X, _Y);
3721  }
3722 
3735  inline float scalbnf(float _X, int _Y) __GPU_ONLY
3736  {
3737  return __dp_math_scalbnf(_X, _Y);
3738  }
3739 
3752  inline float scalbn(float _X, int _Y) __GPU_ONLY
3753  {
3754  return __dp_math_scalbnf(_X, _Y);
3755  }
3756 
3769  inline double scalbn(double _X, int _Y) __GPU_ONLY
3770  {
3771  return __dp_math_scalbn(_X, _Y);
3772  }
3773 
3784  inline int signbitf(float _X) __GPU_ONLY
3785  {
3786  return __dp_math_signbitf(_X);
3787  }
3788 
3799  inline int signbit(float _X) __GPU_ONLY
3800  {
3801  return __dp_math_signbitf(_X);
3802  }
3803 
3814  inline int signbit(double _X) __GPU_ONLY
3815  {
3816  return __dp_math_signbit(_X);
3817  }
3818 
3828  inline float sinf(float _X) __GPU_ONLY
3829  {
3830  return __dp_math_sinf(_X);
3831  }
3832 
3842  inline float sin(float _X) __GPU_ONLY
3843  {
3844  return __dp_math_sinf(_X);
3845  }
3846 
3856  inline double sin(double _X) __GPU_ONLY
3857  {
3858  return __dp_math_sin(_X);
3859  }
3860 
3873  inline void sincosf(float _X, _Out_ float * _S, _Out_ float * _C) __GPU_ONLY
3874  {
3875  *_C = __dp_math_sincosf(_X, _S);
3876  }
3877 
3890  inline void sincos(float _X, _Out_ float * _S, _Out_ float * _C) __GPU_ONLY
3891  {
3892  *_C = __dp_math_sincosf(_X, _S);
3893  }
3894 
3907  inline void sincos(double _X, _Out_ double * _S, _Out_ double * _C) __GPU_ONLY
3908  {
3909  *_C = __dp_math_sincos(_X, _S);
3910  }
3911 
3921  inline float sinhf(float _X) __GPU_ONLY
3922  {
3923  return __dp_math_sinhf(_X);
3924  }
3925 
3935  inline float sinh(float _X) __GPU_ONLY
3936  {
3937  return __dp_math_sinhf(_X);
3938  }
3939 
3949  inline double sinh(double _X) __GPU_ONLY
3950  {
3951  return __dp_math_sinh(_X);
3952  }
3953 
3963  inline float sinpif(float _X) __GPU_ONLY
3964  {
3965  return __dp_math_sinpif(_X);
3966  }
3967 
3977  inline float sinpi(float _X) __GPU_ONLY
3978  {
3979  return __dp_math_sinpif(_X);
3980  }
3981 
3991  inline double sinpi(double _X) __GPU_ONLY
3992  {
3993  return __dp_math_sinpi(_X);
3994  }
3995 
4005  inline float sqrtf(float _X) __GPU_ONLY
4006  {
4007  return __dp_math_sqrtf(_X);
4008  }
4009 
4019  inline float sqrt(float _X) __GPU_ONLY
4020  {
4021  return __dp_math_sqrtf(_X);
4022  }
4023 
4033  inline double sqrt(double _X) __GPU_ONLY
4034  {
4035  return __dp_math_sqrt(_X);
4036  }
4037 
4047  inline float tgammaf(float _X) __GPU_ONLY
4048  {
4049  return __dp_math_tgammaf(_X);
4050  }
4051 
4061  inline float tgamma(float _X) __GPU_ONLY
4062  {
4063  return __dp_math_tgammaf(_X);
4064  }
4065 
4075  inline double tgamma(double _X) __GPU_ONLY
4076  {
4077  return __dp_math_tgamma(_X);
4078  }
4079 
4089  inline float tanf(float _X) __GPU_ONLY
4090  {
4091  return __dp_math_tanf(_X);
4092  }
4093 
4103  inline float tan(float _X) __GPU_ONLY
4104  {
4105  return __dp_math_tanf(_X);
4106  }
4107 
4117  inline double tan(double _X) __GPU_ONLY
4118  {
4119  return __dp_math_tan(_X);
4120  }
4121 
4131  inline float tanhf(float _X) __GPU_ONLY
4132  {
4133  return __dp_math_tanhf(_X);
4134  }
4135 
4145  inline float tanh(float _X) __GPU_ONLY
4146  {
4147  return __dp_math_tanhf(_X);
4148  }
4149 
4159  inline double tanh(double _X) __GPU_ONLY
4160  {
4161  return __dp_math_tanh(_X);
4162  }
4163 
4173  inline float tanpif(float _X) __GPU_ONLY
4174  {
4175  return __dp_math_tanpif(_X);
4176  }
4177 
4187  inline float tanpi(float _X) __GPU_ONLY
4188  {
4189  return __dp_math_tanpif(_X);
4190  }
4191 
4201  inline double tanpi(double _X) __GPU_ONLY
4202  {
4203  return __dp_math_tanpi(_X);
4204  }
4205 
4215  inline float truncf(float _X) __GPU_ONLY
4216  {
4217  return __dp_math_truncf(_X);
4218  }
4219 
4229  inline float trunc(float _X) __GPU_ONLY
4230  {
4231  return __dp_math_truncf(_X);
4232  }
4233 
4243  inline double trunc(double _X) __GPU_ONLY
4244  {
4245  return __dp_math_trunc(_X);
4246  }
4247 
4248  //=============================================================================
4249  // Import CMATH C++ functions:
4250  //=============================================================================
4251  using std::acosf;
4252  using std::asinf;
4253  using std::atanf;
4254  using std::atan2f;
4255  using std::ceilf;
4256  using std::cosf;
4257  using std::coshf;
4258  using std::expf;
4259  using std::fabsf;
4260  using std::floorf;
4261  using std::fmodf;
4262  using std::frexpf;
4263  using std::hypotf;
4264  using std::ldexpf;
4265  using std::logf;
4266  using std::log10f;
4267  using std::modff;
4268  using std::powf;
4269  using std::sinf;
4270  using std::sinhf;
4271  using std::sqrtf;
4272  using std::tanf;
4273  using std::tanhf;
4274 
4275  using std::acos;
4276  using std::asin;
4277  using std::atan;
4278  using std::atan2;
4279  using std::ceil;
4280  using std::cos;
4281  using std::cosh;
4282  using std::exp;
4283  using std::fabs;
4284  using std::floor;
4285  using std::fmod;
4286  using std::frexp;
4287  using std::hypot;
4288  using std::ldexp;
4289  using std::log;
4290  using std::log10;
4291  using std::modf;
4292  using std::pow;
4293  using std::sin;
4294  using std::sinh;
4295  using std::sqrt;
4296  using std::tan;
4297  using std::tanh;
4298 
4299  using std::acosh;
4300  using std::acoshf;
4301  using std::asinh;
4302  using std::asinhf;
4303  using std::atanh;
4304  using std::atanhf;
4305  using std::cbrt;
4306  using std::cbrtf;
4307  using std::copysign;
4308  using std::copysignf;
4309  using std::erf;
4310  using std::erfc;
4311  using std::erfcf;
4312  using std::erff;
4313  using std::exp2;
4314  using std::exp2f;
4315  using std::expm1;
4316  using std::expm1f;
4317  using std::fdim;
4318  using std::fdimf;
4319  using std::fma;
4320  using std::fmaf;
4321  using std::fmax;
4322  using std::fmaxf;
4323  using std::fmin;
4324  using std::fminf;
4325  using std::ilogb;
4326  using std::ilogbf;
4327  using std::log1p;
4328  using std::log1pf;
4329  using std::log2;
4330  using std::log2f;
4331  using std::logb;
4332  using std::logbf;
4333  using std::nearbyint;
4334  using std::nearbyintf;
4335  using std::nextafter;
4336  using std::nextafterf;
4337  using std::remainder;
4338  using std::remainderf;
4339  using std::remquo;
4340  using std::remquof;
4341  using std::round;
4342  using std::roundf;
4343  using std::scalbn;
4344  using std::scalbnf;
4345  using std::tgamma;
4346  using std::tgammaf;
4347  using std::trunc;
4348  using std::truncf;
4349 } // namespace precise_math
4350 
4351 } // namespace Concurrency
float __dp_d3d_sinf(float) __GPU_ONLY
#define _Out_
Definition: sal.h:342
double __dp_math_atan(double) __GPU_ONLY
float atan(float _X) __GPU_ONLY
Calculates the arctangent of the argument
Definition: amp_math.h:325
float nextafterf(float _X, float _Y) __GPU_ONLY
Determine the next representable value, in the type of the function, after _X in the direction of _Y ...
Definition: amp_math.h:3247
double remainder(double _X, double _Y) __GPU_ONLY
Computes the remainder: _X REM _Y
Definition: amp_math.h:3514
float acosh(float _X) __GPU_ONLY
Calculates the inverse hyperbolic cosine of the argument
Definition: amp_math.h:1323
float __dp_d3d_maxf(float, float) __GPU_ONLY
double log(double _X) __GPU_ONLY
Calculates the base-e logarithm of the argument
Definition: amp_math.h:2934
double floor(double _X) __GPU_ONLY
Calculates the floor of the argument
Definition: amp_math.h:2292
float __dp_math_scalbf(float, float) __GPU_ONLY
float coshf(float _X) __GPU_ONLY
Calculates the hyperbolic cosine value of the argument
Definition: amp_math.h:429
double sqrt(double _X) __GPU_ONLY
Calculates the squre root of the argument
Definition: amp_math.h:4033
float atanhf(float _X) __GPU_ONLY
Calculates the inverse hyperbolic tangent of the argument
Definition: amp_math.h:1530
double log2(double _X) __GPU_ONLY
Calculates the base-2 logarithm of the argument
Definition: amp_math.h:3018
double __dp_math_tan(double) __GPU_ONLY
float erff(float _X) __GPU_ONLY
Computes the error function of _X
Definition: amp_math.h:1833
double __dp_math_acosh(double) __GPU_ONLY
float __dp_math_erff(float) __GPU_ONLY
int __dp_math_fpclassify(double) __GPU_ONLY
double atanh(double _X) __GPU_ONLY
Calculates the inverse hyperbolic tangent of the argument
Definition: amp_math.h:1558
float fminf(float _X, float _Y) __GPU_ONLY
Determine the minimum numeric value of the arguments
Definition: amp_math.h:2420
float log2(float _X) __GPU_ONLY
Calculates the base-2 logarithm of the argument
Definition: amp_math.h:3004
float rsqrt(float _X) __GPU_ONLY
Returns the reciprocal of the square root of the argument
Definition: amp_math.h:954
float fmaf(float _X, float _Y, float _Z) __GPU_ONLY
Compute (_X * _Y) + _Z, rounded as one ternary operation
Definition: amp_math.h:2312
double asin(double _X) __GPU_ONLY
Calculates the arcsine of the argument
Definition: amp_math.h:1380
double tan(double _X) __GPU_ONLY
Calculates the tangent value of the argument
Definition: amp_math.h:4117
float __dp_d3d_floorf(float) __GPU_ONLY
float remainderf(float _X, float _Y) __GPU_ONLY
Computes the remainder: _X REM _Y
Definition: amp_math.h:3480
float __dp_d3d_tanhf(float) __GPU_ONLY
float __dp_math_nanf(int) __GPU_ONLY
int __dp_d3d_isfinitef(float) __GPU_ONLY
int __dp_math_isnan(double) __GPU_ONLY
float atanh(float _X) __GPU_ONLY
Calculates the inverse hyperbolic tangent of the argument
Definition: amp_math.h:1544
float lgamma(float _X, _Out_ int *_Sign) __GPU_ONLY
Computes the natural logarithm of the absolute value of gamma of the argument
Definition: amp_math.h:2875
float logb(float _X) __GPU_ONLY
Extracts the exponent of _X, as a signed integer value in floating-point format
Definition: amp_math.h:3088
int signbitf(float _X) __GPU_ONLY
Returns the sign of the argument
Definition: amp_math.h:968
double __dp_math_floor(double) __GPU_ONLY
float __dp_math_asinf(float) __GPU_ONLY
float fmod(float _X, float _Y) __GPU_ONLY
Calculates the floating-point remainder of _X/_Y
Definition: amp_math.h:629
float __dp_math_tanf(float) __GPU_ONLY
int ilogbf(float _X) __GPU_ONLY
Extract the exponent of _X as a signed int value
Definition: amp_math.h:2650
float __dp_math_sinpif(float) __GPU_ONLY
float __dp_math_coshf(float) __GPU_ONLY
float phif(float _X) __GPU_ONLY
Returns the cumulative distribution function of the argument
Definition: amp_math.h:3299
double __dp_math_fmax(double, double) __GPU_ONLY
int isinf(float _X) __GPU_ONLY
Determines whether the argument is an infinity
Definition: amp_math.h:697
float __dp_math_exp2f(float) __GPU_ONLY
float cosf(float _X) __GPU_ONLY
Calculates the cosine of the argument
Definition: amp_math.h:401
float tgammaf(float _X) __GPU_ONLY
Computes the gamma function of _X
Definition: amp_math.h:4047
float __dp_math_atan2f(float, float) __GPU_ONLY
float __dp_d3d_cosf(float) __GPU_ONLY
float modf(float _X, _Out_ float *_Iptr) __GPU_ONLY
Splits _X into fractional and integer parts.
Definition: amp_math.h:3136
float sqrt(float _X) __GPU_ONLY
Calculates the squre root of the argument
Definition: amp_math.h:1100
float atan2f(float _Y, float _X) __GPU_ONLY
Calculates the arctangent of _Y/_X
Definition: amp_math.h:342
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
double __dp_math_logb(double) __GPU_ONLY
float __dp_math_remquof(float, float, _Out_ int *) __GPU_ONLY
float powf(float _X, float _Y) __GPU_ONLY
Calculates _X raised to the power of _Y
Definition: amp_math.h:881
float __dp_d3d_powf(float, float) __GPU_ONLY
float expf(float _X) __GPU_ONLY
Calculates the base-e exponential of the argument
Definition: amp_math.h:457
int __dp_d3d_isinff(float) __GPU_ONLY
float atan2(float _Y, float _X) __GPU_ONLY
Calculates the arctangent of _Y/_X
Definition: amp_math.h:359
float __dp_d3d_atan2f(float, float) __GPU_ONLY
void sincos(float _X, _Out_ float *_S, _Out_ float *_C) __GPU_ONLY
Calculates sine and cosine value of _X
Definition: amp_math.h:3890
float trunc(float _X) __GPU_ONLY
Truncates the argument to the integer component
Definition: amp_math.h:4229
float __dp_math_log2f(float) __GPU_ONLY
float __dp_math_frexpf(float, _Out_ int *) __GPU_ONLY
int __dp_math_isfinite(double) __GPU_ONLY
float sinh(float _X) __GPU_ONLY
Calculates the hyperbolic sine value of the argument
Definition: amp_math.h:3935
float roundf(float _X) __GPU_ONLY
Rounds _X to the nearest integer
Definition: amp_math.h:912
double acos(double _X) __GPU_ONLY
Calculates the arccosine of the argument
Definition: amp_math.h:1295
float sinpi(float _X) __GPU_ONLY
Calculates the sine value of pi * _X
Definition: amp_math.h:3977
float __dp_math_log1pf(float) __GPU_ONLY
double log1p(double _X) __GPU_ONLY
Calculates the base-e logarithm of 1 plus the argument
Definition: amp_math.h:3060
double pow(double _X, double _Y) __GPU_ONLY
Calculates _X raised to the power of _Y
Definition: amp_math.h:3378
float trunc(float _X) __GPU_ONLY
Truncates the argument to the integer component
Definition: amp_math.h:1183
float fmax(float _X, float _Y) __GPU_ONLY
Determine the maximum numeric value of the arguments
Definition: amp_math.h:561
int __dp_math_ilogb(double) __GPU_ONLY
double __dp_math_modf(double, _Out_ double *) __GPU_ONLY
int __dp_math_signbit(double) __GPU_ONLY
double __dp_math_probit(double) __GPU_ONLY
float cosf(float _X) __GPU_ONLY
Calculates the cosine of the argument
Definition: amp_math.h:1707
float exp(float _X) __GPU_ONLY
Calculates the base-e exponential of the argument
Definition: amp_math.h:2015
float cosh(float _X) __GPU_ONLY
Calculates the hyperbolic cosine value of the argument
Definition: amp_math.h:443
float exp2f(float _X) __GPU_ONLY
Calculates the base-2 exponential of the argument
Definition: amp_math.h:2043
float sin(float _X) __GPU_ONLY
Calculates the sine value of the argument
Definition: amp_math.h:1010
float tanh(float _X) __GPU_ONLY
Calculates the hyperbolic tangent value of the argument
Definition: amp_math.h:4145
double copysign(double _X, double _Y) __GPU_ONLY
Produces a value with the magnitude of _X and the sign of _Y
Definition: amp_math.h:1693
float fmaxf(float _X, float _Y) __GPU_ONLY
Determine the maximum numeric value of the arguments
Definition: amp_math.h:2369
float acosf(float _X) __GPU_ONLY
Calculates the arccosine of the argument
Definition: amp_math.h:1267
double __dp_math_ceil(double) __GPU_ONLY
float __dp_math_cbrtf(float) __GPU_ONLY
float frexp(float _X, _Out_ int *_Exp) __GPU_ONLY
Gets the mantissa and exponent of _X
Definition: amp_math.h:2568
double nextafter(double _X, double _Y) __GPU_ONLY
Determine the next representable value, in the type of the function, after _X in the direction of _Y ...
Definition: amp_math.h:3285
double cbrt(double _X) __GPU_ONLY
Computes the real cube root of the argument
Definition: amp_math.h:1600
float exp(float _X) __GPU_ONLY
Calculates the base-e exponential of the argument
Definition: amp_math.h:471
float __dp_math_atanhf(float) __GPU_ONLY
float __dp_d3d_ldexpf(float, float) __GPU_ONLY
float erfcf(float _X) __GPU_ONLY
Computes the complementary error function of _X
Definition: amp_math.h:1875
float fdim(float _X, float _Y) __GPU_ONLY
Determines the positive difference between the arguments
Definition: amp_math.h:2232
float cospi(float _X) __GPU_ONLY
Calculates the cosine value of pi * _X
Definition: amp_math.h:1805
float expm1f(float _X) __GPU_ONLY
Calculates the base-e exponential of the argument, minus 1
Definition: amp_math.h:2127
float ldexp(float _X, int _Exp) __GPU_ONLY
Computes a real number from the mantissa and exponent
Definition: amp_math.h:2824
double erf(double _X) __GPU_ONLY
Computes the error function of _X
Definition: amp_math.h:1861
float __dp_math_nearbyintf(float) __GPU_ONLY
float __dp_math_asinhf(float) __GPU_ONLY
float tanh(float _X) __GPU_ONLY
Calculates the hyperbolic tangent value of the argument
Definition: amp_math.h:1155
double __dp_math_expm1(double) __GPU_ONLY
float ldexpf(float _X, int _Exp) __GPU_ONLY
Computes a real number from the mantissa and exponent
Definition: amp_math.h:2807
double __dp_math_rsqrt(double) __GPU_ONLY
float pow(float _X, float _Y) __GPU_ONLY
Calculates _X raised to the power of _Y
Definition: amp_math.h:3361
float fabs(float _X) __GPU_ONLY
Returns the absolute value of the argument
Definition: amp_math.h:2183
The Concurrency namespace provides classes and functions that provide access to the Concurrency Runti...
Definition: agents.h:43
double __dp_math_remquo(double, double, _Out_ int *) __GPU_ONLY
float __dp_math_sincosf(float, _Out_ float *) __GPU_ONLY
float hypot(float _X, float _Y) __GPU_ONLY
Computes the square root of the sum of the squares of _X and _Y
Definition: amp_math.h:2619
float remquof(float _X, float _Y, _Out_ int *_Quo) __GPU_ONLY
Computes the same remainder as _X REM _Y. Also calculates the lower 24 bits of the integral quotient ...
Definition: amp_math.h:3537
double __dp_math_erfcinv(double) __GPU_ONLY
double __dp_math_acos(double) __GPU_ONLY
double __dp_math_erf(double) __GPU_ONLY
double log10(double _X) __GPU_ONLY
Calculates the base-10 logarithm of the argument
Definition: amp_math.h:2976
int signbitf(float _X) __GPU_ONLY
Determines whether the sign of _X is negative
Definition: amp_math.h:3784
float floorf(float _X) __GPU_ONLY
Calculates the floor of the argument
Definition: amp_math.h:2264
double frexp(double _X, _Out_ int *_Exp) __GPU_ONLY
Gets the mantissa and exponent of _X
Definition: amp_math.h:2585
float round(float _X) __GPU_ONLY
Rounds _X to the nearest integer
Definition: amp_math.h:926
double __dp_math_hypot(double, double) __GPU_ONLY
float __dp_d3d_frexpf(float, _Out_ float *) __GPU_ONLY
float frexpf(float _X, _Out_ int *_Exp) __GPU_ONLY
Gets the mantissa and exponent of _X
Definition: amp_math.h:2551
float ceilf(float _X) __GPU_ONLY
Calculates the ceiling of the argument
Definition: amp_math.h:1614
int fpclassify(float _X) __GPU_ONLY
Classifies the argument value as NaN, infinite, normal, subnormal, zero
Definition: amp_math.h:2520
float __dp_math_sinf(float) __GPU_ONLY
double fma(double _X, double _Y, double _Z) __GPU_ONLY
Compute (_X * _Y) + _Z, rounded as one ternary operation
Definition: amp_math.h:2352
float fminf(float _X, float _Y) __GPU_ONLY
Determine the minimum numeric value of the arguments
Definition: amp_math.h:578
float log2(float _X) __GPU_ONLY
Calculates the base-2 logarithm of the argument
Definition: amp_math.h:830
float sinh(float _X) __GPU_ONLY
Calculates the hyperbolic sine value of the argument
Definition: amp_math.h:1072
float expf(float _X) __GPU_ONLY
Calculates the base-e exponential of the argument
Definition: amp_math.h:2001
float __dp_math_tanhf(float) __GPU_ONLY
float __dp_math_floorf(float) __GPU_ONLY
int __dp_math_isinff(float) __GPU_ONLY
float __dp_math_fminf(float, float) __GPU_ONLY
float scalb(float _X, float _Y) __GPU_ONLY
Multiplies _X by FLT_RADIX to the power _Y
Definition: amp_math.h:3701
float tgamma(float _X) __GPU_ONLY
Computes the gamma function of _X
Definition: amp_math.h:4061
float acos(float _X) __GPU_ONLY
Calculates the arccosine of the argument
Definition: amp_math.h:1281
double __dp_math_atanh(double) __GPU_ONLY
double sin(double _X) __GPU_ONLY
Calculates the sine value of the argument
Definition: amp_math.h:3856
double __dp_math_sinpi(double) __GPU_ONLY
float ceilf(float _X) __GPU_ONLY
Calculates the ceiling of the argument
Definition: amp_math.h:373
float __dp_math_acosf(float) __GPU_ONLY
float nanf(int _X) __GPU_ONLY
Returns a quiet NaN
Definition: amp_math.h:3167
float floorf(float _X) __GPU_ONLY
Calculates the floor of the argument
Definition: amp_math.h:513
float frexpf(float _X, _Out_ int *_Exp) __GPU_ONLY
Gets the mantissa and exponent of _X
Definition: amp_math.h:646
float __dp_math_atanf(float) __GPU_ONLY
float __dp_math_logf(float) __GPU_ONLY
float __dp_math_cosf(float) __GPU_ONLY
int isnan(float _X) __GPU_ONLY
Determines whether the argument is a NaN
Definition: amp_math.h:2748
float __dp_d3d_fmodf(float, float) __GPU_ONLY
double __dp_math_log10(double) __GPU_ONLY
float __dp_math_fdimf(float, float) __GPU_ONLY
void sincos(float _X, float *_S, float *_C) __GPU_ONLY
Calculates sine and cosine value of _X
Definition: amp_math.h:1044
float ldexpf(float _X, int _Exp) __GPU_ONLY
Computes a real number from the mantissa and exponent
Definition: amp_math.h:728
float fabsf(float _X) __GPU_ONLY
Returns the absolute value of the argument
Definition: amp_math.h:227
float __dp_math_fmaxf(float, float) __GPU_ONLY
double fmin(double _X, double _Y) __GPU_ONLY
Determine the minimum numeric value of the arguments
Definition: amp_math.h:2454
float sqrtf(float _X) __GPU_ONLY
Calculates the squre root of the argument
Definition: amp_math.h:1086
double __dp_math_remainder(double, double) __GPU_ONLY
double logb(double _X) __GPU_ONLY
Extracts the exponent of _X, as a signed integer value in floating-point format
Definition: amp_math.h:3102
float nearbyintf(float _X) __GPU_ONLY
Rounds the argument to an integer value in floating-point format, using the current rounding directio...
Definition: amp_math.h:3197
float __dp_d3d_expf(float) __GPU_ONLY
float log(float _X) __GPU_ONLY
Calculates the base-e logarithm of the argument
Definition: amp_math.h:774
float __dp_math_acoshf(float) __GPU_ONLY
float __dp_math_modff(float, _Out_ float *) __GPU_ONLY
float asinh(float _X) __GPU_ONLY
Calculates the inverse hyperbolic sine of the argument
Definition: amp_math.h:1408
float __dp_math_rcbrtf(float) __GPU_ONLY
float sinpif(float _X) __GPU_ONLY
Calculates the sine value of pi * _X
Definition: amp_math.h:3963
double trunc(double _X) __GPU_ONLY
Truncates the argument to the integer component
Definition: amp_math.h:4243
double __dp_math_trunc(double) __GPU_ONLY
float __dp_math_nextafterf(float, float) __GPU_ONLY
float __dp_math_tgammaf(float) __GPU_ONLY
float remainder(float _X, float _Y) __GPU_ONLY
Computes the remainder: _X REM _Y
Definition: amp_math.h:3497
int isfinite(float _X) __GPU_ONLY
Determines whether the argument has a finite value
Definition: amp_math.h:2692
float rcbrtf(float _X) __GPU_ONLY
Returns the reciprocal of the cube root of the argument
Definition: amp_math.h:3435
int signbit(float _X) __GPU_ONLY
Returns the sign of the argument
Definition: amp_math.h:982
float copysignf(float _X, float _Y) __GPU_ONLY
Produces a value with the magnitude of _X and the sign of _Y
Definition: amp_math.h:1659
double fdim(double _X, double _Y) __GPU_ONLY
Determines the positive difference between the arguments
Definition: amp_math.h:2250
float acosf(float _X) __GPU_ONLY
Calculates the arccosine of the argument
Definition: amp_math.h:255
float __dp_d3d_atanf(float) __GPU_ONLY
double __dp_math_cospi(double) __GPU_ONLY
double __dp_math_erfc(double) __GPU_ONLY
float __dp_math_phif(float) __GPU_ONLY
double __dp_math_ldexp(double, int) __GPU_ONLY
double __dp_math_rcbrt(double) __GPU_ONLY
float nearbyint(float _X) __GPU_ONLY
Rounds the argument to an integer value in floating-point format, using the current rounding directio...
Definition: amp_math.h:3212
float __dp_math_hypotf(float, float) __GPU_ONLY
double __dp_math_exp(double) __GPU_ONLY
float asinhf(float _X) __GPU_ONLY
Calculates the inverse hyperbolic sine of the argument
Definition: amp_math.h:1394
int __dp_d3d_signf(float) __GPU_ONLY
float ceil(float _X) __GPU_ONLY
Calculates the ceiling of the argument
Definition: amp_math.h:1628
float log2f(float _X) __GPU_ONLY
Calculates the base-2 logarithm of the argument
Definition: amp_math.h:2990
float rsqrtf(float _X) __GPU_ONLY
Returns the reciprocal of the square root of the argument
Definition: amp_math.h:3639
float __dp_d3d_sinhf(float) __GPU_ONLY
float log10f(float _X) __GPU_ONLY
Calculates the base-10 logarithm of the argument
Definition: amp_math.h:788
double __dp_math_fmod(double, double) __GPU_ONLY
float logbf(float _X) __GPU_ONLY
Extracts the exponent of _X, as a signed integer value in floating-point format
Definition: amp_math.h:3074
float remquo(float _X, float _Y, _Out_ int *_Quo) __GPU_ONLY
Computes the same remainder as _X REM _Y. Also calculates the lower 24 bits of the integral quotient ...
Definition: amp_math.h:3560
double __dp_math_log1p(double) __GPU_ONLY
float scalbf(float _X, float _Y) __GPU_ONLY
Multiplies _X by FLT_RADIX to the power _Y
Definition: amp_math.h:3684
float acos(float _X) __GPU_ONLY
Calculates the arccosine of the argument
Definition: amp_math.h:269
double __dp_math_atan2(double, double) __GPU_ONLY
double __dp_math_tgamma(double) __GPU_ONLY
double __dp_math_asin(double) __GPU_ONLY
float erfinv(float _X) __GPU_ONLY
Computes the inverse error function of _X
Definition: amp_math.h:1931
float cospif(float _X) __GPU_ONLY
Calculates the cosine value of pi * _X
Definition: amp_math.h:1791
float lgammaf(float _X, _Out_ int *_Sign) __GPU_ONLY
Computes the natural logarithm of the absolute value of gamma of the argument
Definition: amp_math.h:2858
float fmin(float _X, float _Y) __GPU_ONLY
Determine the minimum numeric value of the arguments
Definition: amp_math.h:2437
double __dp_math_cbrt(double) __GPU_ONLY
float __dp_math_expf(float) __GPU_ONLY
double __dp_math_scalbn(double, int) __GPU_ONLY
int isnan(float _X) __GPU_ONLY
Determines whether the argument is a NaN
Definition: amp_math.h:711
float asin(float _X) __GPU_ONLY
Calculates the arcsine of the argument
Definition: amp_math.h:297
double modf(double _X, _Out_ double *_Iptr) __GPU_ONLY
Splits _X into fractional and integer parts.
Definition: amp_math.h:3153
double __dp_math_fdim(double, double) __GPU_ONLY
float rsqrt(float _X) __GPU_ONLY
Returns the reciprocal of the square root of the argument
Definition: amp_math.h:3653
double nan(int _X) __GPU_ONLY
Returns a quiet NaN
Definition: amp_math.h:3181
float __dp_d3d_acosf(float) __GPU_ONLY
float atan2(float _Y, float _X) __GPU_ONLY
Calculates the arctangent of _Y/_X
Definition: amp_math.h:1498
float logf(float _X) __GPU_ONLY
Calculates the base-e logarithm of the argument
Definition: amp_math.h:2906
double atan(double _X) __GPU_ONLY
Calculates the arctangent of the argument
Definition: amp_math.h:1464
float exp2(float _X) __GPU_ONLY
Calculates the base-2 exponential of the argument
Definition: amp_math.h:2057
double __dp_math_erfinv(double) __GPU_ONLY
float __dp_d3d_log10f(float) __GPU_ONLY
double scalbn(double _X, int _Y) __GPU_ONLY
Multiplies _X by FLT_RADIX to the power _Y
Definition: amp_math.h:3769
float __dp_d3d_tanf(float) __GPU_ONLY
double __dp_math_asinh(double) __GPU_ONLY
double expm1(double _X) __GPU_ONLY
Calculates the base-e exponential of the argument, minus 1
Definition: amp_math.h:2155
float __dp_math_powf(float, float) __GPU_ONLY
float cos(float _X) __GPU_ONLY
Calculates the cosine of the argument
Definition: amp_math.h:1721
float __dp_math_roundf(float) __GPU_ONLY
float __dp_math_scalbnf(float, int) __GPU_ONLY
float atan2f(float _Y, float _X) __GPU_ONLY
Calculates the arctangent of _Y/_X
Definition: amp_math.h:1481
double __dp_math_fma(double, double, double) __GPU_ONLY
float probit(float _X) __GPU_ONLY
Returns the inverse cumulative distribution function of the argument
Definition: amp_math.h:3407
float frexp(float _X, _Out_ int *_Exp) __GPU_ONLY
Gets the mantissa and exponent of _X
Definition: amp_math.h:669
float logf(float _X) __GPU_ONLY
Calculates the base-e logarithm of the argument
Definition: amp_math.h:760
float __dp_d3d_rsqrtf(float) __GPU_ONLY
float __dp_math_fmodf(float, float) __GPU_ONLY
float fmin(float _X, float _Y) __GPU_ONLY
Determine the minimum numeric value of the arguments
Definition: amp_math.h:595
float erfc(float _X) __GPU_ONLY
Computes the complementary error function of _X
Definition: amp_math.h:1889
double __dp_math_sincos(double, _Out_ double *) __GPU_ONLY
double __dp_math_pow(double, double) __GPU_ONLY
double asinh(double _X) __GPU_ONLY
Calculates the inverse hyperbolic sine of the argument
Definition: amp_math.h:1422
float rsqrtf(float _X) __GPU_ONLY
Returns the reciprocal of the square root of the argument
Definition: amp_math.h:940
int __dp_math_fpclassifyf(float) __GPU_ONLY
float log1p(float _X) __GPU_ONLY
Calculates the base-e logarithm of 1 plus the argument
Definition: amp_math.h:3046
float __dp_math_exp10f(float) __GPU_ONLY
double cosh(double _X) __GPU_ONLY
Calculates the hyperbolic cosine value of the argument
Definition: amp_math.h:1777
double ceil(double _X) __GPU_ONLY
Calculates the ceiling of the argument
Definition: amp_math.h:1642
float __dp_math_ceilf(float) __GPU_ONLY
double __dp_math_nextafter(double, double) __GPU_ONLY
float log10(float _X) __GPU_ONLY
Calculates the base-10 logarithm of the argument
Definition: amp_math.h:802
float __dp_d3d_absf(float) __GPU_ONLY
float nextafter(float _X, float _Y) __GPU_ONLY
Determine the next representable value, in the type of the function, after _X in the direction of _Y ...
Definition: amp_math.h:3266
float __dp_d3d_fracf(float) __GPU_ONLY
float log10f(float _X) __GPU_ONLY
Calculates the base-10 logarithm of the argument
Definition: amp_math.h:2948
float __dp_d3d_log2f(float) __GPU_ONLY
int __dp_math_isnormalf(float) __GPU_ONLY
float tanf(float _X) __GPU_ONLY
Calculates the tangent value of the argument
Definition: amp_math.h:4089
float __dp_d3d_ceilf(float) __GPU_ONLY
float __dp_d3d_modff(float, _Out_ float *) __GPU_ONLY
int __dp_math_isnanf(float) __GPU_ONLY
double __dp_math_round(double) __GPU_ONLY
float coshf(float _X) __GPU_ONLY
Calculates the hyperbolic cosine value of the argument
Definition: amp_math.h:1749
float cosh(float _X) __GPU_ONLY
Calculates the hyperbolic cosine value of the argument
Definition: amp_math.h:1763
float log1pf(float _X) __GPU_ONLY
Calculates the base-e logarithm of 1 plus the argument
Definition: amp_math.h:3032
float __dp_d3d_coshf(float) __GPU_ONLY
float __dp_math_remainderf(float, float) __GPU_ONLY
float truncf(float _X) __GPU_ONLY
Truncates the argument to the integer component
Definition: amp_math.h:4215
int __dp_math_signbitf(float) __GPU_ONLY
float __dp_d3d_exp2f(float) __GPU_ONLY
float atan(float _X) __GPU_ONLY
Calculates the arctangent of the argument
Definition: amp_math.h:1450
double __dp_math_frexp(double, _Out_ int *) __GPU_ONLY
float sqrt(float _X) __GPU_ONLY
Calculates the squre root of the argument
Definition: amp_math.h:4019
float fmax(float _X, float _Y) __GPU_ONLY
Determine the maximum numeric value of the arguments
Definition: amp_math.h:2386
double __dp_math_copysign(double, double) __GPU_ONLY
float erfcinv(float _X) __GPU_ONLY
Computes the inverse complementary error function of _X
Definition: amp_math.h:1973
int isnormal(float _X) __GPU_ONLY
Determines whether the argument is a normal
Definition: amp_math.h:2776
double erfc(double _X) __GPU_ONLY
Computes the complementary error function of _X
Definition: amp_math.h:1903
float __dp_math_cospif(float) __GPU_ONLY
float __dp_d3d_roundf(float) __GPU_ONLY
float tanpif(float _X) __GPU_ONLY
Calculates the tangent value of pi * _X
Definition: amp_math.h:4173
float log2f(float _X) __GPU_ONLY
Calculates the base-2 logarithm of the argument
Definition: amp_math.h:816
float floor(float _X) __GPU_ONLY
Calculates the floor of the argument
Definition: amp_math.h:2278
float expm1(float _X) __GPU_ONLY
Calculates the base-e exponential of the argument, minus 1
Definition: amp_math.h:2141
float tanhf(float _X) __GPU_ONLY
Calculates the hyperbolic tangent value of the argument
Definition: amp_math.h:1142
float atanf(float _X) __GPU_ONLY
Calculates the arctangent of the argument
Definition: amp_math.h:311
float cos(float _X) __GPU_ONLY
Calculates the cosine of the argument
Definition: amp_math.h:415
void sincosf(float _X, _Out_ float *_S, _Out_ float *_C) __GPU_ONLY
Calculates sine and cosine value of _X
Definition: amp_math.h:3873
float __dp_math_expm1f(float) __GPU_ONLY
double __dp_math_nan(int) __GPU_ONLY
float __dp_math_sinhf(float) __GPU_ONLY
double __dp_math_sin(double) __GPU_ONLY
int __dp_math_ilogbf(float) __GPU_ONLY
double __dp_math_cos(double) __GPU_ONLY
float modf(float _X, float *_Ip) __GPU_ONLY
Splits _X into fractional and integer parts.
Definition: amp_math.h:864
float ldexp(float _X, int _Exp) __GPU_ONLY
Computes a real number from the mantissa and exponent
Definition: amp_math.h:746
float modff(float _X, _Out_ float *_Iptr) __GPU_ONLY
Splits _X into fractional and integer parts.
Definition: amp_math.h:3119
double __dp_math_lgamma(double, _Out_ int *) __GPU_ONLY
float sinhf(float _X) __GPU_ONLY
Calculates the hyperbolic sine value of the argument
Definition: amp_math.h:3921
int signbit(float _X) __GPU_ONLY
Determines whether the sign of _X is negative
Definition: amp_math.h:3799
double fmod(double _X, double _Y) __GPU_ONLY
Calculates the floating-point remainder of _X/_Y
Definition: amp_math.h:2505
float __dp_math_lgammaf(float, _Out_ int *) __GPU_ONLY
float asinf(float _X) __GPU_ONLY
Calculates the arcsine of the argument
Definition: amp_math.h:1352
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _FExp(float *, float, short)
float sqrtf(float _X) __GPU_ONLY
Calculates the squre root of the argument
Definition: amp_math.h:4005
double tanh(double _X) __GPU_ONLY
Calculates the hyperbolic tangent value of the argument
Definition: amp_math.h:4159
float asinf(float _X) __GPU_ONLY
Calculates the arcsine of the argument
Definition: amp_math.h:283
double hypot(double _X, double _Y) __GPU_ONLY
Computes the square root of the sum of the squares of _X and _Y
Definition: amp_math.h:2636
double sinh(double _X) __GPU_ONLY
Calculates the hyperbolic sine value of the argument
Definition: amp_math.h:3949
float __dp_math_fabsf(float) __GPU_ONLY
double exp2(double _X) __GPU_ONLY
Calculates the base-2 exponential of the argument
Definition: amp_math.h:2071
float __dp_math_log10f(float) __GPU_ONLY
float __dp_d3d_minf(float, float) __GPU_ONLY
int isfinite(float _X) __GPU_ONLY
Determines whether the argument has a finite value
Definition: amp_math.h:683
float __dp_math_erfinvf(float) __GPU_ONLY
float roundf(float _X) __GPU_ONLY
Rounds _X to the nearest integer
Definition: amp_math.h:3597
float cbrtf(float _X) __GPU_ONLY
Computes the real cube root of the argument
Definition: amp_math.h:1572
float __dp_d3d_sqrtf(float) __GPU_ONLY
float rcbrt(float _X) __GPU_ONLY
Returns the reciprocal of the cube root of the argument
Definition: amp_math.h:3449
double fmax(double _X, double _Y) __GPU_ONLY
Determine the maximum numeric value of the arguments
Definition: amp_math.h:2403
double __dp_math_fmin(double, double) __GPU_ONLY
float round(float _X) __GPU_ONLY
Rounds _X to the nearest integer
Definition: amp_math.h:3611
float __dp_d3d_truncf(float) __GPU_ONLY
float __dp_math_tanpif(float) __GPU_ONLY
float floor(float _X) __GPU_ONLY
Calculates the floor of the argument
Definition: amp_math.h:527
float __dp_math_rsqrtf(float) __GPU_ONLY
float copysign(float _X, float _Y) __GPU_ONLY
Produces a value with the magnitude of _X and the sign of _Y
Definition: amp_math.h:1676
float __dp_d3d_sincosf(float, _Out_ float *) __GPU_ONLY
double __dp_math_sqrt(double) __GPU_ONLY
float __dp_math_fmaf(float, float, float) __GPU_ONLY
double fabs(double _X) __GPU_ONLY
Returns the absolute value of the argument
Definition: amp_math.h:2197
int __dp_d3d_isnanf(float) __GPU_ONLY
float fabsf(float _X) __GPU_ONLY
Returns the absolute value of the argument
Definition: amp_math.h:2169
float powf(float _X, float _Y) __GPU_ONLY
Calculates _X raised to the power of _Y
Definition: amp_math.h:3344
float log(float _X) __GPU_ONLY
Calculates the base-e logarithm of the argument
Definition: amp_math.h:2920
double __dp_math_scalb(double, double) __GPU_ONLY
float tanf(float _X) __GPU_ONLY
Calculates the tangent value of the argument
Definition: amp_math.h:1114
double __dp_math_exp2(double) __GPU_ONLY
float __dp_math_erfcf(float) __GPU_ONLY
float __dp_math_probitf(float) __GPU_ONLY
float tanpi(float _X) __GPU_ONLY
Calculates the tangent value of pi * _X
Definition: amp_math.h:4187
float exp10f(float _X) __GPU_ONLY
Calculates the base-10 exponential of the argument
Definition: amp_math.h:2085
float __dp_d3d_asinf(float) __GPU_ONLY
double __dp_math_log2(double) __GPU_ONLY
int __dp_math_isfinitef(float) __GPU_ONLY
float __dp_math_sqrtf(float) __GPU_ONLY
int ilogb(float _X) __GPU_ONLY
Extract the exponent of _X as a signed int value
Definition: amp_math.h:2664
float sinf(float _X) __GPU_ONLY
Calculates the sine value of the argument
Definition: amp_math.h:3828
float modff(float _X, float *_Ip) __GPU_ONLY
Splits _X into fractional and integer parts.
Definition: amp_math.h:847
float fmaxf(float _X, float _Y) __GPU_ONLY
Determine the maximum numeric value of the arguments
Definition: amp_math.h:544
double __dp_math_tanpi(double) __GPU_ONLY
int __dp_math_isinf(double) __GPU_ONLY
float log10(float _X) __GPU_ONLY
Calculates the base-10 logarithm of the argument
Definition: amp_math.h:2962
double __dp_math_log(double) __GPU_ONLY
float acoshf(float _X) __GPU_ONLY
Calculates the inverse hyperbolic cosine of the argument
Definition: amp_math.h:1309
float __dp_math_logbf(float) __GPU_ONLY
float tanhf(float _X) __GPU_ONLY
Calculates the hyperbolic tangent value of the argument
Definition: amp_math.h:4131
double __dp_math_nearbyint(double) __GPU_ONLY
float fmod(float _X, float _Y) __GPU_ONLY
Calculates the floating-point remainder of _X/_Y
Definition: amp_math.h:2488
double cos(double _X) __GPU_ONLY
Calculates the cosine of the argument
Definition: amp_math.h:1735
double ldexp(double _X, int _Exp) __GPU_ONLY
Computes a real number from the mantissa and exponent
Definition: amp_math.h:2841
float __dp_math_ldexpf(float, int) __GPU_ONLY
float sinf(float _X) __GPU_ONLY
Calculates the sine value of the argument
Definition: amp_math.h:996
float __dp_math_copysignf(float, float) __GPU_ONLY
float fdimf(float _X, float _Y) __GPU_ONLY
Determines the positive difference between the arguments
Definition: amp_math.h:2214
float tan(float _X) __GPU_ONLY
Calculates the tangent value of the argument
Definition: amp_math.h:1128
float tan(float _X) __GPU_ONLY
Calculates the tangent value of the argument
Definition: amp_math.h:4103
float erfcinvf(float _X) __GPU_ONLY
Computes the inverse complementary error function of _X
Definition: amp_math.h:1959
#define __GPU_ONLY
Definition: amprt.h:46
float atanf(float _X) __GPU_ONLY
Calculates the arctangent of the argument
Definition: amp_math.h:1436
float erfinvf(float _X) __GPU_ONLY
Computes the inverse error function of _X
Definition: amp_math.h:1917
float asin(float _X) __GPU_ONLY
Calculates the arcsine of the argument
Definition: amp_math.h:1366
double __dp_math_sinh(double) __GPU_ONLY
double exp(double _X) __GPU_ONLY
Calculates the base-e exponential of the argument
Definition: amp_math.h:2029
float cbrt(float _X) __GPU_ONLY
Computes the real cube root of the argument
Definition: amp_math.h:1586
int __dp_math_isnormal(double) __GPU_ONLY
float scalbnf(float _X, int _Y) __GPU_ONLY
Multiplies _X by FLT_RADIX to the power _Y
Definition: amp_math.h:3735
float fma(float _X, float _Y, float _Z) __GPU_ONLY
Compute (_X * _Y) + _Z, rounded as one ternary operation
Definition: amp_math.h:2332
double __dp_math_tanh(double) __GPU_ONLY
double __dp_math_fabs(double) __GPU_ONLY
float erf(float _X) __GPU_ONLY
Computes the error function of _X
Definition: amp_math.h:1847
double __dp_math_exp10(double) __GPU_ONLY
float pow(float _X, float _Y) __GPU_ONLY
Calculates _X raised to the power of _Y
Definition: amp_math.h:898
float exp10(float _X) __GPU_ONLY
Calculates the base-10 exponential of the argument
Definition: amp_math.h:2099
int isinf(float _X) __GPU_ONLY
Determines whether the argument is an infinity
Definition: amp_math.h:2720
float __dp_math_erfcinvf(float) __GPU_ONLY
void sincosf(float _X, float *_S, float *_C) __GPU_ONLY
Calculates sine and cosine value of _X
Definition: amp_math.h:1027
float __dp_math_truncf(float) __GPU_ONLY
double nearbyint(double _X) __GPU_ONLY
Rounds the argument to an integer value in floating-point format, using the current rounding directio...
Definition: amp_math.h:3227
float scalbn(float _X, int _Y) __GPU_ONLY
Multiplies _X by FLT_RADIX to the power _Y
Definition: amp_math.h:3752
float fmodf(float _X, float _Y) __GPU_ONLY
Calculates the floating-point remainder of _X/_Y
Definition: amp_math.h:612
double remquo(double _X, double _Y, _Out_ int *_Quo) __GPU_ONLY
Computes the same remainder as _X REM _Y. Also calculates the lower 31 bits of the integral quotient ...
Definition: amp_math.h:3583
float sin(float _X) __GPU_ONLY
Calculates the sine value of the argument
Definition: amp_math.h:3842
float __dp_d3d_logf(float) __GPU_ONLY
float ceil(float _X) __GPU_ONLY
Calculates the ceiling of the argument
Definition: amp_math.h:387
double tgamma(double _X) __GPU_ONLY
Computes the gamma function of _X
Definition: amp_math.h:4075
float phi(float _X) __GPU_ONLY
Returns the cumulative distribution function of the argument
Definition: amp_math.h:3313
float hypotf(float _X, float _Y) __GPU_ONLY
Computes the square root of the sum of the squares of _X and _Y
Definition: amp_math.h:2602
double __dp_math_phi(double) __GPU_ONLY
float probitf(float _X) __GPU_ONLY
Returns the inverse cumulative distribution function of the argument
Definition: amp_math.h:3393
float exp2(float _X) __GPU_ONLY
Calculates the base-2 exponential of the argument
Definition: amp_math.h:499
double atan2(double _Y, double _X) __GPU_ONLY
Calculates the arctangent of _Y/_X
Definition: amp_math.h:1515
double __dp_math_cosh(double) __GPU_ONLY
float fabs(float _X) __GPU_ONLY
Returns the absolute value of the argument
Definition: amp_math.h:241
double acosh(double _X) __GPU_ONLY
Calculates the inverse hyperbolic cosine of the argument
Definition: amp_math.h:1337
int ilogb(double _X) __GPU_ONLY
Extract the exponent of _X as a signed int value
Definition: amp_math.h:2678
float exp2f(float _X) __GPU_ONLY
Calculates the base-2 exponential of the argument
Definition: amp_math.h:485
float fmodf(float _X, float _Y) __GPU_ONLY
Calculates the floating-point remainder of _X/_Y
Definition: amp_math.h:2471
float truncf(float _X) __GPU_ONLY
Truncates the argument to the integer component
Definition: amp_math.h:1169
double round(double _X) __GPU_ONLY
Rounds _X to the nearest integer
Definition: amp_math.h:3625
float sinhf(float _X) __GPU_ONLY
Calculates the hyperbolic sine value of the argument
Definition: amp_math.h:1058