realroot_doc 0.1.1
|
#include <solver_ucf.hpp>
Definition at line 47 of file solver_ucf.hpp.
interval_rep | ( | ) | [inline] |
Definition at line 56 of file solver_ucf.hpp.
{ }
interval_rep | ( | const POL | p | ) | [inline] |
Definition at line 58 of file solver_ucf.hpp.
{ f = p; hg = homography<C>() ; }
interval_rep | ( | const POL | p, |
homography< C > | h | ||
) | [inline] |
Definition at line 64 of file solver_ucf.hpp.
{ f = p; hg = h; }
interval_rep | ( | const POL | p, |
C | u, | ||
C | v | ||
) | [inline] |
Definition at line 71 of file solver_ucf.hpp.
References interval_rep< POL >::contract_box(), interval_rep< POL >::reverse_and_shift_box(), and interval_rep< POL >::shift_box().
{ f = p; hg = homography<C>() ; shift_box ( u ); contract_box ( v-u ); reverse_and_shift_box (1); //print(); }
void contract_box | ( | const C & | t | ) | [inline] |
Definition at line 163 of file solver_ucf.hpp.
References homography< real >::contract_hom(), and mmx::pow().
Referenced by interval_rep< POL >::interval_rep().
{ int s, sz= f.size(); for ( s = 0 ; s < sz; ++s ) f[s] *= pow(t,s) ; //update homography hg.contract_hom(t); };
Definition at line 89 of file solver_ucf.hpp.
References homography< real >::a, homography< real >::b, homography< real >::c, and homography< real >::d.
Referenced by interval_rep< POL >::print().
{ Real l, r; Interval<Real> s ; //lim to 0 if ( hg.b!=0 && hg.d!=0 ) l= as<Real>(hg.b)/as<Real>(hg.d); else if ( hg.d==0 ) l= 10000000; else if ( hg.b==0 ) l= 0 ; else l= as<Real>(hg.a)/as<Real>(hg.c) ; //lim to inf if ( hg.a!=0 && hg.c!=0 ) r= as<Real>(hg.a)/as<Real>(hg.c); else if ( hg.c==0 ) r=10000000; else if ( hg.a==0 ) r= 0 ; else r= as<Real>(hg.b)/as<Real>(hg.d); if ( l<=r ) s= Interval<Real>(l,r); else s= Interval<Real>(r,l); return s; }
homography<C> hom | ( | ) | [inline] |
Definition at line 85 of file solver_ucf.hpp.
{ return hg; }
C middle | ( | ) | [inline] |
Definition at line 133 of file solver_ucf.hpp.
References homography< real >::c, and homography< real >::d.
{ C t(hg.d / hg.c); if (t>0) return ( t ) ; else return C(1); }
Real point | ( | C & | t | ) | [inline] |
Definition at line 127 of file solver_ucf.hpp.
References homography< real >::a, homography< real >::b, homography< real >::c, and homography< real >::d.
{
return ( as<Real>(hg.a)*as<Real>(t) + as<Real>(hg.b) ) /
( as<Real>(hg.c)*as<Real>(t) + as<Real>(hg.d) ) ;
}
POL poly | ( | ) | [inline] |
Definition at line 83 of file solver_ucf.hpp.
Referenced by solver_cffirst< Real, POL >::first_root_isolate(), and interval_rep< POL >::print().
{return f;};
void print | ( | ) | [inline] |
Definition at line 193 of file solver_ucf.hpp.
References homography< real >::a, homography< real >::b, homography< real >::c, homography< real >::d, interval_rep< POL >::domain(), interval_rep< POL >::poly(), and interval_rep< POL >::sign_var().
void reverse_and_shift_box | ( | const C & | t = 1 | ) | [inline] |
Definition at line 187 of file solver_ucf.hpp.
References interval_rep< POL >::reverse_box(), and interval_rep< POL >::shift_box().
Referenced by interval_rep< POL >::interval_rep().
{ reverse_box(t); shift_box (C(1)); };
void reverse_box | ( | const C & | t = 1 | ) | [inline] |
Definition at line 175 of file solver_ucf.hpp.
References homography< real >::reciprocal_hom(), and mmx::sparse::swap().
Referenced by interval_rep< POL >::reverse_and_shift_box().
{ unsigned s, l= f.size()-1; for (s = 0 ; s <= l/2; s++ ) std::swap(f[s], f[l-s]); //update homography hg.reciprocal_hom(t); };
void shift_box | ( | const C & | t | ) | [inline] |
Definition at line 150 of file solver_ucf.hpp.
References homography< real >::shift_hom().
Referenced by interval_rep< POL >::interval_rep(), and interval_rep< POL >::reverse_and_shift_box().
{ int s, k,j, sz= f.size(); for ( s = sz, j = 0; j <= s-2; j++ ) for( k = s-2; k >= j; k-- ) f[k] += t*f[k+1]; //update homography hg.shift_hom(t); };
unsigned sign_var | ( | ) | [inline] |
Definition at line 143 of file solver_ucf.hpp.
References mmx::sign_variation().
Referenced by interval_rep< POL >::print().
{ return sign_variation(f.begin(),f.end()) ; }
Real width | ( | ) | [inline] |
Definition at line 120 of file solver_ucf.hpp.
{ return this->template domain<Real>().width(); }