realroot_doc 0.1.1
|
#include <bernstein_bzenv.hpp>
Definition at line 17 of file bernstein_bzenv.hpp.
typedef int size_t |
Definition at line 19 of file bernstein_bzenv.hpp.
bzenv | ( | int | n = 100 | ) | [inline] |
Definition at line 23 of file bernstein_bzenv.hpp.
: m_bins(n) {};
Definition at line 97 of file bernstein_bzenv.hpp.
References binomials< T >::binomial(), and bzenv< X >::m_bins.
{ return m_bins.binomial(n,i); };
Definition at line 54 of file bernstein_bzenv.hpp.
References bzenv< X >::scale(), bzenv< X >::scaled_elevate(), and bzenv< X >::uscale().
{ scale(src,sz,sts); scaled_elevate(dst,src,sz,sts,stdst,n); uscale(src,sz,sts); uscale(dst,sz+n,stdst); };
void fromMonoms | ( | T * | bzc, |
size_t | sz, | ||
int | st = 1 |
||
) | [inline] |
Definition at line 91 of file bernstein_bzenv.hpp.
References bzenv< X >::fromMonomsToScaled(), and bzenv< X >::uscale().
{ fromMonomsToScaled( bzc, sz, st ); uscale(bzc,sz,st); };
void fromMonomsToScaled | ( | T * | bzc, |
size_t | sz, | ||
int | st | ||
) | [inline] |
Definition at line 75 of file bernstein_bzenv.hpp.
References binomials< T >::get(), and bzenv< X >::m_bins.
Referenced by bzenv< X >::fromMonoms().
{ T tmp[sz]; int i,k,p,l; X * bin; for ( p = 0, i = 0; i < sz; i++, p += st ) { tmp[i] = bzc[p]; bzc[p] = 0; }; for ( p = 0, i = 0; i < sz; i++, p += st ) { bin = m_bins.get( sz-i-1 ); for ( l = p, k = 0; k < sz-i; k++, l += st ) bzc[l] += tmp[i]*bin[k]; }; };
X* get | ( | size_t | i | ) | [inline] |
Definition at line 96 of file bernstein_bzenv.hpp.
References binomials< T >::get(), and bzenv< X >::m_bins.
{ return m_bins.get(i); };
void scale | ( | T * | bzc, |
size_t | sz, | ||
int | st = 1 |
||
) | [inline] |
conversion from bernstein basis to the scaled bernstein basis
Definition at line 27 of file bernstein_bzenv.hpp.
References binomials< T >::get(), and bzenv< X >::m_bins.
Referenced by bzenv< X >::elevate(), and bzenv< X >::toMonoms().
{ X * bins = m_bins.get(sz-1); int p = 0; for ( size_t i = 0; i < sz; i++, p += st ) bzc[p] *= bins[i]; };
Definition at line 46 of file bernstein_bzenv.hpp.
References mmx::vctops::convolution(), binomials< T >::get(), and bzenv< X >::m_bins.
Referenced by bzenv< X >::elevate().
{ X * bins = m_bins.get(n); vctops::convolution( dst, src, bins, sz, n+1, sts, 1, stdst ); };
void toMonoms | ( | T * | bzc, |
size_t | sz, | ||
int | st = 1 |
||
) | [inline] |
Definition at line 64 of file bernstein_bzenv.hpp.
References bzenv< X >::scale().
Referenced by bsearch< real_t >::bsearch(), bsearch_newton< real_t >::bsearch_newton(), and bsearch_newton2< real_t >::bsearch_newton2().
{ int i,k; for ( i = st; i != sz*st; i += st ) for ( k = (sz-1)*st; k != i-st; k -= st ) bzc[k] -= bzc[k-st]; scale(bzc,sz,st); };
void uscale | ( | T * | bzc, |
size_t | sz, | ||
int | st = 1 |
||
) | [inline] |
conversion from scaled bernstein basis to bernstein basis
Definition at line 36 of file bernstein_bzenv.hpp.
References binomials< T >::get(), and bzenv< X >::m_bins.
Referenced by bzenv< X >::elevate(), and bzenv< X >::fromMonoms().
{ X * bins = m_bins.get(sz-1); int p = 0; for ( int i = 0; i < sz; i++, p+= st ) bzc[p] /= bins[i]; };
Definition at line 21 of file bernstein_bzenv.hpp.
Definition at line 20 of file bernstein_bzenv.hpp.
Referenced by bzenv< X >::binomial(), bzenv< X >::fromMonomsToScaled(), bzenv< X >::get(), bzenv< X >::scale(), bzenv< X >::scaled_elevate(), and bzenv< X >::uscale().