#include <cell_mv_bernstein.hpp>
Definition at line 165 of file cell_mv_bernstein.hpp.
bool reduce | ( | Cell * | cl | ) | [inline, static] |
Reimplemented from binary_approx.
Definition at line 173 of file cell_mv_bernstein.hpp.
References mmx::has_sign_variation(), and binary_approx::m_eps.
00173 { 00174 if(cl->size() < m_eps) return false; 00175 std::cout<<"isolate"<<std::endl; 00176 for(unsigned i=0;i<cl->nbeq();i++) 00177 if(!has_sign_variation(cl->equation(i))) return false; 00178 00179 00180 return true; 00181 }
bool regular | ( | Cell * | cl | ) | [inline, static, inherited] |
Definition at line 158 of file cell_mv_bernstein.hpp.
References mmx::has_sign_variation().
00158 { 00159 for(unsigned i=0;i<cl->nbeq();i++) 00160 if(!has_sign_variation(cl->equation(i))) return false; 00161 return true; 00162 }
void subdivide | ( | Cell * | cl, | |
Stack * | stack | |||
) | [inline, static, inherited] |
Definition at line 122 of file cell_mv_bernstein.hpp.
References Scalar, and mmx::tensor::split().
00122 { 00123 //std::cout<<"Subdivide "<<cl->equation(0)<< " "<<cl->domain(0)<<std::endl; 00124 00125 Cell* left = new Cell(*cl); 00126 Cell* right = new Cell(*cl); 00127 00128 unsigned v=0; 00129 typename Cell::Scalar s=cl->domain(0).upper()-cl->domain(0).lower(),s0; 00130 for (unsigned i=0;i<cl->nbvar();i++) 00131 if((s0=cl->domain(i).upper()-cl->domain(i).lower())>s) { 00132 s=s0;v=i; 00133 } 00134 typename Cell::Scalar m=(cl->domain(v).upper()+cl->domain(v).lower())/2; 00135 00136 for (unsigned i=0;i<cl->nbeq();i++) 00137 tensor::split(left->equation(i), right->equation(i), v); 00138 left->domain(v).upper()=m; 00139 right->domain(v).lower()=m; 00140 00141 // std::cout<<"==> "<<left->equation(0)<< " "<<left->domain(0)<<std::endl; 00142 // std::cout<<"==> "<<right->equation(0)<< " "<<right->domain(0)<<std::endl; 00143 // std::cout<<std::endl; 00144 00145 st->push(left); 00146 st->push(right); 00147 };
double m_eps = 1e-6 [static, inherited] |
Definition at line 106 of file cell_mv_bernstein.hpp.
Referenced by binary_isolate::reduce(), and binary_approx::reduce().