|
algebramix_doc 0.3
|
#include <crt_dicho.hpp>
Definition at line 110 of file crt_dicho.hpp.
| crt_dicho_transformer | ( | const vector< M > & | p, |
| bool | lazy = true |
||
| ) | [inline] |
Definition at line 164 of file crt_dicho.hpp.
References mmx::N(), mmx::seg(), and crt_dicho_transformer< C, S, V >::setup_inverse().
: tree(NULL), k(NULL) {
setup_direct (seg (p), N(p));
aux= mmx_new<C> (n);
if (! lazy) setup_inverse (); }
| ~crt_dicho_transformer | ( | ) | [inline] |
Definition at line 170 of file crt_dicho.hpp.
{
if (n == 0) return;
mmx_delete<M> (p, n);
mmx_delete<C> (aux, n);
for (nat i= 0; i < depth; i++)
mmx_delete<Modulus> (tree[i], k[i]);
mmx_delete<Modulus*> (tree, depth);
mmx_delete<nat> (k, depth);
if (m != NULL) mmx_delete<C> (m, n); }
| void combine | ( | C & | a, |
| const I * | c | ||
| ) | [inline] |
Definition at line 198 of file crt_dicho.hpp.
{
Crt::combine (a, c, tree, k, depth, n, aux); }
| C comodulus | ( | nat | i | ) | const [inline] |
Definition at line 190 of file crt_dicho.hpp.
{
VERIFY (i < n, "index out of range");
return *P / m[i]; }
| void direct_transform | ( | I * | c, |
| const C & | a | ||
| ) | const [inline] |
Definition at line 194 of file crt_dicho.hpp.
References mmx::C.
{
C b= Crt::encode (a, P);
Crt::direct (c, b, tree, k, depth, n, aux); }
| void inverse_transform | ( | C & | a, |
| const I * | c | ||
| ) | [inline] |
Definition at line 201 of file crt_dicho.hpp.
References crt_dicho_transformer< C, S, V >::setup_inverse().
{
setup_inverse ();
Crt::inverse (a, c, tree, k, depth, m, n, P, aux);
a= Crt::decode (a, P, H); }
| M operator[] | ( | nat | i | ) | const [inline] |
Definition at line 180 of file crt_dicho.hpp.
{
VERIFY (i < n, "index out of range");
return p[i]; }
| Modulus product | ( | ) | const [inline] |
Definition at line 187 of file crt_dicho.hpp.
{
return P; }
| void setup_inverse | ( | ) | [inline] |
Definition at line 153 of file crt_dicho.hpp.
References mmx::C.
Referenced by crt_dicho_transformer< C, S, V >::crt_dicho_transformer(), and crt_dicho_transformer< C, S, V >::inverse_transform().
| nat size | ( | ) | const [inline] |