#include <analytic_meta.hpp>
Definition at line 101 of file analytic_meta.hpp.
| cache_last_analytic_rep | ( | const analytic< C, V > & | f2 | ) | [inline] |
Definition at line 118 of file analytic_meta.hpp.
00118 : 00119 Analytic_rep (CF(f2)), f (f2), next (NULL) {} inline ~cache_last_analytic_rep () {
| ~cache_last_analytic_rep | ( | ) | [inline] |
Definition at line 120 of file analytic_meta.hpp.
References cache_last_analytic_rep< C, V >::next.
| Abs_type | ( | C | ) | const [inline] |
Definition at line 131 of file analytic_meta.hpp.
References cache_last_analytic_rep< C, V >::f.
| Abs_type | ( | typename unvectorize< C >::val | ) | const [inline] |
Definition at line 129 of file analytic_meta.hpp.
References cache_last_analytic_rep< C, V >::f.
| void Clear_cache | ( | nat | which | ) | const [inline] |
Definition at line 122 of file analytic_meta.hpp.
References mmx::clear_cache(), and cache_last_analytic_rep< C, V >::f.
00122 { 00123 Analytic_rep::Clear_cache (which); 00124 clear_cache (f, which); }
Definition at line 174 of file analytic_meta.hpp.
References mmx::cache_last(), mmx::derive(), and cache_last_analytic_rep< C, V >::f.
00174 { 00175 return cache_last (derive (f)); }
| C Eval | ( | const list< typename unvectorize< C >::val > & | l2 | ) | const [inline] |
Definition at line 158 of file analytic_meta.hpp.
References mmx::eval(), cache_last_analytic_rep< C, V >::f, mmx::me, cache_last_analytic_rep< C, V >::next, Radius, Scalar, cache_last_analytic_rep< C, V >::Set_next(), mmx::shrink(), and mmx::simplify().
00158 { 00159 if (is_nil (l2)) return this->me () [0]; 00160 Radius r1= shrink (radius_bound (f)); 00161 list<Scalar > l= simplify (l2, r1); 00162 Scalar z1= car (l); 00163 if (is_nil (cdr (l))) return eval (f, z1); 00164 if (next == NULL) Set_next (z1); 00165 if (hard_eq (z1, next->next_point)) 00166 return eval (next->next_function, cdr (l)); 00167 Scalar z2= next->next_point; 00168 Radius r2= shrink (next->next_radius); 00169 if (is_nil (cdr (l)) || abs (z2 - z1) >= r2) { 00170 Set_next (z1); 00171 return eval (next->next_function, cdr (l)); 00172 } 00173 else return eval (next->next_function, cons (z1 - z2, cdr (l))); }
| C Eval | ( | const typename unvectorize< C >::val & | z | ) | const [inline] |
Definition at line 135 of file analytic_meta.hpp.
References mmx::eval(), and cache_last_analytic_rep< C, V >::f.
| series<C> Expand | ( | ) | const [inline] |
Definition at line 127 of file analytic_meta.hpp.
References mmx::expand(), and cache_last_analytic_rep< C, V >::f.
| syntactic expression | ( | const syntactic & | z | ) | const [inline] |
Definition at line 125 of file analytic_meta.hpp.
References cache_last_analytic_rep< C, V >::f, and mmx::flatten().
| analytic<C,V> Move | ( | const list< typename unvectorize< C >::val > & | l2 | ) | const [inline] |
Definition at line 137 of file analytic_meta.hpp.
References cache_last_analytic_rep< C, V >::f, mmx::me, mmx::move(), cache_last_analytic_rep< C, V >::next, Radius, Scalar, cache_last_analytic_rep< C, V >::Set_next(), mmx::shrink(), and mmx::simplify().
00137 { 00138 //mmout << "l2= " << l2 << "\n"; 00139 if (is_nil (l2)) return this->me (); 00140 Radius r1= shrink (radius_bound (f)); 00141 list<Scalar > l= simplify (l2, r1); 00142 //mmout << "l = " << l << "\n"; 00143 Scalar z1= car (l); 00144 if (next == NULL) Set_next (z1); 00145 if (hard_eq (z1, next->next_point)) 00146 return move (next->next_function, cdr (l)); 00147 Scalar z2= next->next_point; 00148 Radius r2= shrink (next->next_radius); 00149 if (is_nil (cdr (l)) || abs (z2 - z1) >= r2) { 00150 //mmout << "z1= " << z1 << "\n"; 00151 //mmout << "z2= " << z2 << "\n"; 00152 //mmout << "r1= " << r1 << "\n"; 00153 //mmout << "r2= " << r2 << "\n"; 00154 Set_next (z1); 00155 return move (next->next_function, cdr (l)); 00156 } 00157 else return move (next->next_function, cons (z1 - z2, cdr (l))); }
| analytic<C,V> Move | ( | const typename unvectorize< C >::val & | z | ) | const [inline] |
Definition at line 133 of file analytic_meta.hpp.
References mmx::cache_last(), cache_last_analytic_rep< C, V >::f, and mmx::move().
00133 { 00134 return cache_last (move (f, z)); }
| void Set_next | ( | const typename unvectorize< C >::val & | z1 | ) | const [inline, protected] |
Definition at line 107 of file analytic_meta.hpp.
References mmx::cache_last(), cache_last_analytic_rep< C, V >::f, mmx::me, mmx::move(), and cache_last_analytic_rep< C, V >::next.
Referenced by cache_last_analytic_rep< C, V >::Eval(), and cache_last_analytic_rep< C, V >::Move().
00107 { 00108 //mmout << " next -> " << z1 << "\n"; 00109 typedef cache_last_analytic_rep<C,V> Me; 00110 Me* me= const_cast<Me* > (this); 00111 if (next == NULL) me->next= mmx_new_one<analytic_next<C,V> > (); 00112 me->next->next_point = z1; 00113 me->next->next_function= cache_last (move (f, z1)); 00114 me->next->next_radius = radius_bound (next->next_function); 00115 }
Definition at line 103 of file analytic_meta.hpp.
Referenced by cache_last_analytic_rep< C, V >::Abs_type(), cache_last_analytic_rep< C, V >::Clear_cache(), cache_last_analytic_rep< C, V >::Derive(), cache_last_analytic_rep< C, V >::Eval(), cache_last_analytic_rep< C, V >::Expand(), cache_last_analytic_rep< C, V >::expression(), cache_last_analytic_rep< C, V >::Move(), and cache_last_analytic_rep< C, V >::Set_next().
analytic_next<C,V>* next [protected] |
Definition at line 104 of file analytic_meta.hpp.
Referenced by cache_last_analytic_rep< C, V >::Eval(), cache_last_analytic_rep< C, V >::Move(), cache_last_analytic_rep< C, V >::Set_next(), and cache_last_analytic_rep< C, V >::~cache_last_analytic_rep().
1.6.1