base_blocks_transformer< WL, WH, V > Struct Template Reference

#include <base_blocks.hpp>

List of all members.

Public Types

Public Member Functions

Public Attributes

Static Public Attributes


Detailed Description

template<typename WL, typename WH, typename V = typename base_blocks_variant_helper< typename WH::base >::BV>
struct mmx::base_blocks_transformer< WL, WH, V >

Definition at line 88 of file base_blocks.hpp.


Member Typedef Documentation

typedef implementation<base_transform,V> Base

Definition at line 100 of file base_blocks.hpp.

typedef WH::base base

Definition at line 89 of file base_blocks.hpp.

typedef base C

Definition at line 95 of file base_blocks.hpp.

typedef modulus_base I

Definition at line 96 of file base_blocks.hpp.

typedef modulus_middle J

Definition at line 97 of file base_blocks.hpp.

Definition at line 98 of file base_blocks.hpp.

typedef WL::modulus_base modulus_base

Definition at line 90 of file base_blocks.hpp.

typedef WL::modulus_base_variant modulus_base_variant

Definition at line 91 of file base_blocks.hpp.

typedef WH::modulus_base modulus_middle

Definition at line 92 of file base_blocks.hpp.

typedef WH::modulus_base_variant modulus_middle_variant

Definition at line 93 of file base_blocks.hpp.

Definition at line 99 of file base_blocks.hpp.


Constructor & Destructor Documentation

base_blocks_transformer ( const K &  _p,
nat  _s = th 
) [inline]

Definition at line 111 of file base_blocks.hpp.

References binpow(), base_blocks_transformer< WL, WH, V >::high, base_blocks_transformer< WL, WH, V >::low, base_blocks_transformer< WL, WH, V >::p, and base_blocks_transformer< WL, WH, V >::s.

00112     : p(_p), s(_s) {
00113     ASSERT (_p != 0 && _p != 1, "invalid base");
00114     low= mmx_new<WL> (1, p);
00115     J p_s= binpow (J(* p), s);
00116     high= mmx_new<WH> (1, p_s); }

base_blocks_transformer ( WL *  _low,
nat  _s = th 
) [inline]

Definition at line 118 of file base_blocks.hpp.

References binpow(), base_blocks_transformer< WL, WH, V >::high, base_blocks_transformer< WL, WH, V >::p, and base_blocks_transformer< WL, WH, V >::s.

00119     : p(_low->p), s(_s), low(_low) {
00120     J p_s= binpow (J(* p), s);
00121     high= mmx_new<WH> (1, p_s); }

~base_blocks_transformer (  )  [inline]

Definition at line 123 of file base_blocks.hpp.

References base_blocks_transformer< WL, WH, V >::high, and base_blocks_transformer< WL, WH, V >::low.

00123                                      {
00124     mmx_delete<WL> (low, 1);
00125     mmx_delete<WH> (high, 1); }


Member Function Documentation

nat direct_transform ( I c,
nat  n,
const C a 
) [inline]

Definition at line 127 of file base_blocks.hpp.

References base_blocks_transformer< WL, WH, V >::high, base_blocks_transformer< WL, WH, V >::low, and base_blocks_transformer< WL, WH, V >::s.

00127                                                         {
00128     return Base::direct (c, n, a, low, high, s); }

void inverse_transform ( C a,
const I c,
nat  n 
) [inline]

Definition at line 130 of file base_blocks.hpp.

References base_blocks_transformer< WL, WH, V >::high, base_blocks_transformer< WL, WH, V >::low, and base_blocks_transformer< WL, WH, V >::s.

00130                                                           {
00131     Base::inverse (a, c, n, low, high, s); }


Member Data Documentation

WH* high
WL* low
M p
nat s
const nat th = Threshold(typename WH::base,base_blocks_threshold) [static]

Definition at line 109 of file base_blocks.hpp.


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

Generated on 6 Dec 2012 for algebramix by  doxygen 1.6.1