|
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().