unary_polynomial_recursive_monoblock_series_rep< Op, M, V, s, BV, t, L > Class Template Reference

#include <series_carry_blocks.hpp>

Inheritance diagram for unary_polynomial_recursive_monoblock_series_rep< Op, M, V, s, BV, t, L >:
series_rep

List of all members.

Public Member Functions


Detailed Description

template<typename Op, typename M, typename V, nat s, typename BV, nat t, typename L>
class mmx::unary_polynomial_recursive_monoblock_series_rep< Op, M, V, s, BV, t, L >

Definition at line 282 of file series_carry_blocks.hpp.


Constructor & Destructor Documentation

unary_polynomial_recursive_monoblock_series_rep ( const polynomial< L > &  P2  )  [inline]

Definition at line 289 of file series_carry_blocks.hpp.

00289                                                                            :
00290     Series_rep (CF(P2)), P(P2), h1_init (false) {
00291     h0= Op::template op<M,V,L> (P);  }
  unary_polynomial_recursive_monoblock_series_rep (const polynomial<L>& P2,

unary_polynomial_recursive_monoblock_series_rep ( const polynomial< L > &  P2,
const M &  init 
) [inline]

Definition at line 292 of file series_carry_blocks.hpp.

00293                                                                  :
00294     Series_rep (CF(P2)), P(P2), h1_init (false) {
00295     h0= Op::op (P, init); }
  syntactic expression (const syntactic& z) const {


Member Function Documentation

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

Definition at line 296 of file series_carry_blocks.hpp.

References mmx::flatten().

00296                                                   {
00297     return apply (Op::name (), flatten (P, z)); }

virtual void Increase_order ( nat  l  )  [inline, virtual]

Definition at line 298 of file series_carry_blocks.hpp.

References binpow(), mmx::from_monoblock(), mmx::increase_order(), Monoblock_modular, and mmx::truncate().

00298                                       {
00299     Series_rep::Increase_order (l);
00300     if (l <= t)
00301       increase_order (h0, l);
00302     else {
00303       if (! h1_init) {
00304         Monoblock_modular::set_modulus (binpow (L(* M::get_modulus ()), s));
00305         Monoblock_modular init= as<Lift_type(M)> (truncate (h0, s));
00306         h1= from_monoblock (Op::template op_init<Monoblock_modular,BV,L> 
00307                             (P, init), blocker);
00308         h1_init= true;
00309       }
00310       increase_order (h1, l); } }

M next (  )  [inline]

Definition at line 311 of file series_carry_blocks.hpp.

00311             {
00312     return this->n < t ? h0[this->n] : h1[this->n]; }


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

Generated on 6 Dec 2012 for algebramix by  doxygen 1.6.1