42 #ifndef MATHLIB_SIN_SCALAR_H_
43 #define MATHLIB_SIN_SCALAR_H_ 1
45 #include <c6x_migration.h>
48 #pragma CODE_SECTION(MATHLIB_sin_scalar, ".text:optci");
55 float InvPI = 0.318309886183791f;
57 float MAX = 1048576.0f;
59 float s1 = -1.666665668e-1f;
60 float s2 = 8.333025139e-3f;
61 float s3 = -1.980741872e-4f;
62 float s4 = 2.601903036e-6f;
64 float C2 = 9.67653589793e-4f;
65 float Sign, X, Y, Z, F, G, R;
71 if (_fabsf(Y) > MAX) {
83 F = (Y - (Z * C1)) - (Z * C2);
85 R = ((((((s4 * G) + s3) * G) + s2) * G) + s1) * G;
87 return ((F + (F * R)) * Sign);
92 double InvPI = 0.31830988618379067154;
93 double C1 = 3.1416015625;
94 double C2 = -8.908910206761537356617e-6;
95 double r8 = 2.7204790957888846175e-15;
96 double r7 = -7.6429178068910467734e-13;
97 double r6 = 1.6058936490371589114e-10;
98 double r5 = -2.5052106798274584544e-8;
99 double r4 = 2.7557319210152756119e-6;
100 double r3 = -1.9841269841201840457e-4;
101 double r2 = 8.3333333333331650314e-3;
102 double r1 = -1.6666666666666665052e-1;
103 double MAX = 1.073741824e+09;
106 double X, Z, F1, F2, G, R;
111 if (_fabs(F1) > MAX) {
123 F1 = (F1 - (Z * C1)) - (Z * C2);
127 R = ((((((G * r8) + r6) * G) + r4) * G) + r2) * G;
128 X = ((((((G * r7) + r5) * G) + r3) * G) + r1) * F2;
130 G = (F1 + (F1 * R)) * Sign;
double MATHLIB_sin_scalar_ci< double >(double a)
float MATHLIB_sin_scalar_ci< float >(float a)
static float MATHLIB_sin_scalar_sp(float a)
static double MATHLIB_sin_scalar_dp(double a)
static T MATHLIB_sin_scalar_ci(T a)