realroot_doc 0.1.1
|
#include <bernstein_eenv.hpp>
Definition at line 24 of file bernstein_eenv.hpp.
typedef int sz_t |
Reimplemented in eenv.
Definition at line 26 of file bernstein_eenv.hpp.
Definition at line 35 of file bernstein_eenv.hpp.
{ m_nvr = nvr; };
void compute_strides | ( | ) | [inline, protected] |
Definition at line 29 of file bernstein_eenv.hpp.
References eenv_base::m_nvr, eenv_base::m_str, and eenv_base::m_szs.
Referenced by eenv::eenv(), eenv::mcrossp(), and eenv_base::set_szs().
void copy | ( | X * | dst, |
real_t const *const | src | ||
) | [inline] |
Definition at line 53 of file bernstein_eenv.hpp.
References eenv_base::data_size().
Referenced by eenv::_mvrcvloop_(), eenv::diff(), eenv::eenv(), eenv_base::monoms_eval(), and eenv::vmap().
sz_t data_size | ( | ) | const [inline] |
Definition at line 39 of file bernstein_eenv.hpp.
References eenv_base::m_str.
Referenced by eenv::_mvrcvloop_(), eenv_base::copy(), eenv::elevation(), eenv_base::flatness(), eenv_base::hodograph(), eenv_base::lrestrict(), eenv_base::maxs(), eenv::mdiff(), eenv_base::mins(), eenv::monoms_derivative(), eenv_base::monoms_eval(), eenv::monoms_print(), mmx::bernstein::operator<<(), eenv_base::rrestrict(), eenv_base::scale(), eenv_base::sgnchg(), eenv_base::split(), eenv_base::split2(), eenv_base::toMonoms(), and eenv::vmap().
{ return m_str[-1]; };
real_t eval | ( | real_t * | data, |
const real_t * | prm, | ||
real_t * | chunk = 0 |
||
) | [inline] |
Definition at line 56 of file bernstein_eenv.hpp.
{ sz_t i,j; real_t * tmp; if ( chunk ) tmp = chunk; else tmp = new real_t[ data_size() ]; std::copy(data,data+data_size(), tmp ); for ( int v = nvars()-1; v >= 0 ; v -- ) for ( i = 0; i <data_size(); i += m_str[v-1] ) brnops::decasteljau(tmp+i,m_szs[v],prm[v],m_str[v]); real_t val = tmp[0]; if ( !chunk ) delete[] tmp; return val; };
real_t flatness | ( | real_t * | data, |
int | v | ||
) | [inline] |
Definition at line 233 of file bernstein_eenv.hpp.
References eenv_base::data_size(), eenv_base::m_str, eenv_base::m_szs, and mmx::vctops::max().
Definition at line 209 of file bernstein_eenv.hpp.
References eenv_base::fromMonoms(), and eenv_base::m_nvr.
Referenced by eenv_base::fromMonoms().
{ for ( sz_t v = 0; v < m_nvr; fromMonoms(data,v,env), v++ ); };
void hodograph | ( | real_t * | dst, |
real_t * | src, | ||
int | v | ||
) | [inline] |
Definition at line 42 of file bernstein_eenv.hpp.
References eenv_base::data_size(), mmx::brnops::hodograph(), eenv_base::m_str, and eenv_base::m_szs.
void lrestrict | ( | real_t * | data, |
int | v, | ||
const real_t & | mn | ||
) | [inline] |
Definition at line 173 of file bernstein_eenv.hpp.
References eenv_base::data_size(), mmx::brnops::lrestrict(), eenv_base::m_str, and eenv_base::m_szs.
void maxs | ( | real_t * | _maxs_, |
real_t const *const | data, | ||
sz_t | v | ||
) | const [inline] |
Definition at line 131 of file bernstein_eenv.hpp.
References eenv_base::data_size(), eenv_base::m_str, and eenv_base::m_szs.
void maxs | ( | real_t * | _maxs_, |
real_t const *const | data | ||
) | const [inline] |
Definition at line 145 of file bernstein_eenv.hpp.
References eenv_base::m_nvr, eenv_base::m_szs, and eenv_base::maxs().
Referenced by eenv_base::maxs().
void meval | ( | X & | res, |
real_t * | data, | ||
const X * | prm | ||
) | const [inline] |
Definition at line 90 of file bernstein_eenv.hpp.
void mins | ( | real_t * | _mins_, |
real_t const *const | data, | ||
sz_t | v | ||
) | const [inline] |
Definition at line 118 of file bernstein_eenv.hpp.
References eenv_base::data_size(), eenv_base::m_str, and eenv_base::m_szs.
void mins | ( | real_t * | _mins_, |
real_t const *const | data | ||
) | const [inline] |
Definition at line 149 of file bernstein_eenv.hpp.
References eenv_base::m_nvr, eenv_base::m_szs, and eenv_base::mins().
Referenced by eenv_base::mins().
real_t monoms_eval | ( | real_t * | data, |
const real_t * | prm | ||
) | const [inline] |
Definition at line 103 of file bernstein_eenv.hpp.
References eenv_base::copy(), eenv_base::data_size(), mmx::upoldse_::horner(), eenv_base::m_str, eenv_base::m_szs, and eenv_base::nvars().
sz_t nvars | ( | ) | const [inline] |
Definition at line 38 of file bernstein_eenv.hpp.
Referenced by eenv::_mvrcvloop_(), eenv::diff(), eenv_base::monoms_eval(), eenv::monoms_print(), eenv::vmap(), and eenv::~eenv().
{ return m_nvr; };
void rrestrict | ( | real_t * | data, |
int | v, | ||
const real_t & | mx | ||
) | [inline] |
Definition at line 182 of file bernstein_eenv.hpp.
References eenv_base::data_size(), eenv_base::m_str, eenv_base::m_szs, and mmx::brnops::rrestrict().
{ int i,j; for ( i = 0; i < data_size(); i += m_str[v-1] ) for ( j = i; j < i + m_str[v]; j++ ) brnops::rrestrict(data+j,m_szs[v],mx,m_str[v]); };
void scale | ( | real_t * | data | ) | [inline] |
Definition at line 194 of file bernstein_eenv.hpp.
References eenv_base::data_size().
{ vctops::scale(data,data_size()); };
void set_szs | ( | sz_t * | szs | ) | [inline] |
Definition at line 36 of file bernstein_eenv.hpp.
References eenv_base::compute_strides(), and eenv_base::m_szs.
{ m_szs = szs; compute_strides(); };
bool sgnchg | ( | real_t * | data | ) | [inline] |
Definition at line 191 of file bernstein_eenv.hpp.
References eenv_base::data_size().
{ return vctops::sgnchg(data,data_size()); };
void split | ( | real_t * | left, |
real_t * | right, | ||
int | v, | ||
const real_t & | t | ||
) | [inline] |
algorithmes de de Casteljau
Definition at line 155 of file bernstein_eenv.hpp.
References eenv_base::data_size(), eenv_base::m_str, and eenv_base::m_szs.
void split2 | ( | real_t * | left, |
real_t * | right, | ||
int | v | ||
) | [inline] |
Definition at line 164 of file bernstein_eenv.hpp.
References eenv_base::data_size(), eenv_base::m_str, and eenv_base::m_szs.
void spmeval | ( | X & | res, |
real_t * | src, | ||
X * | prm, | ||
unsigned * | supp, | ||
unsigned | nsupp | ||
) | const [inline] |
Definition at line 72 of file bernstein_eenv.hpp.
References mmx::add(), eenv_base::m_nvr, and eenv_base::m_szs.
{ sz_t v, lg, d; unsigned i,add,o; lg = 0; for ( v = 0; v < m_nvr; v ++ ) if ( m_szs[v] > m_szs[lg] ) lg = v; X powers [m_nvr][m_szs[lg]]; X acc; for ( v = 0; v < m_nvr; v ++ ) for ( powers[v][0] = 1.0, d = 1; d < m_szs[v]; powers[v][d] = prm[v]*powers[v][d-1], d ++ ); res = 0; for ( i = 0; i < nsupp; res += acc, i ++ ) for ( add = supp[i], acc = src[add], v = m_nvr-1; add; add /= m_szs[v], v -- ) acc *= powers[v][add%m_szs[v]]; };
Definition at line 37 of file bernstein_eenv.hpp.
References eenv_base::m_szs.
Referenced by eenv::diff(), and eenv::mdiff().
{ return m_szs[v]; };
Definition at line 221 of file bernstein_eenv.hpp.
References eenv_base::m_nvr, and eenv_base::toMonoms().
Referenced by eenv_base::toMonoms().
Definition at line 213 of file bernstein_eenv.hpp.
References eenv_base::data_size(), eenv_base::m_str, and eenv_base::m_szs.
Definition at line 27 of file bernstein_eenv.hpp.
Referenced by eenv::_alloc_(), eenv_base::compute_strides(), eenv::diff(), eenv::eenv(), eenv_base::fromMonoms(), eenv_base::maxs(), eenv::mcrossp(), eenv_base::mins(), eenv::op_mul(), eenv::psz(), eenv_base::spmeval(), eenv::swap(), eenv_base::toMonoms(), eenv::vrestrict(), and eenv::~eenv().
Definition at line 27 of file bernstein_eenv.hpp.
Referenced by eenv::_mvrcvloop_(), eenv_base::compute_strides(), eenv_base::data_size(), eenv::elevation(), eenv_base::flatness(), eenv_base::hodograph(), eenv_base::lrestrict(), eenv_base::maxs(), eenv::mdiff(), eenv_base::mins(), eenv_base::monoms_eval(), eenv_base::rrestrict(), eenv_base::split(), eenv_base::split2(), eenv::stride(), eenv_base::toMonoms(), and eenv::vmap().
Definition at line 27 of file bernstein_eenv.hpp.
Referenced by eenv::_mvrcvloop_(), eenv_base::compute_strides(), eenv::diff(), eenv::eenv(), eenv::elevation(), eenv_base::flatness(), eenv_base::hodograph(), eenv_base::lrestrict(), eenv_base::maxs(), eenv::mcrossp(), eenv_base::mins(), eenv_base::monoms_eval(), eenv::monoms_print(), eenv_base::rrestrict(), eenv_base::set_szs(), eenv_base::split(), eenv_base::split2(), eenv_base::spmeval(), eenv::swap(), eenv_base::sz(), eenv_base::toMonoms(), eenv::vmap(), and eenv::~eenv().