#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.
00023 : m_bins(n) {};
Definition at line 97 of file bernstein_bzenv.hpp.
References binomials< T >::binomial(), and bzenv< X >::m_bins.
00097 { 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().
00055 { 00056 scale(src,sz,sts); 00057 scaled_elevate(dst,src,sz,sts,stdst,n); 00058 uscale(src,sz,sts); 00059 uscale(dst,sz+n,stdst); 00060 };
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().
00092 { 00093 fromMonomsToScaled( bzc, sz, st ); 00094 uscale(bzc,sz,st); 00095 };
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().
00076 { 00077 T tmp[sz]; 00078 int i,k,p,l; 00079 X * bin; 00080 for ( p = 0, i = 0; i < sz; i++, p += st ) 00081 { tmp[i] = bzc[p]; bzc[p] = 0; }; 00082 for ( p = 0, i = 0; i < sz; i++, p += st ) 00083 { 00084 bin = m_bins.get( sz-i-1 ); 00085 for ( l = p, k = 0; k < sz-i; k++, l += st ) 00086 bzc[l] += tmp[i]*bin[k]; 00087 }; 00088 };
X* get | ( | size_t | i | ) | [inline] |
Definition at line 96 of file bernstein_bzenv.hpp.
References binomials< T >::get(), and bzenv< X >::m_bins.
00096 { 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().
00028 { 00029 X * bins = m_bins.get(sz-1); 00030 int p = 0; 00031 for ( size_t i = 0; i < sz; i++, p += st ) bzc[p] *= bins[i]; 00032 };
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().
00047 { 00048 X * bins = m_bins.get(n); 00049 vctops::convolution( dst, src, bins, sz, n+1, sts, 1, stdst ); 00050 };
void toMonoms | ( | T * | bzc, | |
size_t | sz, | |||
int | st = 1 | |||
) | [inline] |
Definition at line 64 of file bernstein_bzenv.hpp.
References bzenv< X >::scale().
00065 { 00066 int i,k; 00067 for ( i = st; i != sz*st; i += st ) 00068 for ( k = (sz-1)*st; k != i-st; k -= st ) 00069 bzc[k] -= bzc[k-st]; 00070 scale(bzc,sz,st); 00071 };
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().
00037 { 00038 X * bins = m_bins.get(sz-1); 00039 int p = 0; 00040 for ( int i = 0; i < sz; i++, p+= st ) bzc[p] /= bins[i]; 00041 };
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().