Lines Matching full:real

80    square roots accurately when the real and imaginary parts of the argument
111 r.real = 0.0; in c_infj()
132 r.real = 0.0; in c_nanj()
190 if (!Py_IS_FINITE((z).real) || !Py_IS_FINITE((z).imag)) { \
192 return table[special_type((z).real)] \
204 /* First, the C functions that do the real work. Each of the c_*
232 if (fabs(z.real) > CM_LARGE_DOUBLE || fabs(z.imag) > CM_LARGE_DOUBLE) { in cmath_acos_impl()
234 r.real = atan2(fabs(z.imag), z.real); in cmath_acos_impl()
237 if (z.real < 0.) { in cmath_acos_impl()
238 r.imag = -copysign(log(hypot(z.real/2., z.imag/2.)) + in cmath_acos_impl()
241 r.imag = copysign(log(hypot(z.real/2., z.imag/2.)) + in cmath_acos_impl()
245 s1.real = 1.-z.real; in cmath_acos_impl()
248 s2.real = 1.+z.real; in cmath_acos_impl()
251 r.real = 2.*atan2(s1.real, s2.real); in cmath_acos_impl()
252 r.imag = asinh(s2.real*s1.imag - s2.imag*s1.real); in cmath_acos_impl()
275 if (fabs(z.real) > CM_LARGE_DOUBLE || fabs(z.imag) > CM_LARGE_DOUBLE) { in cmath_acosh_impl()
277 r.real = log(hypot(z.real/2., z.imag/2.)) + M_LN2*2.; in cmath_acosh_impl()
278 r.imag = atan2(z.imag, z.real); in cmath_acosh_impl()
280 s1.real = z.real - 1.; in cmath_acosh_impl()
283 s2.real = z.real + 1.; in cmath_acosh_impl()
286 r.real = asinh(s1.real*s2.real + s1.imag*s2.imag); in cmath_acosh_impl()
287 r.imag = 2.*atan2(s1.imag, s2.real); in cmath_acosh_impl()
305 s.real = -z.imag; in cmath_asin_impl()
306 s.imag = z.real; in cmath_asin_impl()
308 r.real = s.imag; in cmath_asin_impl()
309 r.imag = -s.real; in cmath_asin_impl()
330 if (fabs(z.real) > CM_LARGE_DOUBLE || fabs(z.imag) > CM_LARGE_DOUBLE) { in cmath_asinh_impl()
332 r.real = copysign(log(hypot(z.real/2., z.imag/2.)) + in cmath_asinh_impl()
333 M_LN2*2., z.real); in cmath_asinh_impl()
335 r.real = -copysign(log(hypot(z.real/2., z.imag/2.)) + in cmath_asinh_impl()
336 M_LN2*2., -z.real); in cmath_asinh_impl()
338 r.imag = atan2(z.imag, fabs(z.real)); in cmath_asinh_impl()
340 s1.real = 1.+z.imag; in cmath_asinh_impl()
341 s1.imag = -z.real; in cmath_asinh_impl()
343 s2.real = 1.-z.imag; in cmath_asinh_impl()
344 s2.imag = z.real; in cmath_asinh_impl()
346 r.real = asinh(s1.real*s2.imag-s2.real*s1.imag); in cmath_asinh_impl()
347 r.imag = atan2(z.imag, s1.real*s2.real-s1.imag*s2.imag); in cmath_asinh_impl()
366 s.real = -z.imag; in cmath_atan_impl()
367 s.imag = z.real; in cmath_atan_impl()
369 r.real = s.imag; in cmath_atan_impl()
370 r.imag = -s.real; in cmath_atan_impl()
379 if (Py_IS_NAN(z.real) || Py_IS_NAN(z.imag)) in c_atan2()
382 if (Py_IS_INFINITY(z.real)) { in c_atan2()
383 if (copysign(1., z.real) == 1.) in c_atan2()
393 if (Py_IS_INFINITY(z.real) || z.imag == 0.) { in c_atan2()
394 if (copysign(1., z.real) == 1.) in c_atan2()
401 return atan2(z.imag, z.real); in c_atan2()
422 /* Reduce to case where z.real >= 0., using atanh(z) = -atanh(-z). */ in cmath_atanh_impl()
423 if (z.real < 0.) { in cmath_atanh_impl()
428 if (z.real > CM_SQRT_LARGE_DOUBLE || ay > CM_SQRT_LARGE_DOUBLE) { in cmath_atanh_impl()
434 h = hypot(z.real/2., z.imag/2.); /* safe from overflow */ in cmath_atanh_impl()
435 r.real = z.real/4./h/h; in cmath_atanh_impl()
442 } else if (z.real == 1. && ay < CM_SQRT_DBL_MIN) { in cmath_atanh_impl()
445 r.real = INF; in cmath_atanh_impl()
449 r.real = -log(sqrt(ay)/sqrt(hypot(ay, 2.))); in cmath_atanh_impl()
454 r.real = m_log1p(4.*z.real/((1-z.real)*(1-z.real) + ay*ay))/4.; in cmath_atanh_impl()
455 r.imag = -atan2(-2.*z.imag, (1-z.real)*(1+z.real) - ay*ay)/2.; in cmath_atanh_impl()
474 r.real = -z.imag; in cmath_cos_impl()
475 r.imag = z.real; in cmath_cos_impl()
498 if (!Py_IS_FINITE(z.real) || !Py_IS_FINITE(z.imag)) { in cmath_cosh_impl()
499 if (Py_IS_INFINITY(z.real) && Py_IS_FINITE(z.imag) && in cmath_cosh_impl()
501 if (z.real > 0) { in cmath_cosh_impl()
502 r.real = copysign(INF, cos(z.imag)); in cmath_cosh_impl()
506 r.real = copysign(INF, cos(z.imag)); in cmath_cosh_impl()
511 r = cosh_special_values[special_type(z.real)] in cmath_cosh_impl()
516 if (Py_IS_INFINITY(z.imag) && !Py_IS_NAN(z.real)) in cmath_cosh_impl()
523 if (fabs(z.real) > CM_LOG_LARGE_DOUBLE) { in cmath_cosh_impl()
524 /* deal correctly with cases where cosh(z.real) overflows but in cmath_cosh_impl()
526 x_minus_one = z.real - copysign(1., z.real); in cmath_cosh_impl()
527 r.real = cos(z.imag) * cosh(x_minus_one) * Py_MATH_E; in cmath_cosh_impl()
530 r.real = cos(z.imag) * cosh(z.real); in cmath_cosh_impl()
531 r.imag = sin(z.imag) * sinh(z.real); in cmath_cosh_impl()
534 if (Py_IS_INFINITY(r.real) || Py_IS_INFINITY(r.imag)) in cmath_cosh_impl()
559 if (!Py_IS_FINITE(z.real) || !Py_IS_FINITE(z.imag)) { in cmath_exp_impl()
560 if (Py_IS_INFINITY(z.real) && Py_IS_FINITE(z.imag) in cmath_exp_impl()
562 if (z.real > 0) { in cmath_exp_impl()
563 r.real = copysign(INF, cos(z.imag)); in cmath_exp_impl()
567 r.real = copysign(0., cos(z.imag)); in cmath_exp_impl()
572 r = exp_special_values[special_type(z.real)] in cmath_exp_impl()
578 (Py_IS_FINITE(z.real) || in cmath_exp_impl()
579 (Py_IS_INFINITY(z.real) && z.real > 0))) in cmath_exp_impl()
586 if (z.real > CM_LOG_LARGE_DOUBLE) { in cmath_exp_impl()
587 l = exp(z.real-1.); in cmath_exp_impl()
588 r.real = l*cos(z.imag)*Py_MATH_E; in cmath_exp_impl()
591 l = exp(z.real); in cmath_exp_impl()
592 r.real = l*cos(z.imag); in cmath_exp_impl()
596 if (Py_IS_INFINITY(r.real) || Py_IS_INFINITY(r.imag)) in cmath_exp_impl()
609 The usual formula for the real part is log(hypot(z.real, z.imag)). in c_log()
620 z.real and z.imag are within a factor of 1/sqrt(2) of DBL_MAX) in c_log()
625 change of 1ulp in the real or imaginary part of z can result in a in c_log()
641 ax = fabs(z.real); in c_log()
645 r.real = log(hypot(ax/2., ay/2.)) + M_LN2; in c_log()
649 r.real = log(hypot(ldexp(ax, DBL_MANT_DIG), in c_log()
654 r.real = -INF; in c_log()
655 r.imag = atan2(z.imag, z.real); in c_log()
664 r.real = m_log1p((am-1)*(am+1)+an*an)/2.; in c_log()
666 r.real = log(h); in c_log()
669 r.imag = atan2(z.imag, z.real); in c_log()
690 r.real = r.real / M_LN10; in cmath_log10_impl()
709 s.real = -z.imag; in cmath_sin_impl()
710 s.imag = z.real; in cmath_sin_impl()
712 r.real = s.imag; in cmath_sin_impl()
713 r.imag = -s.real; in cmath_sin_impl()
736 if (!Py_IS_FINITE(z.real) || !Py_IS_FINITE(z.imag)) { in cmath_sinh_impl()
737 if (Py_IS_INFINITY(z.real) && Py_IS_FINITE(z.imag) in cmath_sinh_impl()
739 if (z.real > 0) { in cmath_sinh_impl()
740 r.real = copysign(INF, cos(z.imag)); in cmath_sinh_impl()
744 r.real = -copysign(INF, cos(z.imag)); in cmath_sinh_impl()
749 r = sinh_special_values[special_type(z.real)] in cmath_sinh_impl()
754 if (Py_IS_INFINITY(z.imag) && !Py_IS_NAN(z.real)) in cmath_sinh_impl()
761 if (fabs(z.real) > CM_LOG_LARGE_DOUBLE) { in cmath_sinh_impl()
762 x_minus_one = z.real - copysign(1., z.real); in cmath_sinh_impl()
763 r.real = cos(z.imag) * sinh(x_minus_one) * Py_MATH_E; in cmath_sinh_impl()
766 r.real = cos(z.imag) * sinh(z.real); in cmath_sinh_impl()
767 r.imag = sin(z.imag) * cosh(z.real); in cmath_sinh_impl()
770 if (Py_IS_INFINITY(r.real) || Py_IS_INFINITY(r.imag)) in cmath_sinh_impl()
791 Method: use symmetries to reduce to the case when x = z.real and y in cmath_sqrt_impl()
792 = z.imag are nonnegative. Then the real part of the result is in cmath_sqrt_impl()
823 if (z.real == 0. && z.imag == 0.) { in cmath_sqrt_impl()
824 r.real = 0.; in cmath_sqrt_impl()
829 ax = fabs(z.real); in cmath_sqrt_impl()
843 if (z.real >= 0.) { in cmath_sqrt_impl()
844 r.real = s; in cmath_sqrt_impl()
847 r.real = d; in cmath_sqrt_impl()
867 s.real = -z.imag; in cmath_tan_impl()
868 s.imag = z.real; in cmath_tan_impl()
870 r.real = s.imag; in cmath_tan_impl()
871 r.imag = -s.real; in cmath_tan_impl()
906 if (!Py_IS_FINITE(z.real) || !Py_IS_FINITE(z.imag)) { in cmath_tanh_impl()
907 if (Py_IS_INFINITY(z.real) && Py_IS_FINITE(z.imag) in cmath_tanh_impl()
909 if (z.real > 0) { in cmath_tanh_impl()
910 r.real = 1.0; in cmath_tanh_impl()
915 r.real = -1.0; in cmath_tanh_impl()
921 r = tanh_special_values[special_type(z.real)] in cmath_tanh_impl()
925 z.real is finite */ in cmath_tanh_impl()
926 if (Py_IS_INFINITY(z.imag) && Py_IS_FINITE(z.real)) in cmath_tanh_impl()
934 if (fabs(z.real) > CM_LOG_LARGE_DOUBLE) { in cmath_tanh_impl()
935 r.real = copysign(1., z.real); in cmath_tanh_impl()
936 r.imag = 4.*sin(z.imag)*cos(z.imag)*exp(-2.*fabs(z.real)); in cmath_tanh_impl()
938 tx = tanh(z.real); in cmath_tanh_impl()
940 cx = 1./cosh(z.real); in cmath_tanh_impl()
943 r.real = tx*(1.+ty*ty)/denom; in cmath_tanh_impl()
1087 z.real = copysign(INF, cos(phi)); in cmath_rect_impl()
1091 z.real = -copysign(INF, cos(phi)); in cmath_rect_impl()
1109 z.real = r; in cmath_rect_impl()
1114 z.real = r * cos(phi); in cmath_rect_impl()
1128 Return True if both the real and imaginary parts of z are finite, else False.
1135 return PyBool_FromLong(Py_IS_FINITE(z.real) && Py_IS_FINITE(z.imag)); in cmath_isfinite_impl()
1141 Checks if the real or imaginary part of z not a number (NaN).
1148 return PyBool_FromLong(Py_IS_NAN(z.real) || Py_IS_NAN(z.imag)); in cmath_isnan_impl()
1154 Checks if the real or imaginary part of z is infinite.
1161 return PyBool_FromLong(Py_IS_INFINITY(z.real) || in cmath_isinf_impl()
1203 if ( (a.real == b.real) && (a.imag == b.imag) ) { in cmath_isclose_impl()
1217 if (Py_IS_INFINITY(a.real) || Py_IS_INFINITY(a.imag) || in cmath_isclose_impl()
1218 Py_IS_INFINITY(b.real) || Py_IS_INFINITY(b.imag)) { in cmath_isclose_impl()
1298 #define C(REAL, IMAG) p->real = REAL; p->imag = IMAG; ++p; in cmath_exec() argument