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

#include <BigRTL.hpp>

Inheritance diagram for cat::BigRTL:

List of all members.

Public Member Functions

u8 CAT_FASTCALL Add (const Leg *in_a, const Leg *in_b, Leg *out)
u8 CAT_FASTCALL AddX (Leg *inout, Leg x)
 BigRTL (int regs, int bits)
void CAT_FASTCALL Copy (const Leg *in, Leg *out)
void CAT_FASTCALL CopyX (Leg in, Leg *out)
bool CAT_FASTCALL Divide (const Leg *in_a, const Leg *in_b, Leg *out_q, Leg *out_r)
bool CAT_FASTCALL DivideProduct (const Leg *in_a, const Leg *in_b, Leg *out_q, Leg *out_r)
Leg CAT_FASTCALL DivideX (const Leg *in_a, Leg in_b, Leg *out)
u8 CAT_FASTCALL Double (const Leg *in, Leg *out)
Leg CAT_FASTCALL DoubleAdd (const Leg *in_a, const Leg *in_b, Leg *out)
int CAT_FASTCALL EatTrailingZeroes (Leg *inout)
bool CAT_FASTCALL Equal (const Leg *in_a, const Leg *in_b)
bool CAT_FASTCALL EqualX (const Leg *in, Leg x)
Leg *CAT_FASTCALL Get (int reg_index)
bool CAT_FASTCALL Greater (const Leg *in_a, const Leg *in_b)
bool CAT_FASTCALL GreaterX (const Leg *in, Leg x)
bool CAT_FASTCALL IsZero (const Leg *in)
CAT_INLINE int Legs ()
int CAT_FASTCALL LegsUsed (const Leg *in)
bool CAT_FASTCALL Less (const Leg *in_a, const Leg *in_b)
bool CAT_FASTCALL LessX (const Leg *in, Leg x)
void CAT_FASTCALL Load (const void *in, int bytes, Leg *out)
bool CAT_FASTCALL LoadFromString (const char *in, int base, Leg *out)
void CAT_FASTCALL ModularInverse (const Leg *x, const Leg *modulus, Leg *inverse)
Leg CAT_FASTCALL ModulusX (const Leg *in_a, Leg in_b)
void CAT_FASTCALL MoveLegsRight (const Leg *in, int legs, Leg *out)
void CAT_FASTCALL MulMod (const Leg *in_a, const Leg *in_b, const Leg *in_m, Leg *r)
Leg CAT_FASTCALL MultiplicativeInverseX (Leg x)
void CAT_FASTCALL Multiply (const Leg *in_a, const Leg *in_b, Leg *out)
void CAT_FASTCALL MultiplyLow (const Leg *in_a, const Leg *in_b, Leg *out)
Leg CAT_FASTCALL MultiplyX (const Leg *in_a, Leg in_b, Leg *out)
Leg CAT_FASTCALL MultiplyXAdd (const Leg *in_a, Leg in_b, const Leg *in_c, Leg *out)
void CAT_FASTCALL Negate (const Leg *in, Leg *out)
CAT_INLINE int RegBytes ()
void CAT_FASTCALL Save (const Leg *in, void *out, int bytes)
Leg CAT_FASTCALL ShiftLeft (const Leg *in, int shift, Leg *out)
void CAT_FASTCALL Square (const Leg *in, Leg *out)
u8 CAT_FASTCALL Subtract (const Leg *in_a, const Leg *in_b, Leg *out)
u8 CAT_FASTCALL SubtractX (Leg *inout, Leg x)
 ~BigRTL ()

Static Protected Member Functions

static u8 CAT_FASTCALL Add (int legs, const Leg *in_a, const Leg *in_b, Leg *out)
static u8 CAT_FASTCALL Add (int legs_a, const Leg *in_a, int legs_b, const Leg *in_b, Leg *out)
static void CAT_FASTCALL DivideCore (int A_used, Leg A_overflow, Leg *A, int B_used, Leg *B, Leg *Q)
static Leg CAT_FASTCALL DoubleAdd (int legs, const Leg *in_a, const Leg *in_b, Leg *out)
static Leg CAT_FASTCALL MultiplyX (int legs, const Leg *in_a, Leg in_b, Leg *out)
static Leg CAT_FASTCALL MultiplyXAdd (int legs, const Leg *in_a, Leg in_b, const Leg *in_c, Leg *out)
static Leg CAT_FASTCALL ShiftLeft (int legs, const Leg *in, int shift, Leg *out)
static Leg CAT_FASTCALL ShiftRight (int legs, const Leg *in, int shift, Leg *out)
static u8 CAT_FASTCALL Subtract (int legs, const Leg *in_a, const Leg *in_b, Leg *out)

Protected Attributes

int library_legs
Leg * library_memory

Private Attributes

int library_regs

Static Private Attributes

static const int BIG_OVERHEAD = 7

Detailed Description

Definition at line 47 of file BigRTL.hpp.


Constructor & Destructor Documentation

cat::BigRTL::BigRTL ( int  regs,
int  bits 
)
cat::BigRTL::~BigRTL ( )

Member Function Documentation

static u8 CAT_FASTCALL cat::BigRTL::Add ( int  legs,
const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
) [static, protected]
static u8 CAT_FASTCALL cat::BigRTL::Add ( int  legs_a,
const Leg *  in_a,
int  legs_b,
const Leg *  in_b,
Leg *  out 
) [static, protected]
u8 CAT_FASTCALL cat::BigRTL::Add ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
u8 CAT_FASTCALL cat::BigRTL::AddX ( Leg *  inout,
Leg  x 
)
void CAT_FASTCALL cat::BigRTL::Copy ( const Leg *  in,
Leg *  out 
)
void CAT_FASTCALL cat::BigRTL::CopyX ( Leg  in,
Leg *  out 
)
bool CAT_FASTCALL cat::BigRTL::Divide ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out_q,
Leg *  out_r 
)
static void CAT_FASTCALL cat::BigRTL::DivideCore ( int  A_used,
Leg  A_overflow,
Leg *  A,
int  B_used,
Leg *  B,
Leg *  Q 
) [static, protected]
bool CAT_FASTCALL cat::BigRTL::DivideProduct ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out_q,
Leg *  out_r 
)
Leg CAT_FASTCALL cat::BigRTL::DivideX ( const Leg *  in_a,
Leg  in_b,
Leg *  out 
)
u8 CAT_FASTCALL cat::BigRTL::Double ( const Leg *  in,
Leg *  out 
)
static Leg CAT_FASTCALL cat::BigRTL::DoubleAdd ( int  legs,
const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
) [static, protected]
Leg CAT_FASTCALL cat::BigRTL::DoubleAdd ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
int CAT_FASTCALL cat::BigRTL::EatTrailingZeroes ( Leg *  inout)
bool CAT_FASTCALL cat::BigRTL::Equal ( const Leg *  in_a,
const Leg *  in_b 
)
bool CAT_FASTCALL cat::BigRTL::EqualX ( const Leg *  in,
Leg  x 
)
Leg* CAT_FASTCALL cat::BigRTL::Get ( int  reg_index)
bool CAT_FASTCALL cat::BigRTL::Greater ( const Leg *  in_a,
const Leg *  in_b 
)
bool CAT_FASTCALL cat::BigRTL::GreaterX ( const Leg *  in,
Leg  x 
)
bool CAT_FASTCALL cat::BigRTL::IsZero ( const Leg *  in)
CAT_INLINE int cat::BigRTL::Legs ( ) [inline]

Definition at line 79 of file BigRTL.hpp.

References library_legs.

Referenced by cat::BigTwistedEdwards::PtLegs().

{ return library_legs; }
int CAT_FASTCALL cat::BigRTL::LegsUsed ( const Leg *  in)
bool CAT_FASTCALL cat::BigRTL::Less ( const Leg *  in_a,
const Leg *  in_b 
)
bool CAT_FASTCALL cat::BigRTL::LessX ( const Leg *  in,
Leg  x 
)
void CAT_FASTCALL cat::BigRTL::Load ( const void *  in,
int  bytes,
Leg *  out 
)
bool CAT_FASTCALL cat::BigRTL::LoadFromString ( const char *  in,
int  base,
Leg *  out 
)
void CAT_FASTCALL cat::BigRTL::ModularInverse ( const Leg *  x,
const Leg *  modulus,
Leg *  inverse 
)
Leg CAT_FASTCALL cat::BigRTL::ModulusX ( const Leg *  in_a,
Leg  in_b 
)
void CAT_FASTCALL cat::BigRTL::MoveLegsRight ( const Leg *  in,
int  legs,
Leg *  out 
)
void CAT_FASTCALL cat::BigRTL::MulMod ( const Leg *  in_a,
const Leg *  in_b,
const Leg *  in_m,
Leg *  r 
)
Leg CAT_FASTCALL cat::BigRTL::MultiplicativeInverseX ( Leg  x)
void CAT_FASTCALL cat::BigRTL::Multiply ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
void CAT_FASTCALL cat::BigRTL::MultiplyLow ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
Leg CAT_FASTCALL cat::BigRTL::MultiplyX ( const Leg *  in_a,
Leg  in_b,
Leg *  out 
)
static Leg CAT_FASTCALL cat::BigRTL::MultiplyX ( int  legs,
const Leg *  in_a,
Leg  in_b,
Leg *  out 
) [static, protected]
static Leg CAT_FASTCALL cat::BigRTL::MultiplyXAdd ( int  legs,
const Leg *  in_a,
Leg  in_b,
const Leg *  in_c,
Leg *  out 
) [static, protected]
Leg CAT_FASTCALL cat::BigRTL::MultiplyXAdd ( const Leg *  in_a,
Leg  in_b,
const Leg *  in_c,
Leg *  out 
)
void CAT_FASTCALL cat::BigRTL::Negate ( const Leg *  in,
Leg *  out 
)
CAT_INLINE int cat::BigRTL::RegBytes ( ) [inline]

Definition at line 80 of file BigRTL.hpp.

References library_legs.

{ return library_legs * sizeof(Leg); }
void CAT_FASTCALL cat::BigRTL::Save ( const Leg *  in,
void *  out,
int  bytes 
)
Leg CAT_FASTCALL cat::BigRTL::ShiftLeft ( const Leg *  in,
int  shift,
Leg *  out 
)
static Leg CAT_FASTCALL cat::BigRTL::ShiftLeft ( int  legs,
const Leg *  in,
int  shift,
Leg *  out 
) [static, protected]
static Leg CAT_FASTCALL cat::BigRTL::ShiftRight ( int  legs,
const Leg *  in,
int  shift,
Leg *  out 
) [static, protected]
void CAT_FASTCALL cat::BigRTL::Square ( const Leg *  in,
Leg *  out 
)
static u8 CAT_FASTCALL cat::BigRTL::Subtract ( int  legs,
const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
) [static, protected]
u8 CAT_FASTCALL cat::BigRTL::Subtract ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
u8 CAT_FASTCALL cat::BigRTL::SubtractX ( Leg *  inout,
Leg  x 
)

Member Data Documentation

const int cat::BigRTL::BIG_OVERHEAD = 7 [static, private]

Definition at line 49 of file BigRTL.hpp.

int cat::BigRTL::library_legs [protected]

Definition at line 53 of file BigRTL.hpp.

Referenced by Legs(), and RegBytes().

Leg* cat::BigRTL::library_memory [protected]

Definition at line 54 of file BigRTL.hpp.

Definition at line 50 of file BigRTL.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