|
algebramix_doc 0.3
|
#include <series_carry_naive.hpp>
Definition at line 578 of file series_carry_naive.hpp.
| root_series_rep | ( | const generic & | f2, |
| const generic & | x2, | ||
| const M & | y02 | ||
| ) | [inline] |
Definition at line 670 of file series_carry_naive.hpp.
:
Recursive_series_rep (get_format (y02)), f (f2), x (x2), y0 (y02) {}
| static generic _derive | ( | const generic & | e, |
| const generic & | x | ||
| ) | [inline, static] |
Definition at line 606 of file series_carry_naive.hpp.
References mmx::coefficients(), default_p_expansion, M, mmx::N(), Series, and root_series_rep< M, V >::x.
Referenced by root_series_rep< M, V >::initialize().
{
if (e == x) return as<generic> (Series (1));
if (is<Series> (e))
return as<generic> (as<Series> (0));
if (is<compound> (e)) {
if (N(e) == 2) {
if (e[0] == GEN_MINUS)
return gen (GEN_MINUS, _derive (e[1], x));
if (e[0] == GEN_SQUARE) {
Series ser_2 (coefficients (as<default_p_expansion(M)> (2)));
return gen (GEN_TIMES, as<generic> (ser_2),
gen (GEN_TIMES, _derive (e[1], x), e[1]));
}
}
if (N(e) == 3) {
if (e[0] == GEN_MINUS)
return gen (GEN_MINUS, _derive (e[1], x), _derive (e[2], x));
if (e[0] == GEN_PLUS)
return gen (GEN_PLUS, _derive (e[1], x), _derive (e[2], x));
if (e[0] == GEN_TIMES)
return gen (GEN_PLUS, gen (GEN_TIMES, _derive (e[1], x), e[2]),
gen (GEN_TIMES, e[1], _derive (e[2], x)));
}
}
ERROR ("bug, unexpected type with generic"); }
Definition at line 632 of file series_carry_naive.hpp.
References M, mmx::N(), mmx::rec_add(), mmx::rec_cst(), mmx::rec_lin(), mmx::rec_minus(), mmx::rec_prod(), mmx::rec_square(), Series, root_series_rep< M, V >::x, and root_series_rep< M, V >::y0.
Referenced by root_series_rep< M, V >::initialize().
{
if (is<Series> (e))
return rec_cst (as<Series> (e));
if (e == x)
return rec_lin (Series (y0), Series (M(1)));
if (is<compound> (e)) {
if (N(e) == 2) {
if (e[0] == GEN_MINUS)
return rec_minus (_eps (e[1], x));
if (e[0] == GEN_SQUARE)
return rec_square (_eps (e[1], x), this->me ());
}
if (N(e) == 3) {
if (e[0] == GEN_MINUS)
return rec_minus (_eps (e[1], x), _eps (e[2], x));
if (e[0] == GEN_PLUS)
return rec_add (_eps (e[1], x), _eps (e[2], x));
if (e[0] == GEN_TIMES)
return rec_prod (_eps (e[1], x), _eps (e[2], x), this->me ());
}
}
ERROR ("bug, unexpected type with generic"); }
Definition at line 583 of file series_carry_naive.hpp.
References mmx::N(), and mmx::square().
Referenced by root_series_rep< M, V >::initialize().
{
if (is<literal> (e))
return a;
if (is<Series> (e))
return as<Series> (e);
if (is<compound> (e)) {
if (N(e) == 2) {
if (e[0] == GEN_MINUS)
return - _eval (e[1], a);
if (e[0] == GEN_SQUARE)
return square (_eval (e[1], a));
}
if (N(e) == 3) {
if (e[0] == GEN_MINUS)
return _eval (e[1], a) - _eval (e[2], a);
if (e[0] == GEN_PLUS)
return _eval (e[1], a) + _eval (e[2], a);
if (e[0] == GEN_TIMES)
return _eval (e[1], a) * _eval (e[2], a);
}
}
ERROR ("bug, unexpected type with generic"); }
| syntactic expression | ( | const syntactic & | z | ) | const [inline] |
Definition at line 672 of file series_carry_naive.hpp.
{
return z; }
| virtual void Increase_order | ( | nat | l | ) | [inline, virtual] |
Reimplemented from recursive_series_rep< M, V >.
Definition at line 675 of file series_carry_naive.hpp.
References root_series_rep< M, V >::f, and root_series_rep< M, V >::increase_order_generic().
{
Recursive_series_rep::Increase_order (l);
increase_order_generic (f, l); }
| static void increase_order_generic | ( | generic | ff, |
| nat | l | ||
| ) | [inline, static] |
Definition at line 656 of file series_carry_naive.hpp.
References mmx::increase_order(), and mmx::N().
Referenced by root_series_rep< M, V >::Increase_order().
{
if (is<Series> (ff))
increase_order (as<Series> (ff), l);
if (is<compound> (ff)) {
if (N(ff) == 2)
increase_order_generic (ff[1], l);
if (N(ff) == 3) {
increase_order_generic (ff[1], l);
increase_order_generic (ff[2], l);
}
}
}
| M & initial | ( | nat | n2 | ) | [inline, inherited] |
Definition at line 131 of file series.hpp.
Referenced by root_series_rep< M, V >::initialize().
{
if (n2>=this->n) { this->n = n2+1; Set_order (this->n); }
return this->a[n2]; }
Implements recursive_series_rep< M, V >.
Definition at line 678 of file series_carry_naive.hpp.
References root_series_rep< M, V >::_derive(), root_series_rep< M, V >::_eps(), root_series_rep< M, V >::_eval(), root_series_rep< M, V >::f, recursive_series_rep< M, V >::initial(), Series, root_series_rep< M, V >::x, and root_series_rep< M, V >::y0.
| M next | ( | ) | [inline, inherited] |
Definition at line 137 of file series.hpp.
{ return eq[this->n]; }
Definition at line 126 of file series.hpp.
| generic f |
Definition at line 581 of file series_carry_naive.hpp.
Referenced by root_series_rep< M, V >::Increase_order(), and root_series_rep< M, V >::initialize().
| generic x |
Definition at line 581 of file series_carry_naive.hpp.
Referenced by root_series_rep< M, V >::_derive(), root_series_rep< M, V >::_eps(), and root_series_rep< M, V >::initialize().
| M y0 |
Definition at line 582 of file series_carry_naive.hpp.
Referenced by root_series_rep< M, V >::_eps(), and root_series_rep< M, V >::initialize().