34 #ifndef MATHLIB_EXP2_SCALAR_H_
35 #define MATHLIB_EXP2_SCALAR_H_
43 #include "../common/MATHLIB_types.h"
44 #include "c6x_migration.h"
56 #pragma CODE_SECTION(divspMod_exp2spi, ".text:optci");
65 X = X * (TWO - (b * X));
66 X = X * (TWO - (b * X));
72 #pragma CODE_SECTION(MATHLIB_exp2_scalar_ci, ".text:optci");
79 float epse = 9.313225746e-10f;
80 float LnMine = -126.0f;
81 float MAXe = 3.40282347e+38f;
82 float LnMaxe = 128.0f;
83 float a0e = 2.499999995e-1f;
84 float a1e = 4.1602886268e-3f;
86 float b1e = 4.9987178778e-2f;
87 float CC1E = 0.693359375f;
88 float CC2E = -2.12194440055e-4f;
89 float Ln2E = 1.442695040889f;
90 float k2e = 0.69314718056f;
92 float Ye, Xe, We, Re, Se, Be, Ce, De;
98 if (_fabsf(Ye) < epse) {
106 Xe = (Ye - (Se * CC1E)) - (Se * CC2E);
108 Be = (b1e * We) + b0e;
109 De = ((a1e * We) + a0e) * Xe;
112 Se = _itof(_extu((
unsigned int) Ne + 128u, 23u, 0u));
static float MATHLIB_exp2_scalar_ci(float a)
static float divspMod_exp2spi(float a, float b)
static float exp2sp_i(float a)