fast_eval_analytic_rep< C, V > Class Template Reference

#include <analytic_meta.hpp>

Inheritance diagram for fast_eval_analytic_rep< C, V >:
analytic_rep

List of all members.

Public Member Functions

Protected Types

Protected Member Functions

Protected Attributes


Detailed Description

template<typename C, typename V>
class mmx::fast_eval_analytic_rep< C, V >

Definition at line 36 of file analytic_meta.hpp.


Member Typedef Documentation

typedef unvectorize<FC>::val FScalar [protected]

Definition at line 39 of file analytic_meta.hpp.


Constructor & Destructor Documentation

fast_eval_analytic_rep ( const analytic< C, V > &  f2  )  [inline]

Definition at line 45 of file analytic_meta.hpp.

00045                                                     :
00046     Analytic_rep (CF(f2)), f (f2), fp (NULL) {}
  inline ~fast_eval_analytic_rep () {

~fast_eval_analytic_rep (  )  [inline]

Definition at line 47 of file analytic_meta.hpp.

References fast_eval_analytic_rep< C, V >::fp.

00047                                     {
00048     if (fp != NULL) mmx_delete_one (fp); }


Member Function Documentation

Abs_type ( C   )  const [inline]

Definition at line 58 of file analytic_meta.hpp.

References fast_eval_analytic_rep< C, V >::f.

00058                                                              {
00059     return tail_bound (f, r, order, a); }

Abs_type ( typename unvectorize< C >::val   )  const [inline]

Definition at line 56 of file analytic_meta.hpp.

References fast_eval_analytic_rep< C, V >::f.

00056                                         {
00057     return radius_bound (f, order); }

void Clear_cache ( nat  which  )  const [inline]

Definition at line 49 of file analytic_meta.hpp.

References mmx::clear_cache(), and fast_eval_analytic_rep< C, V >::f.

00049                                      {
00050     Analytic_rep::Clear_cache (which);
00051     clear_cache (f, which); }

analytic<C,V> Derive (  )  const [inline]

Definition at line 76 of file analytic_meta.hpp.

References mmx::derive(), fast_eval_analytic_rep< C, V >::f, and mmx::fast_eval().

00076                            {
00077     return fast_eval (derive (f)); }

C Eval ( const typename unvectorize< C >::val &  z  )  const [inline]

Definition at line 62 of file analytic_meta.hpp.

References fast_eval_analytic_rep< C, V >::f, fast_eval_analytic_rep< C, V >::fp, mmx::me, mmx::mmx_order_ratio, mmx::order, and mmx::truncate().

00062                                  {
00063     nat prec = precision (as<FScalar> (promote (0, z)));
00064     nat order= (nat) (mmx_order_ratio * ((double) prec));
00065     if (fp == NULL) {
00066       fast_eval_analytic_rep<C,V>* me=
00067         const_cast<fast_eval_analytic_rep<C,V>*> (this);
00068       polynomial<C> p= truncate (f, order);
00069       me->fp= mmx_new_one<polynomial<FC> > (fast (p));
00070     }
00071     FScalar fz= fast (z);
00072     FC sum= (*fp)[order-1];
00073     for (int i= order-2; i>=0; i--)
00074       sum= sum * fz + (*fp)[i];
00075     return slow<C> (sum); }

series<C> Expand (  )  const [inline]

Definition at line 54 of file analytic_meta.hpp.

References mmx::expand(), and fast_eval_analytic_rep< C, V >::f.

00054                          {
00055     return expand (f); }

syntactic expression ( const syntactic &  z  )  const [inline]

Definition at line 52 of file analytic_meta.hpp.

References fast_eval_analytic_rep< C, V >::f, and mmx::flatten().

00052                                                   {
00053     return apply ("fast_eval", flatten (f, z)); }

typedef Fast_type ( C   )  [protected]
analytic<C,V> Move ( const typename unvectorize< C >::val &  z  )  const [inline]

Definition at line 60 of file analytic_meta.hpp.

References fast_eval_analytic_rep< C, V >::f, mmx::fast_eval(), and mmx::move().

00060                                         {
00061     return fast_eval (move (f, z)); }


Member Data Documentation

analytic<C,V> f [protected]
polynomial<FC>* fp [protected]

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

Generated on 6 Dec 2012 for continewz by  doxygen 1.6.1