59const real Inf_Pi = 7074237752028440.0 / 2251799813685248.0;
62const real pi2 = 4967757600021510.0 / 40564819207303340847894502572032.0;
63const interval Pi2 = interval(pi2,succ(pi2));
67 inline const interval& ZERO_INTERVAL()
69 static const interval zero = interval(0.0);
73 inline const interval& ONE_INTERVAL()
75 static const interval one = interval(1.0);
79 inline const interval& PI()
81 static const interval pi = interval(Inf_Pi,succ(Inf_Pi));
85 inline const interval& HALFPI()
89 static const interval hpi = hp;
93bool disjoint(
const interval& x,
const interval& y)
95 real ix( Inf(x) ),iy( Inf(y) ),sx( Sup(x) ), sy( Sup(y) );
96 real inf( ( ix > iy )? ix : iy );
97 real sup( ( sx < sy )? sx : sy );
104const real Inf_rev_sqrt_2 = 6369051672525772.0 / 9007199254740992.0;
107inline const interval& INV_SQRT_2()
109 static const interval t = interval(Inf_rev_sqrt_2,succ(Inf_rev_sqrt_2));
113const real Inf_U_atan = 6243314768165359.0 / 4503599627370496.0;
114const interval U_atan(Inf_U_atan,succ(Inf_U_atan));
184 interval exp_x, sin_y, cos_y, h, Xt;
193 if (h < cancl_test && cos_y < cancl_test)
257void horizontal_check(
258 const interval& hy,
const interval& cosh_2y, real irez, real srez,
259 const interval& hxl,
const interval& hxu, real& resxl, real& resxu )
273 bool both =
false, left =
false, right =
false;
275 if (srez - irez > Inf( PI() ))
281 res_l =
cos( 2 * hxl ) - cosh_2y,
282 res_u =
cos( 2 * hxu ) - cosh_2y;
284 if( Inf( res_l * res_u ) > 0.0 )
289 if( Sup( res_l * res_u ) < 0.0 )
293 if( Inf( res_l ) > 0.0 )
308 sin_2xl =
sin( 2 * hxl ),
309 sin_2xu =
sin( 2 * hxu );
311 if( !disjoint( ZERO_INTERVAL(), res_l ) )
314 if( Inf( sin_2xl ) >= 0.0 )
319 res_l = - ONE_INTERVAL();
323 if( Sup( sin_2xl ) <= 0.0 )
328 res_l = ONE_INTERVAL();
338 if( !disjoint( ZERO_INTERVAL(), res_u ) )
341 if( Inf( sin_2xu ) >= 0.0 )
346 res_u = ONE_INTERVAL();
350 if( Sup( sin_2xu ) <= 0.0 )
355 res_u = - ONE_INTERVAL();
367 if( Inf( res_l * res_u ) < 0.0 )
375 interval re_tan = 1 /
sinh( 2 *
abs( hy ) );
380 resxl = min( resxl, Inf( re_tan ) );
381 resxu = max( resxu, Sup( re_tan ) );
387 resxl = min( resxl, - Sup( re_tan ) );
388 resxu = max( resxu, - Inf( re_tan ) );
406 hxl(irez), hxu(srez), hyl(iimz), hyu(simz);
409 resxl, resxu, resyl, resyu;
413 if( ( !disjoint( ZERO_INTERVAL(), imz ) ) && ( !disjoint( ZERO_INTERVAL(),
cos( rez ) ) ) )
414 cxscthrow (STD_FKT_OUT_OF_DEF(
"cinterval tan( const cinterval& Z); Pole(s) in Z"));
421 cos_2rez =
cos( 2 * rez ),
422 sinh_imz_2 =
sqr(
sinh( imz ) );
425 re_tan_l =
sin( 2 * hxl ) / ( 2 * (
sqr(
cos( hxl ) ) + sinh_imz_2 ) ),
426 re_tan_u =
sin( 2 * hxu ) / ( 2 * (
sqr(
cos( hxu ) ) + sinh_imz_2 ) );
428 resxl = min( Inf( re_tan_l ), Inf( re_tan_u ) );
429 resxu = max( Sup( re_tan_l ), Sup( re_tan_u ) );
440 cosh_2yl = - 1 /
cosh( 2 * hyl ),
441 cosh_2yu = - 1 /
cosh( 2 * hyu );
443 if( !disjoint( cos_2rez, cosh_2yl ) && iimz != 0.0 )
445 horizontal_check( hyl, cosh_2yl, irez, srez, hxl, hxu, resxl, resxu );
447 if( !disjoint( cos_2rez, cosh_2yu ) && simz != 0.0 )
449 horizontal_check( hyu, cosh_2yu, irez, srez, hxl, hxu, resxl, resxu );
457 cos_rez_2 =
sqr(
cos( rez ) );
460 im_tan_l =
sinh( 2 * hyl ) / ( 2 * ( cos_rez_2 +
sqr(
sinh( hyl ) ) ) ),
461 im_tan_u =
sinh( 2 * hyu ) / ( 2 * ( cos_rez_2 +
sqr(
sinh( hyu ) ) ) );
463 resyl = min( Inf( im_tan_l ), Inf( im_tan_u ) );
464 resyu = max( Sup( im_tan_l ), Sup( im_tan_u ) );
473 cos_2xl =
cos( 2 * hxl ),
474 cos_2xu =
cos( 2 * hxu );
481 imz_h =
interval( iimz, min( simz, 0.0 ) ),
482 cosh_2imz = - 1 /
cosh( 2 * imz_h );
484 if( ( !disjoint( cosh_2imz, cos_2xl ) ) )
488 im_tan = - 1 /
abs(
sin( 2 * hxl ) );
489 resyl = min( resyl, Inf( im_tan ) );
490 resyu = max( resyu, Sup( im_tan ) );
492 if( ( !disjoint( cosh_2imz, cos_2xu ) ) )
496 im_tan = - 1 /
abs(
sin( 2 * hxu ) );
497 resyl = min( resyl, Inf( im_tan ) );
498 resyu = max( resyu, Sup( im_tan ) );
505 imz_h =
interval( max( iimz, 0.0 ), simz ),
506 cosh_2imz = - 1 /
cosh( 2 * imz_h );
508 if( ( !disjoint( cosh_2imz, cos_2xl ) ) )
512 im_tan = + 1 /
abs(
sin( 2 * hxl ) );
513 resyl = min( resyl, Inf( im_tan ) );
514 resyu = max( resyu, Sup( im_tan ) );
516 if( ( !disjoint( cosh_2imz, cos_2xu ) ) )
520 im_tan = + 1 /
abs(
sin( 2 * hxu ) );
521 resyl = min( resyl, Inf( im_tan ) );
522 resyu = max( resyu, Sup( im_tan ) );
544 real irez = Inf(Rez);
545 irez = irez/Inf_Pi - 0.5;
546 double dbr = _double(irez);
548 p = s>=0 ? CUTINT(dbr+0.5) : CUTINT(dbr-0.5);
550 re = (Inf_Pi)*
interval(p+0.5) - Rez;
551 re =
diam(re)==0 ? re + (Pi2)*(p+0.5) : HALFPI() - Rez;
553 else re = HALFPI() - Rez;
595interval Atan(
const interval& y,
const interval& x)
noexcept
603 int ex_x(expo(Infx)),
611 signq = signx * signy;
612 if (ex_y-ex_x > c) res = signq>0 ? HALFPI() : -HALFPI();
613 else res =
atan(y/x);
619interval Atan(
const interval& y,
const real& x)
noexcept
663 hxl(irez), hxu(srez), hyl(iimz), hyu(simz);
670 resl = ( srez > 0.0 ? Inf( Atan( hyl,hxu ) ) : ( srez < 0.0 ? Inf( Atan( hyu,hxu ) + PI() ) : Inf( HALFPI() ) ) );
671 resu = ( irez > 0.0 ? Sup( Atan( hyu,hxl ) ) : ( irez < 0.0 ? Sup( Atan( hyl,hxl ) + PI() ) : Sup( HALFPI() ) ) );
679 resl = ( irez < 0.0 ? Inf( Atan( hyu,hxl ) - PI() ) : ( irez > 0.0 ? Inf( Atan( hyl,hxl ) ) : - Sup( HALFPI() ) ) );
680 resu = ( srez < 0.0 ? Sup( Atan( hyl,hxu ) - PI() ) : ( srez > 0.0 ? Sup( Atan( hyu,hxu ) ) : - Inf( HALFPI() ) ) );
690 resl = ( iimz < 0.0 ? Inf( Atan( hyl,hxl ) ) : 0.0 );
691 return interval( resl, Sup( Atan( hyu,hxl ) ) );
699 cxscthrow (STD_FKT_OUT_OF_DEF(
"interval Arg( const cinterval& z ); z contains negative real numbers"));
708 resl = ( iimz < 0.0 ? - Sup( HALFPI() ) : 0.0 );
709 resu = ( simz > 0.0 ? Sup( HALFPI() ) : 0.0 );
715 if( iimz == 0.0 && simz == 0.0 )
717 return ZERO_INTERVAL();
720 resl = ( iimz < 0.0 ? - Sup( HALFPI() ) : Inf( HALFPI() ) );
721 resu = ( simz > 0.0 ? Sup( HALFPI() ) : - Inf( HALFPI() ) );
751 if( irez < 0.0 && iimz <= 0.0 && simz >= 0.0 )
757 resl = ( iimz < 0.0 ? - Sup( PI() ) : 0.0 );
758 resu = ( ( iimz < 0.0 && simz == 0.0 ) ? 0.0 : Sup( PI() ) );
771 resl = ( simz > 0.0 ? Inf( HALFPI() ) : - Sup( PI() ) );
772 resu = ( iimz < 0.0 ? ( simz > 0.0 ? Sup( 3 * HALFPI() ) : - Inf( HALFPI() ) ) : Sup( PI() ) );
779 resl = ( simz > 0.0 ? Inf( Atan( hyu,srez ) + PI() ) : - Sup( PI() ) );
780 resu = ( iimz < 0.0 ? ( simz > 0.0 ? Sup( Atan( hyl,srez ) + PI() ) :
781 Sup( Atan( hyl,srez ) - PI() ) ) : Sup( PI() ) );
807interval arg_inclmon(
const cinterval& z )
noexcept
809 if( Inf( Re(z) ) < 0.0 && Inf( Im(z) ) <= 0.0 && Sup( Im(z) ) >= 0.0 )
810 return interval( -Sup( PI() ),Sup( PI() ) );
837 if ( Inf(a1) == 0.0 && Inf(a2) == 0.0 )
839 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval LN( const cinterval& z ); z contains 0"));
840 if ( srez<0 && iimz<0 && simz>=0 )
841 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval LN( const cinterval& z ); z not allowed"));
855 if ( Inf(a1) == 0.0 && Inf(a2) == 0.0 ) {
857 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval ln( const cinterval& z ); z contains 0"));
880 cxscthrow(STD_FKT_OUT_OF_DEF(
881 "cinterval lnp1(const cinterval& z); z contains -1"));
882 if ( srez<-1 && iimz<0 && simz>=0 )
883 cxscthrow(STD_FKT_OUT_OF_DEF(
884 "cinterval lnp1(const cinterval& z); z not allowed"));
889 abs_z =
lnp1( abs_z*(2+abs_z) +
sqr(Im(z)) );
914interval Sqrt_zpx(
const interval& x,
const interval& y )
919 real Infx(Inf(x)), Infy(Inf(y));
920 int ex_x(expo(Infx)), ex_y(expo(Infy));
921 interval xc(
abs(x)),yc(y),res;
924 if ((ex_x>=c1) || (ex_y>=c1))
945interval Re_Sqrt_point(
const interval& rez,
const interval& imz )
962 return ZERO_INTERVAL();
967 return INV_SQRT_2() * Sqrt_zpx(rez,imz);
969 return INV_SQRT_2() *
abs(iimz) / Sqrt_zpx(rez,imz);
973interval Im_Sqrt_point(
const interval& rez,
const interval& imz )
988 return ZERO_INTERVAL();
994 if( Inf( rez ) >= 0.0 )
995 return ( iimz * INV_SQRT_2() ) / Sqrt_zpx(rez,imz);
999 return INV_SQRT_2() * Sqrt_zpx(rez,imz);
1001 return -INV_SQRT_2() * Sqrt_zpx(rez,imz);
1016 irez = Inf( Re(z) ),
1017 srez = Sup( Re(z) ),
1018 iimz = Inf( Im(z) ),
1019 simz = Sup( Im(z) );
1021 hxl( irez ), hxu( srez ), hyl( iimz ), hyu( simz );
1023 resxl, resxu, resyl, resyu;
1025 if( irez < 0.0 && iimz < 0.0 && simz >= 0.0 )
1027 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval sqrt(const cinterval& z); z not in the principal branch."));
1031 resxl = Inf( Re_Sqrt_point( hxl,hyl ) );
1032 resxu = Sup( Re_Sqrt_point( hxu,hyu ) );
1034 resyl = Inf( Im_Sqrt_point( hxu,hyl ) );
1035 resyu = Sup( Im_Sqrt_point( hxl,hyu ) );
1038 resxl = Inf( Re_Sqrt_point( hxl,hyu ) );
1039 resxu = Sup( Re_Sqrt_point( hxu,hyl ) );
1041 resyl = Inf( Im_Sqrt_point( hxl,hyl ) );
1042 resyu = Sup( Im_Sqrt_point( hxu,hyu ) );
1044 resxl = Inf(
sqrt( hxl ) );
1045 resxu = ( -iimz > simz ? Sup( Re_Sqrt_point( hxu, hyl ) )
1046 : Sup( Re_Sqrt_point( hxu, hyu ) ) );
1047 resyl = Inf( Im_Sqrt_point( hxl,hyl ) );
1048 resyu = Sup( Im_Sqrt_point( hxl,hyu ) );
1062 real Sup_absz(Sup(absz));
1065 res = z / (
sqrt(z+1) + 1);
1067 res =
sqrt(z+1) - 1;
1078 real Inf_absz(Inf(absz));
1083 Inf_absz = Sup(absz);
1088 res = (Inf(Re(z))>=0)? z + res : -z + res;
1093 if ( Sup(
abs(z-res))<0.5 || Sup(
abs(z+res))<0.5 )
1097 res =
sqrt( (1-res)*(1+res) );
1117 real Inf_absz(Inf(absz));
1122 Inf_absz = Sup(absz);
1126 res = (Inf(Re(z))>=0)? z + res : -z + res;
1148 real Inf_absz(Inf(absz));
1153 Inf_absz = Sup(absz);
1159 res = (Inf(Im(z))>=0)? -u + res : u + res;
1179 irez = Inf( Re(z) ),
1180 srez = Sup( Re(z) ),
1181 iimz = Inf( Im(z) ),
1182 simz = Sup( Im(z) );
1184 hxl( irez ), hxu( srez ), hyl( iimz ), hyu( simz );
1186 resxl, resxu, resyl, resyu;
1189 if( irez < 0.0 && iimz <= 0.0 && simz >= 0.0 )
1198 resxl = Inf( Re_Sqrt_point( hxl, hyl ) );
1199 resxu = Sup( Re_Sqrt_point( hxu, hyu ) );
1202 resyl = Inf( Im_Sqrt_point( hxu, hyl ) );
1203 resyu = Sup( Im_Sqrt_point( hxl, hyu ) );
1215 resxu = Sup( Re_Sqrt_point( hxu, hyl ) );
1218 resyl = Inf( Im_Sqrt_point( hxl, hyl ) );
1219 resyu = ( srez > 0.0 ? 0.0 : -Inf(
sqrt( -hxu ) ) );
1231 resxl = Inf( Im_Sqrt_point( -hxu, hyl ) );
1232 resxu = Sup( Re_Sqrt_point( hxu, hyu ) );
1235 resyl = Inf(
sqrt( -hxu ) );
1236 resyu = ( - iimz > simz ? Sup( Re_Sqrt_point( -hxl, hyl ) ) : Sup( Im_Sqrt_point( hxl, hyu ) ) );
1244 resxu = ( - iimz > simz ? Sup( Re_Sqrt_point( hxu, hyl ) ) : Sup( Re_Sqrt_point( hxu, hyu ) ) );
1247 resyl = Inf( Im_Sqrt_point( hxl, hyl ) );
1248 resyu = Sup( Im_Sqrt_point( hxl, hyu ) );
1258 std::list<cinterval> res;
1260 res.push_back( -w );
1270interval Re_Sqrt_point(
const interval& rez,
const interval& imz,
1280 interval abs_z_2 =
sqr( rez ) +
sqr( imz );
1281 if( Sup( abs_z_2 ) == 0.0 )
1283 return ZERO_INTERVAL();
1285 return sqrt( abs_z_2, 2 * n ) *
cos(
Arg( cinterval( rez, imz ) ) / n );
1288interval Im_Sqrt_point(
const interval& rez,
const interval& imz,
1298 interval abs_z_2 =
sqr( rez ) +
sqr( imz );
1299 if( Sup( abs_z_2 ) == 0.0 )
1301 return ZERO_INTERVAL();
1303 return sqrt( abs_z_2, 2 * n ) *
sin(
Arg( cinterval( rez, imz ) ) / n );
1321 irez = Inf( Re(z) ),
1322 srez = Sup( Re(z) ),
1323 iimz = Inf( Im(z) ),
1324 simz = Sup( Im(z) );
1326 hxl( irez ), hxu( srez ), hyl( iimz ), hyu( simz );
1328 resxl, resxu, resyl, resyu;
1330 if( irez < 0.0 && iimz <= 0.0 && simz >= 0.0 )
1333 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval sqrt(const cinterval& z, int n ); z contains negative real values."));
1342 return cinterval( Re(hres), -Im(hres) );
1349 interval tangle =
tan( ( PI() * n ) / ( 2 * ( n-1 ) ) );
1350 real tanglel = Inf( tangle ),
1351 tangleu = Sup( tangle );
1355 if ( irez >= 0.0 || Sup( hyl / irez ) <= tanglel )
1358 resxl = Inf( Re_Sqrt_point( hxl, hyl, n ) );
1361 if( srez < 0.0 && Inf( hyl / srez ) >= tangleu )
1364 resxl = Inf( Re_Sqrt_point( hxu, hyl, n ) );
1368 resxl = Inf( Re_Sqrt_point( iimz / tangle , hyl, n ) );
1373 if ( irez >= 0.0 || Sup( hyu / irez ) <= tanglel )
1379 if ( srez < 0.0 && Inf( hyu / srez ) >= tangleu )
1382 resxu = Sup( Re_Sqrt_point( hxl, hyu, n ) );
1386 resxu = max( Sup( Re_Sqrt_point( hxl, hyu, n ) ), Sup( Re_Sqrt_point( hxu, hyu, n ) ) );
1391 if ( srez >= 0.0 || Sup( hyl / srez ) <= tanglel )
1394 resyl = Inf( Im_Sqrt_point( hxu, hyl, n ) );
1397 if( Inf( hyu / srez ) >= tangleu )
1400 resyl = Inf( Im_Sqrt_point( hxu, hyu, n ) );
1404 resyl = Inf( Im_Sqrt_point( hxu, srez * tangle, n ) );
1409 if( irez >= 0.0 || Sup( hyl / irez ) <= tanglel )
1412 resyu = Sup( Im_Sqrt_point( hxl, hyu, n ) );
1415 if( Inf( hyu / irez ) >= tangleu )
1418 resyu = Sup( Im_Sqrt_point( hxl, hyl, n ) );
1422 resyu = max( Sup( Im_Sqrt_point( hxl, hyl, n ) ), Sup( Im_Sqrt_point( hxl, hyu, n ) ) );
1430 resxl = ( irez == 0.0 ? 0.0 : Inf(
sqrt( hxl, n ) ) );
1431 resxu = ( - iimz > simz ? Sup( Re_Sqrt_point( hxu, hyl, n ) ) : Sup( Re_Sqrt_point( hxu, hyu, n ) ) );
1434 resyl = Inf( Im_Sqrt_point( hxl, hyl, n ) );
1435 resyu = Sup( Im_Sqrt_point( hxl, hyu, n ) );
1467 std::list<cinterval> res;
1471 res.push_back(
cinterval( ONE_INTERVAL(), ZERO_INTERVAL() ) );
1479 else if( n == 2 )
return sqrt_all( z );
1483 arg_z =
arg( z ), root_abs_z =
sqrt(
abs( z ), n );
1485 for(
int k = 0; k < n; k++)
1487 interval arg_k = ( arg_z + 2 * k * PI() ) / n;
1490 root_abs_z *
sin( arg_k ) ) );
1550 if( n < 0 && Inf( abs_z ) == 0.0 )
1552 cxscthrow (STD_FKT_OUT_OF_DEF(
"cinterval power_fast(const cinterval& z, int n ); z contains 0."));
1553 if( Sup( abs_z ) == 0.0 )
1554 return cinterval( ZERO_INTERVAL(), ZERO_INTERVAL() );
1561 abs_z_n *
sin( n * arg_z ) );
1579cinterval power_point(
const cinterval& z,
int n )
1588 if( Inf( Re(z) ) == 0.0 && Inf( Im(z) ) == 0.0 )
1590 return cinterval( ZERO_INTERVAL(), ZERO_INTERVAL() );
1593 interval abs_z =
abs( z );
1594 interval arg_z =
arg( z );
1595 interval abs_z_n =
exp( n *
ln( abs_z ) );
1597 return cinterval( abs_z_n *
cos( n * arg_z ),
1598 abs_z_n *
sin( n * arg_z ) );
1602void update_res(
const cinterval& res,
1603 real& resxl, real& resxu, real& resyl, real& resyu )
1607 resxl = min( resxl, Inf( Re(res) ) );
1608 resxu = max( resxu, Sup( Re(res) ) );
1609 resyl = min( resyl, Inf( Im(res) ) );
1610 resyu = max( resyu, Sup( Im(res) ) );
1613void horizontal_check(
1614 const interval& hy, real hyy,
const interval& arg_h,
1615 real irez, real srez,
1616 real& resxl, real& resxu, real& resyl, real& resyu,
int n )
1635 iu1 = n-1;
if (iu1<0) iu1 = -iu1;
1637 real arg_hlR = Inf( 2 * nofrays * arg_h / PI() );
1638 double arg_hl = _double(arg_hlR);
1640 modf( arg_hl, &r_int );
1642 modf( arg_hl-1, &r_int );
1643 il1 = int( r_int + 1.0 );
1644 real arg_huR = Sup( 2 * nofrays * arg_h / PI() );
1645 double arg_hu = _double(arg_huR);
1647 modf( arg_hu, &r_int );
1649 modf( arg_hu-1, &r_int );
1679 else if( srez <= 0.0 )
1704 for(
int i = il2; i <= iu2; i++)
1706 interval cotangle =
cot( ( PI() * i ) / ( 2 * nofrays ) );
1707 res = power_point( cinterval( hy * cotangle , hy ), n );
1708 update_res( res, resxl, resxu, resyl, resyu );
1727 else if( srez <= 0.0 )
1755 il1 = ( il1 > il2 ? il1 : il2 );
1756 iu1 = ( iu1 < iu2 ? iu1 : iu2 );
1763 for(
int i = il1; i <= iu1; i++)
1765 interval cotangle =
cot( ( PI() * i ) / ( 2 * nofrays ) );
1766 res = power_point( cinterval( hy * cotangle , hy ), n );
1767 update_res( res, resxl, resxu, resyl, resyu );
1773 const interval& hx, real hxx,
const interval& arg_h,
1774 real iimz, real simz,
1775 real& resxl, real& resxu, real& resyl, real& resyu,
int n )
1794 iu1 = n-1;
if (iu1<0) iu1 = -iu1;
1797 real arg_hlR = Inf( 2 * nofrays * arg_h / PI() );
1798 double arg_hl = _double(arg_hlR);
1800 modf( arg_hl, &r_int );
1802 modf( arg_hl-1, &r_int );
1803 il1 = int( r_int + 1.0 );
1804 real arg_huR = Sup( 2 * nofrays * arg_h / PI() );
1805 double arg_hu = _double(arg_huR);
1807 modf( arg_hu, &r_int );
1809 modf( arg_hu-1, &r_int );
1839 else if( simz <= 0.0 )
1864 for(
int i = il2; i <= iu2; i++)
1866 interval tangle =
tan( ( PI() * i ) / ( 2 * nofrays ) );
1867 res = power_point( cinterval( hx, hx * tangle ), n );
1868 update_res( res, resxl, resxu, resyl, resyu );
1887 else if( simz <= 0.0 )
1909 il2 = 2 * nofrays - 3;
1910 iu2 = 2 * nofrays + 3;
1915 il1 = ( il1 > il2 ? il1 : il2 );
1916 iu1 = ( iu1 < iu2 ? iu1 : iu2 );
1923 for(
int i = il1; i <= iu1; i++)
1925 interval tangle =
tan( ( PI() * i ) / ( 2 * nofrays ) );
1926 res = power_point( cinterval( hx, hx * tangle ), n );
1927 update_res( res, resxl, resxu, resyl, resyu );
1966 if( n < 0 && Inf( abs_z ) == 0.0 )
1968 cxscthrow (STD_FKT_OUT_OF_DEF(
"cinterval power(const cinterval& z, int n ); z contains 0."));
1969 if( Sup( abs_z ) == 0.0 )
1970 return cinterval( ZERO_INTERVAL(), ZERO_INTERVAL() );
1979 hxl( irez ), hxu( srez ), hyl( iimz ), hyu( simz );
1981 resxl, resxu, resyl, resyu;
1989 res = power_point(
cinterval( hxl, hyl ), n );
1990 resxl = Inf( Re(res) );
1991 resxu = Sup( Re(res) );
1992 resyl = Inf( Im(res) );
1993 resyu = Sup( Im(res) );
1994 res = power_point(
cinterval( hxu, hyl ), n );
1995 update_res( res, resxl, resxu, resyl, resyu );
1996 res = power_point(
cinterval( hxl, hyu ), n );
1997 update_res( res, resxl, resxu, resyl, resyu );
1998 res = power_point(
cinterval( hxu, hyu ), n );
1999 update_res( res, resxl, resxu, resyl, resyu );
2006 if ( 0<=Re(z) && 0<=Im(z) &&
2007 (irez==0 || srez==0 || iimz==0 || simz==0 ) )
2008 update_res(
cinterval( ZERO_INTERVAL(), ZERO_INTERVAL()),
2009 resxl, resxu, resyl, resyu );
2022 horizontal_check( hyl, iimz, arg_h, irez, srez,
2023 resxl, resxu, resyl, resyu, n );
2031 horizontal_check( hyu, simz, arg_h, irez, srez,
2032 resxl, resxu, resyl, resyu, n );
2040 vertical_check( hxl, irez, arg_h, iimz, simz,
2041 resxl, resxu, resyl, resyu, n );
2049 vertical_check( hxu, srez, arg_h, iimz, simz,
2050 resxl, resxu, resyl, resyu, n );
2077 return exp( p*
Ln(z) );
2090 return exp( p*
Ln(z) );
2111 if( 0.0 < Inf( abs_z ) )
2117 interval rad_1 = INV_SQRT_2() * Inf( abs_z_p );
2120 std::list<cinterval> res;
2124 interval( -Sup( rad_1 ), Sup( rad_2 ) ) ) );
2126 interval( Inf( rad_1 ), Sup( rad_2 ) ) ) );
2128 interval( -Sup( rad_2 ), Sup( rad_1 ) ) ) );
2130 interval( -Sup( rad_2 ), -Inf( rad_1 ) ) ) );
2137 if( Inf( p ) > 0.0 )
2143 real rad_p = Sup( abs_z_p );
2145 std::list<cinterval> res;
2158 cxscthrow(STD_FKT_OUT_OF_DEF(
"pow_all(cinterval, interval); 0^p is undefined for p <= 0."));
2159 std::list<cinterval> res;
2187interval f_aux_asin(
const interval& x,
const interval& y )
2196 if (y == 0.0 &&
abs(x) == 1.0) res = 1.0;
2200 cxscthrow (STD_FKT_OUT_OF_DEF(
"cinterval asin( const cinterval& z); z out of range"));
2204 real hlb = max( 1.0,
abs( Sup( x ) ) );
2205 if( Inf( res ) < hlb )
2207 res = interval( hlb, Sup(res) );
2212interval f_aux_asin_Vn(
const interval& x,
const interval& y)
2215 f1 = x+1.0; f2 = x-1;
2221interval ACOSH_p1(
const interval& x,
const interval& y)
2226 interval res(0.0),u,V;
2228 if (ex>-2000 && ex <= -80) {
2230 t = pred(pred(Inf(u)));
2231 res = interval(t,Sup(u));
2234 V = f_aux_asin_Vn(x,y);
2240interval ACOSH_f_aux(
const interval& x,
const interval& y )
2245 real rx(
abs(Inf(x))), ry(
abs(Inf(y)));
2247 if (rx>2.0 || ry>2.0) res =
acosh( f_aux_asin(x,y) );
2251 if (expo(Inf(delta))<=-50) {
2254 if (rx>0) res = interval(pred(Inf(res)),succ(rx));
2262 if (rx<1.0) res = ACOSH_p1(x,y);
2263 else res =
acoshp1( (
abs(x)-1.0) + f_aux_asin_Vn(x,y) );
2269interval Asin_beta(
const interval& x,
const interval& y )
2275 const real c1 = 0.75;
2278 interval res,beta,abs_beta,delta,tm,tp,u,v,xa;
2280 if (Inf(beta)<-1) Inf(beta)=-1;
2281 if (Sup(beta)> 1) Sup(beta)=1;
2282 abs_beta =
abs(beta);
2283 if (Inf(abs_beta)<c1) res =
asin(beta);
2287 if (neg_b) xa = -xa;
2294 delta = (tm*tp - u*v) / (2+u+v);
2301 tp = 1+xa; tm = 1-xa;
2305 res = HALFPI() -
asin(
sqrt(delta*(2-delta)) );
2306 if (neg_b) res = -res;
2313 const real gr = 6.355804e307;
2318 real irez = Inf(rez),
2323 interval hxl(irez), hxu(srez), hyl(iimz), hyu(simz);
2325 real resxl, resxu, resyl, resyu;
2327 bool bl = (iimz< 0.0) && (simz>0.0),
2328 raxis = (iimz==0.0) && (simz==0);
2333 if( (irez<-1 && (bl || (iimz<0 && simz==0))) ||
2334 (srez >1 && (bl || (iimz==0 && simz>0))) )
2335 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval asin( const cinterval& z ); z contains singularities."));
2340 resxl = max(
abs(irez),
abs(srez));
2341 resxu = max(
abs(iimz),
abs(simz));
2342 if (resxl>gr || resxu>gr)
2343 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval asin( const cinterval& z ); z with too large bounds."));
2347 if( iimz < 0.0 && simz > 0.0 )
2351 resxl = Inf(
asin( hxl ) );
2354 resxl = Inf( Asin_beta(hxl,
interval( max(-iimz,simz) )) );
2357 resxu = Sup( Asin_beta(hxu,
interval( max(-iimz,simz) )) );
2359 resxu = Sup(
asin( hxu ) );
2363 if( ( iimz >= 0.0 && irez >= 0.0 ) || ( simz <= 0.0 && irez <= 0.0 ) )
2367 resxl = Inf( Asin_beta(hxl,hyu) );
2372 resxl = Inf( Asin_beta(hxl,hyl) );
2373 if( ( iimz >= 0.0 && srez >= 0.0 ) || ( simz <= 0.0 && srez <= 0.0 ) )
2377 resxu = Sup( Asin_beta(hxu,hyl) );
2382 resxu = Sup( Asin_beta(hxu,hyu) );
2389 if (srez<0.0) resyl = Inf( ACOSH_f_aux( hxu, hyu ));
2390 else resyl = -Sup( ACOSH_f_aux( hxu, hyu ));
2391 if (irez>0.0) resyu = -Inf( ACOSH_f_aux( hxl, hyu ));
2392 else resyu = Sup( ACOSH_f_aux( hxl, hyu ));
2402 resyl = - Sup( ACOSH_f_aux( hxl, hyl ) );
2404 resyu = - Inf( ACOSH_f_aux( hxu, hyu ) );
2406 resyu = - Inf( ACOSH_f_aux( ZERO_INTERVAL(), hyu ) );
2411 resyl = - Sup( ACOSH_f_aux( hxu, hyl ) );
2413 resyu = - Inf( ACOSH_f_aux( hxl, hyu ) );
2415 resyu = - Inf( ACOSH_f_aux( ZERO_INTERVAL(), hyu ) );
2418 else if( iimz >= 0.0 )
2426 resyu = Sup( ACOSH_f_aux( hxl, hyu ) );
2428 resyl = Inf( ACOSH_f_aux( hxu, hyl ) );
2430 resyl = Inf( ACOSH_f_aux( ZERO_INTERVAL(), hyl ) );
2435 resyu = Sup( ACOSH_f_aux( hxu, hyu ) );
2437 resyl = Inf( ACOSH_f_aux( hxl, hyl ) );
2439 resyl = Inf( ACOSH_f_aux( ZERO_INTERVAL(), hyl ) );
2450 resyl = - Sup( ACOSH_f_aux( hxl, hyl ) );
2451 resyu = Sup( ACOSH_f_aux( hxl, hyu ) );
2455 resyl = - Sup( ACOSH_f_aux( hxu, hyl ) );
2456 resyu = Sup( ACOSH_f_aux( hxu, hyu ) );
2468interval Acos_beta(
const interval& x,
const interval& y )
2472 const real c1 = 0.75;
2473 interval res(0),beta,delta,tm,tp,u,v,xa;
2474 real Infy(Inf(y)),Infx(Inf(x));
2476 if (Inf(beta)<-1) Inf(beta)=-1;
2477 if (Sup(beta)> 1) Sup(beta)= 1;
2480 if (Sup(beta)<-c1) {
2484 tm = y/(xa-1); tp = y/(xa+1);
2487 delta = (tm*tp - u*v) / (2+u+v);
2494 tp = 1+xa; tm = 1-xa;
2498 res = PI() -
asin(
sqrt(delta*(2-delta)) );
2499 }
else res =
acos(beta);
2504 if (expo(Sup(tm))<=-27) {
2507 res = interval( pred(Inf(u)),succ(succ(Sup(u))) );
2513 delta = (tm*tp - u*v) / (2+u+v);
2518 if (expo(Inf(y))<=-52) {
2520 if (Sup(u)==0) res = 0;
2521 else res = interval(pred(Inf(u)),succ(succ(Sup(u))));
2526 res =
asin(
sqrt(delta*(2-delta)) );
2532 res =
asin(
sqrt(delta*(2-delta)) );
2555 const real gr = 6.355804e307;
2567 hxl(irez), hxu(srez), hyl(iimz), hyu(simz);
2569 bool bl = (iimz< 0.0) && (simz>0.0),
2570 raxis = (iimz==0.0) && (simz==0);
2572 resxl, resxu, resyl, resyu;
2576 if( (irez<-1 && (bl || (iimz<0 && simz==0))) ||
2577 (srez >1 && (bl || (iimz==0 && simz>0))) )
2578 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval acos( const cinterval& z ); z contains singularities."));
2583 resxl = max(
abs(irez),
abs(srez));
2584 resxu = max(
abs(iimz),
abs(simz));
2585 if (resxl>gr || resxu>gr)
2586 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval acos( const cinterval& z ); z with too large bounds."));
2591 if( iimz < 0.0 && simz > 0.0 )
2594 if( irez <= 0.0 ) resxu = Sup(
acos( hxl ) );
2595 else resxu = Sup( Acos_beta(hxl,
interval( max(-iimz,simz) )) );
2598 resxl = Inf( Acos_beta(hxu,
interval(max(-iimz,simz))) );
2599 else resxl = Inf(
acos( hxu ) );
2603 if (irez<0 && srez>0)
2606 resxl = Inf( Acos_beta(hxu,hyl) );
2607 resxu = Sup( Acos_beta(hxl,hyl) );
2609 resxl = Inf( Acos_beta(hxu,hyu) );
2610 resxu = Sup( Acos_beta(hxl,hyu) );
2614 if( ( iimz >= 0.0 && irez >= 0.0 ) || ( simz <= 0.0 && irez < 0.0 ) )
2617 resxl = Inf( Acos_beta(hxu,hyl) );
2621 resxl = Inf( Acos_beta(hxu,hyu) );
2623 if( ( iimz >= 0.0 && srez > 0.0 ) || ( simz <= 0.0 && srez <= 0.0 ) )
2626 resxu = Sup( Acos_beta(hxl,hyu) );
2630 resxu = Sup( Acos_beta(hxl,hyl) );
2638 if (srez<0.0) resyl = Inf( ACOSH_f_aux( hxu, hyu ));
2639 else resyl = -Sup( ACOSH_f_aux( hxu, hyu ));
2640 if (irez>0.0) resyu = -Inf( ACOSH_f_aux( hxl, hyu ));
2641 else resyu = Sup( ACOSH_f_aux( hxl, hyu ));
2648 if( irez + srez < 0.0 )
2651 resyl = - Sup( ACOSH_f_aux( hxl, hyl ) );
2653 resyu = - Inf( ACOSH_f_aux( hxu, hyu ) );
2655 resyu = - Inf( ACOSH_f_aux( ZERO_INTERVAL(), hyu ) );
2660 resyl = - Sup( ACOSH_f_aux( hxu, hyl ) );
2662 resyu = - Inf( ACOSH_f_aux( hxl, hyu ) );
2664 resyu = - Inf( ACOSH_f_aux( ZERO_INTERVAL(), hyu ) );
2667 else if( iimz >= 0.0 )
2675 resyu = Sup( ACOSH_f_aux( hxl, hyu ) );
2677 resyl = Inf( ACOSH_f_aux( hxu, hyl ) );
2679 resyl = Inf( ACOSH_f_aux( ZERO_INTERVAL(), hyl ) );
2684 resyu = Sup( ACOSH_f_aux( hxu, hyu ) );
2686 resyl = Inf( ACOSH_f_aux( hxl, hyl ) );
2688 resyl = Inf( ACOSH_f_aux( ZERO_INTERVAL(), hyl ) );
2699 resyl = - Sup( ACOSH_f_aux( hxl, hyl ) );
2700 resyu = Sup( ACOSH_f_aux( hxl, hyu ) );
2704 resyl = - Sup( ACOSH_f_aux( hxu, hyl ) );
2705 resyu = Sup( ACOSH_f_aux( hxu, hyu ) );
2748 hxl(irez), hxu(srez), hyl(iimz), hyu(simz);
2751 resxl, resxu, resyl, resyu;
2758 if( ( iimz <= 0.0 && simz >= 0.0 ) && ( irez < 1.0 ) )
2759 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval acosh( const cinterval& z ); z contains singularities."));
2790 resxl = Inf(
acosh( hxl ) );
2791 interval ytilde( max( -iimz, simz ) );
2793 resxu = Sup( ACOSH_f_aux(hxu,ytilde) );
2799 resyl = -Sup( Acos_beta(hxl,hyl) );
2801 resyu = Sup( Acos_beta(hxl,hyu) );
2829void re_vert(
const real& x,
const interval& hx,
2830 const real& rew_inf,
const real& rew_sup,
2831 real& resxl, real& resxu )
2849 resxl = rew_sup > 0.0 ? Inf( Atan( 2 * hx,rew_sup )/2.0 )
2850 : ( rew_sup < 0.0 ? Inf( (Atan( 2*hx,rew_sup ) + PI() )/2.0 )
2851 : Inf( HALFPI()/2.0 ) );
2853 resxu = rew_inf > 0.0 ? Sup( Atan( 2*hx,rew_inf )/2.0 )
2854 : ( rew_inf < 0.0 ? Sup( (Atan( 2*hx,rew_inf ) + PI())/2.0 )
2855 : Sup( HALFPI()/2.0 ) );
2860 resxl = rew_inf < 0.0 ? Inf( (Atan( 2*hx,rew_inf ) - PI())/2.0 )
2861 : ( rew_inf > 0.0 ? Inf( Atan( 2*hx,rew_inf )/2.0 )
2862 : -Sup( HALFPI()/2.0 ) );
2863 resxu = rew_sup < 0.0 ? Sup( (Atan( 2*hx,rew_sup ) - PI())/2.0 )
2864 : ( rew_sup > 0.0 ? Sup( Atan( 2*hx,rew_sup )/2.0 )
2865 : -Inf( HALFPI()/2.0 ) );
2870interval Aux_1_atan(
const real& x)
2876const int exOv = +54;
2877const int exUn = -26;
2888 res = interval(Inf(t),Sup(r));
2891 res = U_atan - 2*
ln(ix);
2899interval Q_atan_UPSIGN(
const interval& x,
const interval& y)
2906 interval res,t,t1,t2;
2913 if(Sup(x)<1) res =
ln(4+
sqr(x)) - 2*
ln(x);
2915 t = interval(Sup(x)); t = 2/t;
2917 t = interval(Inf(x));
2918 t2 =
ln(4.0+
sqr(t)) - 2*
ln(t);
2919 res = interval(Inf(t1),Sup(t2));
2922 ex_x = expo( Sup(
abs(x)) );
2923 ex = expo( Sup(
abs(y)) );
2924 if (ex_x>ex) ex = ex_x;
2929 t2 =
sqr(t) +
sqr(comp(0.5,s+1)-t1);
2953 hxl(irez), hxu(srez), hyl(iimz), hyu(simz);
2956 resxl, resxu, resyl, resyu;
2960 if( ( irez <= 0.0 && srez >= 0.0 ) && ( iimz <= -1.0 || simz >= 1.0 ) )
2961 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval atan( const cinterval& z ); z contains singularities."));
2976 bool sqrImz_1 = (iimz==simz) && (iimz==1.0 || iimz==-1.0);
2985 int ex1 = expo(iimz);
int ex2 = expo(simz);
2986 if (ex2>ex1) ex1 = ex2;
2989 if(ex1>ex) ex = ex1;
2997 rew_l = (scf -
sqr(imz_)) -
sqr(hxl);
2999 }
else rew_l = (1 -
sqr( imz )) -
sqr( hxl );
3002 if(ex1>ex) ex = ex1;
3010 rew_u = (scf -
sqr(imz_)) -
sqr(hxu);
3012 }
else rew_u = (1 -
sqr( imz )) -
sqr( hxu );
3019 real rew_inf = Inf( rew_l );
3020 real rew_sup = Sup( rew_l );
3021 re_vert( irez, hxl, rew_inf, rew_sup, resxl, resxu );
3026 rew_inf = Inf( rew_u );
3027 rew_sup = Sup( rew_u );
3029 re_vert( srez, hxu, rew_inf, rew_sup, res_l, res_u );
3031 resxl = min( resxl, res_l );
3032 resxu = max( resxu, res_u );
3038 real abs_y_min = Inf(
abs( imz ) );
3040 if( abs_y_min > 1.0 )
3047 if( Sup( abs_hxl ) > irez && Inf( abs_hxl ) < srez )
3051 resxl = Inf( (PI() -
atan( 1.0 / abs_hxl ))/2.0 );
3052 else if( -Inf( abs_hxl ) > irez && -Sup( abs_hxl ) < srez )
3055 resxu = Sup( (
atan( 1.0 / abs_hxl ) - PI())/2.0 );
3063 im_atan_l, im_atan_u;
3068 im_atan_l = -Q_atan_UPSIGN(abs_rez,-hyl);
3071 im_atan_l = Q_atan_UPSIGN(abs_rez,hyl);
3077 im_atan_u = -Q_atan_UPSIGN(abs_rez,-hyu);
3080 im_atan_u = Q_atan_UPSIGN(abs_rez,hyu);
3083 resyl = min( Inf( im_atan_l ), Inf( im_atan_u ) );
3084 resyu = max( Sup( im_atan_l ), Sup( im_atan_u ) );
3089 real abs_x_min = Inf(
abs( rez ) );
3095 if( Inf( y_extr ) < simz && Sup( y_extr ) > iimz )
3101 rez = Aux_1_atan(abs_x_min);
3106 if( -Sup( y_extr ) < simz && -Inf( y_extr ) > iimz )
3112 rez = Aux_1_atan(abs_x_min);
3145 hxl(irez), hxu(srez), hyl(iimz), hyu(simz);
3148 resxl, resxu, resyl, resyu;
3152 if( ( (irez <= 0.0) && (srez >= 0.0) ) && ( (iimz <= 1.0) && (simz >= -1.0) ) )
3153 cxscthrow(STD_FKT_OUT_OF_DEF(
"cinterval acot( const cinterval& z ); z contains singularities."));
3170 bool sqrImz_1 = (iimz==simz) && (iimz==1.0 || iimz==-1.0);
3179 int ex1 = expo(iimz);
int ex2 = expo(simz);
3180 if (ex2>ex1) ex1 = ex2;
3183 if(ex1>ex) ex = ex1;
3191 rew_l = (
sqr(imz_) - scf) +
sqr(hxl);
3193 }
else rew_l = (
sqr( imz ) - 1.0) +
sqr( hxl );
3196 if(ex1>ex) ex = ex1;
3204 rew_u = (
sqr(imz_) - scf) +
sqr(hxu);
3206 }
else rew_u = (
sqr( imz )-1.0) +
sqr( hxu );
3213 real rew_inf = Inf( rew_l );
3214 real rew_sup = Sup( rew_l );
3215 re_vert( irez, hxl, rew_inf, rew_sup, resxl, resxu );
3219 rew_inf = Inf( rew_u );
3220 rew_sup = Sup( rew_u );
3222 re_vert( srez, hxu, rew_inf, rew_sup, res_l, res_u );
3224 resxl = min( resxl, res_l );
3225 resxu = max( resxu, res_u );
3231 real abs_y_min = Inf(
abs( imz ) );
3233 if( abs_y_min > 1.0 )
3239 if( Sup( abs_hxl ) > irez && Inf( abs_hxl ) < srez )
3242 resxu = Sup(
atan( 1.0 / abs_hxl ) / 2.0 );
3243 if( -Inf( abs_hxl ) > irez && -Sup( abs_hxl ) < srez )
3246 resxl = -Sup(
atan( 1.0 / abs_hxl ) / 2.0 );
3257 im_atan_l, im_atan_u,
3261 im_atan_l = -Q_atan_UPSIGN(abs_rez,-hyl);
3264 im_atan_l = Q_atan_UPSIGN(abs_rez,hyl);
3269 im_atan_u = -Q_atan_UPSIGN(abs_rez,-hyu);
3272 im_atan_u = Q_atan_UPSIGN(abs_rez,hyu);
3275 resyl = min( Inf( im_atan_l ), Inf( im_atan_u ) );
3276 resyu = max( Sup( im_atan_l ), Sup( im_atan_u ) );
3281 real abs_x_min = Inf(
abs( rez ) );
3286 if( Inf( y_extr ) < simz && Sup( y_extr ) > iimz )
3292 rez = Aux_1_atan(abs_x_min);
3297 if( -Sup( y_extr ) < simz && -Inf( y_extr ) > iimz )
3303 rez = Aux_1_atan(abs_x_min);
3346 imz(Im(z)), imza(
abs(imz));
3353 hxl(irez), hxu(srez), hyl(iimz), hyu(simz);
3357 resxl = Inf( (hxl-hyu)*(hxl+hyu) );
3358 resxu = Sup( (hxu-hyl)*(hxu+hyl));
The Scalar Type cinterval.
The Scalar Type interval.
The namespace cxsc, providing all functionality of the class library C-XSC.
cinterval sqrtp1m1(const cinterval &z) noexcept
Calculates .
cinterval exp2(const cinterval &z) noexcept
Calculates .
cinterval sqrt1mx2(const cinterval &z) noexcept
Calculates .
cinterval asinh(const cinterval &z) noexcept
Calculates .
cinterval coth(const cinterval &z) noexcept
Calculates .
cinterval log2(const cinterval &z) noexcept
Calculates .
cinterval power(const cinterval &z, int n) noexcept
Calculates .
cinterval log10(const cinterval &z) noexcept
Calculates .
cinterval Ln(const cinterval &z) noexcept
Calculates .
cinterval ln(const cinterval &z) noexcept
Calculates .
cvector diam(const cimatrix_subv &mv) noexcept
Returns the diameter of the matrix.
cinterval pow(const cinterval &z, const interval &p) noexcept
Calculates .
cinterval sinh(const cinterval &z) noexcept
Calculates .
cinterval asin(const cinterval &z) noexcept
Calculates .
interval acoshp1(const interval &x)
Calculates .
cinterval tan(const cinterval &z) noexcept
Calculates .
cinterval exp10(const cinterval &z) noexcept
Calculates .
interval arg(const cinterval &z) noexcept
Calculates .
const interval Ln2_interval
Enclosure-Interval for .
std::list< cinterval > sqrt_all(const cinterval &z)
Calculates and returns all possible solutions.
cinterval acos(const cinterval &z) noexcept
Calculates .
cinterval sqrtx2m1(const cinterval &z) noexcept
Calculates .
cinterval acosh(const cinterval &z) noexcept
Calculates .
const real Infinity
Representation of positive infinity in floating-point format.
cinterval cosh(const cinterval &z) noexcept
Calculates .
cinterval cos(const cinterval &z) noexcept
Calculates .
cinterval sqrt1px2(const cinterval &z) noexcept
Calculates .
cinterval exp(const cinterval &z) noexcept
Calculates .
const interval Ln10_interval
Enclosure-Interval for .
cinterval tanh(const cinterval &z) noexcept
Calculates .
interval ln_sqrtx2y2(const interval &x, const interval &y) noexcept
Calculates .
std::list< cinterval > pow_all(const cinterval &z, const interval &p) noexcept
Calculates and returns all possible solutions.
cinterval expm1(const cinterval &z) noexcept
Calculates .
cinterval cot(const cinterval &z) noexcept
Calculates .
ivector abs(const cimatrix_subv &mv) noexcept
Returns the absolute value of the matrix.
cinterval sqrt(const cinterval &z) noexcept
Calculates .
cinterval power_fast(const cinterval &z, int n) noexcept
Calculates .
cinterval acot(const cinterval &z) noexcept
Calculates .
void times2pown(cinterval &x, int n) noexcept
Fast multiplication of reference parameter [z] with .
cinterval sqr(const cinterval &z) noexcept
Calculates .
cinterval lnp1(const cinterval &z) noexcept
Calculates .
cinterval atan(const cinterval &z) noexcept
Calculates .
cinterval atanh(const cinterval &z) noexcept
Calculates .
interval Arg(const cinterval &z) noexcept
Calculates .
cinterval acoth(const cinterval &z) noexcept
Calculates .
interval sqrtx2y2(const interval &x, const interval &y) noexcept
Calculates .
cinterval sin(const cinterval &z) noexcept
Calculates .