|
algebramix_doc 0.3
|
#include <series_implicit.hpp>
Definition at line 374 of file series_implicit.hpp.
Definition at line 385 of file series_implicit.hpp.
References subst_mul_series_rep< C, V, UV >::f_kn, subst_mul_series_rep< C, V, UV >::f_sh, subst_mul_series_rep< C, V, UV >::g_kn, subst_mul_series_rep< C, V, UV >::g_sh, subst_mul_series_rep< C, V, UV >::inner, mmx::is_known(), mmx::rshiftz(), mmx::substitute(), and UC.
{
if (this->n >= g_sh &&
!is_known (substitute (this->f [this->n - g_sh]))) {
g_sh = g_sh << 1;
inner= rshiftz (f_kn, (int) f_sh) * rshiftz (g_kn, (int) g_sh);
}
if (this->n >= f_sh &&
!is_known (substitute (this->g [this->n - f_sh]))) {
f_sh = f_sh << 1;
inner= rshiftz (f_kn, (int) f_sh) * rshiftz (g_kn, (int) g_sh);
}
if (this->n < f_sh + g_sh) {
UC acc= this->f[0] * this->g[this->n];
for (nat i=1; i<=this->n; i++)
acc += this->f[i] * this->g[this->n-i];
return acc;
}
else {
UC acc= f_kn[0] * this->g[this->n] + this->f[this->n] * g_kn[0];
for (nat i=1; i<f_sh; i++)
acc += f_kn[i] * this->g[this->n-i];
for (nat i=1; i<g_sh; i++)
acc += this->f[this->n-i] * g_kn[i];
return acc + inner[this->n - f_sh - g_sh];
}
}
Definition at line 379 of file series_implicit.hpp.
Referenced by subst_mul_series_rep< C, V, UV >::next().
| nat f_sh |
Definition at line 378 of file series_implicit.hpp.
Referenced by subst_mul_series_rep< C, V, UV >::next().
Definition at line 379 of file series_implicit.hpp.
Referenced by subst_mul_series_rep< C, V, UV >::next().
| nat g_sh |
Definition at line 378 of file series_implicit.hpp.
Referenced by subst_mul_series_rep< C, V, UV >::next().
Definition at line 379 of file series_implicit.hpp.
Referenced by subst_mul_series_rep< C, V, UV >::next().