6 #ifndef realroot_SOLVE_SBDSLV_METHOD_HPP
7 #define realroot_SOLVE_SBDSLV_METHOD_HPP
47 virtual void output(
const char * msg) {
48 std::cerr << msg << std::endl;
54 template<
class system,
55 class _strgy_ = strgy::newton<system> ,
56 template<
class>
class _rdslv_ = rdslv::parallel,
57 template<
class>
class _sbdrl_ = sbdrl::parametric >
78 void error(
const char * sysmsg )
84 sprintf(msg,
"domain control:\n\t%s\n",sysmsg);
87 sprintf(msg,
"strategy:\n\t%s\n",sysmsg);
90 sprintf(msg,
"reduction(solveur):\n\t%s\n",sysmsg);
93 sprintf(msg,
"subdivision:\n\t%s\n",sysmsg);
96 sprintf(msg,
"initialisation:\n\t%s\n",sysmsg);
99 sprintf(msg,
"reduction:\n\t%s\n",sysmsg);
102 sprintf(msg,
"%s",
"reduction: projection stack is empty !\n");
105 sprintf(msg,
"%s",
"rejection: pb in pop()\n");
112 for ( sz_t v = 0; v < sys->
nvr(); v ++ )
128 int nvrTemp = sys->
nvr();
129 std::vector<interval_t> *ri =
new std::vector<interval_t>[nvrTemp ];
131 for ( sz_t v = 0; v < sys->
nvr(); v ++ )
135 creal_t prc = sys->
current()[v].size();
140 if ( m_state == R_FAIL ) {
144 return sys->
reduce(ri,sys->
nvr())?R_ISOK:R_WEAK;
151 m_sbdrl.process( sys );
159 template<
class Prm,
class Bounds>
168 m_dbg = (dbg)?dbg:&m_dbgdefault;
186 m_state =
D_REJECT;
if ( !answ ) { sys->
pop();
continue; };
188 m_state =
E_STRGY, answ = m_strgy.process(sys);
190 if ( m_state == C_ACCEPT ) {
192 prm.output(sys->
current(),sys->
nvr()); sys->
pop();
continue; };
194 m_state =
D_REJECT;
if ( !answ ) { sys->
pop();
continue; };
199 prm.output(sys->
current(),sys->
nvr()); sys->
pop();
continue; };
218 if ( m_state == R_ISOK ) { sys->
dreset(); };
220 if ( sys->
prc() < sys->
peps() )
228 if ( m_state != R_ISOK )
233 if ( !m_sbdrl.process(sys) ) {
const int D_REJECT
Definition: system_method.hpp:42
void dreset()
Definition: system_system.h:588
_strgy_ m_strgy
Definition: system_method.hpp:66
void init(creal_t *inits=0)
Definition: system_system.h:601
void error(const char *sysmsg)
Definition: system_method.hpp:78
dstack_t::interval_t interval_t
Definition: system_system.h:31
system::creal_t creal_t
Definition: system_method.hpp:60
bool thickness()
Definition: system_system.h:589
bool reduce(std::vector< interval_t > *ri, unsigned)
Definition: system_dstack.h:170
sz_t nvr() const
Definition: system_system.h:84
virtual ~method_debug(void)
Definition: system_method.hpp:46
Definition: system_method.hpp:44
const creal_t & peps() const
Definition: system_dstack.h:37
void reset()
Definition: system_system.h:593
int sz_t
Definition: system_system.h:35
int m_nsbd
Definition: system_method.hpp:155
void receiver(method_base *mb)
Definition: system_dstack.h:25
creal_t prc()
Definition: system_dstack.h:47
void subdivision(system *sys)
Definition: system_method.hpp:148
const int E_STRGY
Definition: system_method.hpp:26
int m_niter
Definition: system_method.hpp:152
const int E_INIT
Definition: system_method.hpp:29
real_t creal_t
Definition: system_system.h:28
_rdslv_< system > m_rdslv
Definition: system_method.hpp:67
const int R_WEAK
Definition: system_method.hpp:39
#define min(a, b)
Definition: parser_def.c:475
void pop()
Definition: system_nstack.h:33
void launch(system *sys, Prm &prm, Bounds *inits, method_debug *dbg=0)
Definition: system_method.hpp:160
system::interval_t interval_t
Definition: system_method.hpp:61
int reduction(system *sys)
Definition: system_method.hpp:126
vstack_t & projections(sz_t v)
Definition: system_pstack.h:32
sz_t nbp() const
Definition: system_vstack.h:21
const int R_ERROR
Definition: system_method.hpp:41
Definition: system_system.h:25
Definition: system_method.hpp:58
const int E_CTRL
Definition: system_method.hpp:25
const int E_SBDRL
Definition: system_method.hpp:28
int m_seq
Definition: system_method.hpp:156
_sbdrl_< system > m_sbdrl
Definition: system_method.hpp:68
const int R_REJECT
Definition: system_method.hpp:36
interval_t * current()
Definition: system_dstack.h:32
const int R_FAIL
Definition: system_method.hpp:40
system::sz_t sz_t
Definition: system_method.hpp:62
method_debug * m_dbg
Definition: system_method.hpp:63
const int C_ACCEPT
Definition: system_method.hpp:32
int m_state
Definition: system_method.hpp:70
void check_pstack(system *sys)
Definition: system_method.hpp:110
const int R_ISOK
Definition: system_method.hpp:38
method_debug m_dbgdefault
Definition: system_method.hpp:64
Interval< T, r > max(const Interval< T, r > &a, const Interval< T, r > &b)
Definition: Interval_fcts.hpp:135
void accept()
Definition: system_method.hpp:72
Definition: method_base.hpp:14
const int E_RDSLV
Definition: system_method.hpp:27
virtual void output(const char *msg)
Definition: system_method.hpp:47