realroot_doc 0.1.1
mmx::numerics Namespace Reference

Namespaces

Classes

Functions


Function Documentation

T mmx::numerics::add_dw ( const T &  a,
const T &  b 
) [inline]

Definition at line 70 of file rounding_mode.hpp.

{ rounding<T> r(rounding<T>::rnd_dw()); return a+b; };
T mmx::numerics::add_up ( const T &  a,
const T &  b 
) [inline]

Definition at line 71 of file rounding_mode.hpp.

{ rounding<T> r(rounding<T>::rnd_up()); return a+b; };
unsigned mmx::numerics::bitprec ( const T &  e,
const T &  l = T(1.0) 
)

Definition at line 29 of file numerics_hdwi.hpp.

Referenced by binary_sleeve_subdivision< K >::run(), binary_sleeve_subdivision< K >::run_loop(), and binary_subdivision< K >::run_loop().

  {
    T tmp(l);
    unsigned b = 2;
    while ( tmp > e ) { tmp/=2; b++; };
    return b;
  };
T mmx::numerics::div_dw ( const T &  a,
const T &  b 
) [inline]

Definition at line 68 of file rounding_mode.hpp.

{ rounding<T> r(rounding<T>::rnd_dw()); return a/b; };
T mmx::numerics::div_up ( const T &  a,
const T &  b 
) [inline]

Definition at line 69 of file rounding_mode.hpp.

{ rounding<T> r(rounding<T>::rnd_up()); return a/b; };
int mmx::numerics::get_cw ( ) [inline]

Definition at line 15 of file rounding_mode.hpp.

{ return fegetround(); };
int mmx::numerics::get_rnd ( ) [inline]

Definition at line 16 of file rounding_mode.hpp.

{ return fegetround(); };
void mmx::numerics::hsal ( unsigned &  ha,
unsigned_t &  a,
unsigned &  hb,
unsigned_t &  b 
)

Definition at line 108 of file numerics_hdwi.hpp.

References sal().

  {
    if ( ha == hb ) return; // 
    if ( ha > hb )
      {
        sal(b,ha-hb);
        hb = ha;
      }
    else hsal(hb,b,ha,a);
  };
T mmx::numerics::mul_dw ( const T &  a,
const T &  b 
) [inline]

Definition at line 72 of file rounding_mode.hpp.

{ rounding<T> r(rounding<T>::rnd_dw()); return a*b; };
T mmx::numerics::mul_up ( const T &  a,
const T &  b 
) [inline]

Definition at line 73 of file rounding_mode.hpp.

{ rounding<T> r(rounding<T>::rnd_up()); return a*b; };
static int mmx::numerics::rnd_nr ( ) [inline, static]

Definition at line 20 of file rounding_mode.hpp.

{ return FE_TONEAREST;};
static int mmx::numerics::rnd_z ( ) [inline, static]

Definition at line 21 of file rounding_mode.hpp.

{ return FE_TOWARDZERO;};
void mmx::numerics::sal ( unsigned_t &  a,
unsigned  n 
)

Definition at line 82 of file numerics_hdwi.hpp.

References assert.

Referenced by hsal().

  {
    assert(n<=hdwi<unsigned_t>::nbit);
    if ( a & 1 )
      {
        unsigned_t msk(hdwi<unsigned_t>::nmax);
        msk >>= (hdwi<unsigned_t>::nbit-n);
        a <<= n;
        a |= msk;
      }
    else 
      {
        //      std::cout << "SAL( " << n << ") \n";
        //      std::cout << a << std::endl;
        a <<= n;
        //      std::cout << a << std::endl;
      };
          
  };
void mmx::numerics::set_cw ( int  cw) [inline]

Definition at line 17 of file rounding_mode.hpp.

{ fesetround(cw);};
T mmx::numerics::sub_dw ( const T &  a,
const T &  b 
) [inline]

Definition at line 74 of file rounding_mode.hpp.

{ rounding<T> r(rounding<T>::rnd_dw()); return a-b; };
T mmx::numerics::sub_up ( const T &  a,
const T &  b 
) [inline]

Definition at line 75 of file rounding_mode.hpp.

{ rounding<T> r(rounding<T>::rnd_up()); return a-b; };