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