Home | History | Annotate | Download | only in fpe

Lines Matching refs:fe

68 fpu_acos(struct fpemu *fe)
72 if (ISNAN(&fe->fe_f2))
73 return &fe->fe_f2;
74 if (ISINF(&fe->fe_f2))
75 return fpu_newnan(fe);
77 r = fpu_asin(fe);
78 CPYFPN(&fe->fe_f2, r);
81 fpu_const(&fe->fe_f1, FPU_CONST_PI);
82 fe->fe_f1.fp_exp--;
83 fe->fe_f2.fp_sign = !fe->fe_f2.fp_sign;
84 r = fpu_add(fe);
95 fpu_asin(struct fpemu *fe)
100 if (ISNAN(&fe->fe_f2))
101 return &fe->fe_f2;
102 if (ISZERO(&fe->fe_f2))
103 return &fe->fe_f2;
105 if (ISINF(&fe->fe_f2))
106 return fpu_newnan(fe);
108 CPYFPN(&x, &fe->fe_f2);
111 CPYFPN(&fe->fe_f1, &fe->fe_f2);
112 r = fpu_mul(fe);
115 CPYFPN(&fe->fe_f2, r);
116 fe->fe_f2.fp_sign = 1;
117 fpu_const(&fe->fe_f1, FPU_CONST_1);
118 r = fpu_add(fe);
121 CPYFPN(&fe->fe_f2, r);
122 r = fpu_sqrt(fe);
125 CPYFPN(&fe->fe_f2, r);
126 CPYFPN(&fe->fe_f1, &x);
127 r = fpu_div(fe);
130 CPYFPN(&fe->fe_f2, r);
131 return fpu_atan(fe);
147 fpu_atan(struct fpemu *fe)
153 if (ISNAN(&fe->fe_f2))
154 return &fe->fe_f2;
155 if (ISZERO(&fe->fe_f2))
156 return &fe->fe_f2;
158 CPYFPN(&a, &fe->fe_f2);
160 if (ISINF(&fe->fe_f2)) {
162 fpu_const(&fe->fe_f2, FPU_CONST_PI);
163 fe->fe_f2.fp_exp--;
165 fe->fe_f2.fp_sign = a.fp_sign;
166 return &fe->fe_f2;
170 fpu_const(&fe->fe_f2, FPU_CONST_0);
171 CPYFPN(&v, &fe->fe_f2);
172 fpu_cordit1(fe, &x, &a, &fe->fe_f2, &v);
174 return &fe->fe_f2;
183 __fpu_sincos_cordic(struct fpemu *fe, const struct fpn *in)
189 fpu_const(&fe->fe_f1, FPU_CONST_0);
190 CPYFPN(&fe->fe_f2, &fpu_cordic_inv_gain1);
193 fpu_cordit1(fe, &fe->fe_f2, &fe->fe_f1, &a, &v);
220 fpu_cos(struct fpemu *fe)
227 if (ISNAN(&fe->fe_f2))
228 return &fe->fe_f2;
229 if (ISINF(&fe->fe_f2))
230 return fpu_newnan(fe);
234 CPYFPN(&x, &fe->fe_f2);
245 CPYFPN(&fe->fe_f1, &x);
246 CPYFPN(&fe->fe_f2, &p);
247 r = fpu_cmp(fe);
249 CPYFPN(&fe->fe_f1, &x);
250 CPYFPN(&fe->fe_f2, &p);
251 r = fpu_mod(fe);
262 CPYFPN(&fe->fe_f1, &x);
263 CPYFPN(&fe->fe_f2, &p);
264 fe->fe_f2.fp_sign = 1;
265 r = fpu_add(fe);
280 CPYFPN(&fe->fe_f1, &x);
281 CPYFPN(&fe->fe_f2, &p);
282 fe->fe_f2.fp_sign = 1;
283 r = fpu_add(fe);
285 __fpu_sincos_cordic(fe, r);
286 r = &fe->fe_f1;
289 __fpu_sincos_cordic(fe, &x);
290 r = &fe->fe_f2;
320 fpu_sin(struct fpemu *fe)
327 if (ISNAN(&fe->fe_f2))
328 return &fe->fe_f2;
329 if (ISINF(&fe->fe_f2))
330 return fpu_newnan(fe);
333 if (ISZERO(&fe->fe_f2))
334 return &fe->fe_f2;
337 sign = fe->fe_f2.fp_sign;
338 CPYFPN(&x, &fe->fe_f2);
349 CPYFPN(&fe->fe_f1, &x);
350 CPYFPN(&fe->fe_f2, &p);
351 r = fpu_cmp(fe);
353 CPYFPN(&fe->fe_f1, &x);
354 CPYFPN(&fe->fe_f2, &p);
355 r = fpu_mod(fe);
366 CPYFPN(&fe->fe_f1, &x);
367 CPYFPN(&fe->fe_f2, &p);
368 fe->fe_f2.fp_sign = 1;
369 r = fpu_add(fe);
384 CPYFPN(&fe->fe_f1, &x);
385 CPYFPN(&fe->fe_f2, &p);
386 fe->fe_f2.fp_sign = 1;
387 r = fpu_add(fe);
389 __fpu_sincos_cordic(fe, r);
390 r = &fe->fe_f2;
392 __fpu_sincos_cordic(fe, &x);
393 r = &fe->fe_f1;
403 fpu_tan(struct fpemu *fe)
409 if (ISNAN(&fe->fe_f2))
410 return &fe->fe_f2;
411 if (ISINF(&fe->fe_f2))
412 return fpu_newnan(fe);
415 if (ISZERO(&fe->fe_f2))
416 return &fe->fe_f2;
418 CPYFPN(&x, &fe->fe_f2);
421 CPYFPN(&fe->fe_f2, &x);
422 r = fpu_sin(fe);
426 CPYFPN(&fe->fe_f2, &x);
427 r = fpu_cos(fe);
428 CPYFPN(&fe->fe_f2, r);
430 CPYFPN(&fe->fe_f1, &s);
431 r = fpu_div(fe);
436 fpu_sincos(struct fpemu *fe, int regc)
438 __fpu_sincos_cordic(fe, &fe->fe_f2);
441 fpu_implode(fe, &fe->fe_f2, FTYPE_EXT, &fe->fe_fpframe->fpf_regs[regc * 3]);
444 return &fe->fe_f1;