Shadowrun: Awakened 29 September 2011 - Build 871
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes
cat::BigPseudoMersenne Class Reference

#include <BigPseudoMersenne.hpp>

Inheritance diagram for cat::BigPseudoMersenne:

List of all members.

Public Member Functions

 BigPseudoMersenne (int regs, int bits, int C)
void CAT_FASTCALL CopyModulus (Leg *out)
const Leg * GetModulus ()
void CAT_FASTCALL MrAdd (const Leg *in_a, const Leg *in_b, Leg *out)
void CAT_FASTCALL MrAddX (Leg *inout, Leg x)
void CAT_FASTCALL MrDouble (const Leg *in, Leg *out)
void CAT_FASTCALL MrInvert (const Leg *in, Leg *out)
void CAT_FASTCALL MrMultiply (const Leg *in_a, const Leg *in_b, Leg *out)
void CAT_FASTCALL MrMultiplyX (const Leg *in_a, Leg in_b, Leg *out)
void CAT_FASTCALL MrNegate (const Leg *in, Leg *out)
void CAT_FASTCALL MrReduce (Leg *inout)
void CAT_FASTCALL MrSquare (const Leg *in, Leg *out)
void CAT_FASTCALL MrSquareRoot (const Leg *in, Leg *out)
void CAT_FASTCALL MrSubtract (const Leg *in_a, const Leg *in_b, Leg *out)
void CAT_FASTCALL MrSubtractX (Leg *inout, Leg x)

Protected Member Functions

void CAT_FASTCALL MrReduceProduct (const Leg *in_hi, const Leg *in_lo, Leg *out)
void CAT_FASTCALL MrReduceProductX (Leg overflow, Leg *inout)

Protected Attributes

Leg * CachedModulus
Leg modulus_c

Private Attributes

int pm_regs

Static Private Attributes

static const int PM_OVERHEAD = 6

Detailed Description

Definition at line 47 of file BigPseudoMersenne.hpp.


Constructor & Destructor Documentation

cat::BigPseudoMersenne::BigPseudoMersenne ( int  regs,
int  bits,
int  C 
)

Member Function Documentation

void CAT_FASTCALL cat::BigPseudoMersenne::CopyModulus ( Leg *  out)
const Leg* cat::BigPseudoMersenne::GetModulus ( ) [inline]

Definition at line 63 of file BigPseudoMersenne.hpp.

References CachedModulus.

{ return CachedModulus; }
void CAT_FASTCALL cat::BigPseudoMersenne::MrAdd ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrAddX ( Leg *  inout,
Leg  x 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrDouble ( const Leg *  in,
Leg *  out 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrInvert ( const Leg *  in,
Leg *  out 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrMultiply ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrMultiplyX ( const Leg *  in_a,
Leg  in_b,
Leg *  out 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrNegate ( const Leg *  in,
Leg *  out 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrReduce ( Leg *  inout)
void CAT_FASTCALL cat::BigPseudoMersenne::MrReduceProduct ( const Leg *  in_hi,
const Leg *  in_lo,
Leg *  out 
) [protected]
void CAT_FASTCALL cat::BigPseudoMersenne::MrReduceProductX ( Leg  overflow,
Leg *  inout 
) [protected]
void CAT_FASTCALL cat::BigPseudoMersenne::MrSquare ( const Leg *  in,
Leg *  out 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrSquareRoot ( const Leg *  in,
Leg *  out 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrSubtract ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
void CAT_FASTCALL cat::BigPseudoMersenne::MrSubtractX ( Leg *  inout,
Leg  x 
)

Member Data Documentation

Definition at line 53 of file BigPseudoMersenne.hpp.

Referenced by GetModulus().

Definition at line 54 of file BigPseudoMersenne.hpp.

const int cat::BigPseudoMersenne::PM_OVERHEAD = 6 [static, private]

Definition at line 49 of file BigPseudoMersenne.hpp.

Definition at line 50 of file BigPseudoMersenne.hpp.


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

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net