bzenv< X > Struct Template Reference

#include <bernstein_bzenv.hpp>

List of all members.

Public Types

Public Member Functions

Public Attributes

Static Public Attributes


Detailed Description

template<class X>
struct mmx::bernstein::bzenv< X >

Definition at line 17 of file bernstein_bzenv.hpp.


Member Typedef Documentation

typedef int size_t

Definition at line 19 of file bernstein_bzenv.hpp.


Constructor & Destructor Documentation

bzenv ( int  n = 100  )  [inline]

Definition at line 23 of file bernstein_bzenv.hpp.

00023 : m_bins(n) {};


Member Function Documentation

const X& binomial ( size_t  n,
size_t  i 
) [inline]

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); };

void elevate ( T *  dst,
T *  src,
size_t  sz,
int  sts,
int  stdst,
size_t  n 
) [inline]

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     };

void scaled_elevate ( T *  dst,
T *  src,
size_t  sz,
int  sts,
int  stdst,
size_t  n 
) [inline]

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     };


Member Data Documentation

bzenv< X > *const _default_ = (bzenv<X>*)(&(binomials<X>::_default_)) [inline, static]

Definition at line 21 of file bernstein_bzenv.hpp.


The documentation for this struct was generated from the following file:

Generated on 6 Dec 2012 for realroot by  doxygen 1.6.1