rtxBigInt.h File Reference

#include "rtxsrc/rtxContext.h"

Go to the source code of this file.

Classes

struct  OSBigInt

Typedefs

typedef struct OSBigInt OSBigInt

Functions

void rtxBigIntInit (OSBigInt *pInt)
int rtxBigIntSetStr (OSCTXT *pctxt, OSBigInt *pInt, const char *value, int radix)
int rtxBigIntSetStrn (OSCTXT *pctxt, OSBigInt *pInt, const char *value, OSSIZE len, int radix)
int rtxBigIntSetInt64 (OSCTXT *pctxt, OSBigInt *pInt, OSINT64 value)
int rtxBigIntSetUInt64 (OSCTXT *pctxt, OSBigInt *pInt, OSUINT64 value)
int rtxBigIntSetBytes (OSCTXT *pctxt, OSBigInt *pInt, OSOCTET *value, OSSIZE vallen)
OSSIZE rtxBigIntGetDataLen (const OSBigInt *pInt)
int rtxBigIntGetData (OSCTXT *pctxt, const OSBigInt *pInt, OSOCTET *buffer, OSSIZE bufSize)
OSSIZE rtxBigIntDigitsNum (const OSBigInt *pInt, int radix)
int rtxBigIntCopy (OSCTXT *pctxt, const OSBigInt *pSrc, OSBigInt *pDst)
int rtxBigIntFastCopy (OSCTXT *pctxt, const OSBigInt *pSrc, OSBigInt *pDst)
int rtxBigIntToString (OSCTXT *pctxt, const OSBigInt *pInt, int radix, char *str, OSSIZE strSize)
int rtxBigIntPrint (const OSUTF8CHAR *name, const OSBigInt *bigint, int radix)
int rtxBigIntCompare (const OSBigInt *arg1, const OSBigInt *arg2)
int rtxBigIntStrCompare (OSCTXT *pctxt, const char *arg1, const char *arg2)
void rtxBigIntFree (OSCTXT *pctxt, OSBigInt *pInt)
int rtxBigIntAdd (OSCTXT *pctxt, OSBigInt *result, const OSBigInt *arg1, const OSBigInt *arg2)
int rtxBigIntSubtract (OSCTXT *pctxt, OSBigInt *result, const OSBigInt *arg1, const OSBigInt *arg2)
int rtxBigIntMultiply (OSCTXT *pctxt, OSBigInt *result, const OSBigInt *arg1, const OSBigInt *arg2)
unsigned short rtxBigIntBitsPerDigit (int radix)
short rtxBigIntByteRadix (int halfRadix)

Detailed Description


Function Documentation

int rtxBigIntAdd ( OSCTXT pctxt,
OSBigInt result,
const OSBigInt arg1,
const OSBigInt arg2 
)

This function is used to add two big integer values.

Parameters:
pctxt Pointer to a context structure.
result Pointer to big integer structure to receive result.
arg1 First big integer to add.
arg2 Second big integer to add.
Returns:
Result of operation: 0 = success, negative error code if error.
int rtxBigIntCompare ( const OSBigInt arg1,
const OSBigInt arg2 
)

This function is used to compare two big integer values.

Parameters:
arg1 First big integer to compare.
arg2 Second big integer to compare.
Returns:
Result of comparison: -1 = arg1 < arg2, 0 = arg1 == arg2, +1 = arg1 > arg2
int rtxBigIntCopy ( OSCTXT pctxt,
const OSBigInt pSrc,
OSBigInt pDst 
)

This function is used to copy a big integer data value from one structure to another.

Parameters:
pctxt Pointer to a context structure.
pSrc Pointer to source big integer structure.
pDst Pointer to destination big integer structure.
Returns:
Status of the operation, 0 = success, negative code if error.
OSSIZE rtxBigIntDigitsNum ( const OSBigInt pInt,
int  radix 
)

This function is used to get the number of digits in the binary big integer data value based on radix.

Parameters:
pInt Pointer to big integer structure.
radix Radix of the string value, Valid values are 2, 8, 10, or 16.
Returns:
Number of digits in the binary data value.
int rtxBigIntFastCopy ( OSCTXT pctxt,
const OSBigInt pSrc,
OSBigInt pDst 
)

This function is used to copy one BigInt to another. This function will not allocate memory for the byte buffer if the destination BigInt already has a large enough allocated array to hold the data. The destination BigInt must have been initialized using the rtxBigIntInit function.

Parameters:
pctxt Pointer to a context structure.
pSrc Pointer to source big integer structure.
pDst Pointer to destination big integer structure.
Returns:
Status of the operation, 0 = success, negative code if error.
void rtxBigIntFree ( OSCTXT pctxt,
OSBigInt pInt 
)

This function frees internal memory within the big integer structure.

Parameters:
pctxt Pointer to a context structure.
pInt Pointer to big integer structure in which memory is to be freed.
int rtxBigIntGetData ( OSCTXT pctxt,
const OSBigInt pInt,
OSOCTET *  buffer,
OSSIZE  bufSize 
)

This function is used to get the binary big integer data value in a byte array.

Parameters:
pctxt Pointer to a context structure.
pInt Pointer to big integer structure.
buffer Buffer into which binary big integer value is to be copied.
bufSize Size of the data buffer.
Returns:
If success, number of bytes in byte array; if error, negative error code.
OSSIZE rtxBigIntGetDataLen ( const OSBigInt pInt  ) 

This function is used to get the size in bytes of the binary big integer data value.

Parameters:
pInt Pointer to big integer structure.
Returns:
Length in bytes of the binary data value.
void rtxBigIntInit ( OSBigInt pInt  ) 

This function initializes a big integer structure. It must be called prior to working with the structure.

Parameters:
pInt Pointer to big integer data structure.
int rtxBigIntMultiply ( OSCTXT pctxt,
OSBigInt result,
const OSBigInt arg1,
const OSBigInt arg2 
)

This function is used to multiply two big integer values.

Parameters:
pctxt Pointer to a context structure.
result Pointer to big integer structure to receive result.
arg1 First big integer to be multiplied.
arg2 Second big integer to be multiplied.
Returns:
Result of operation: 0 = success, negative error code if error.
int rtxBigIntPrint ( const OSUTF8CHAR *  name,
const OSBigInt bigint,
int  radix 
)

This function is used to print a big integer value to standard output.

Parameters:
name Name to print in "name=value" format.
bigint Pointer to big integer value to be printed.
radix Radix of the string value, Valid values are 2, 8, 10, or 16.
Returns:
Status of the operation, 0 = success, negative code if error.
int rtxBigIntSetBytes ( OSCTXT pctxt,
OSBigInt pInt,
OSOCTET *  value,
OSSIZE  vallen 
)

This function sets a big integer binary value from a byte array. The array is assumed to hold the value in binary form.

Parameters:
pctxt Pointer to a context structure.
pInt Pointer to big integer structure to receive converted value.
value Buffer containing binary integer value.
vallen Number of byte in the value buffer.
Returns:
Status of the operation, 0 = success, negative code if error.
int rtxBigIntSetInt64 ( OSCTXT pctxt,
OSBigInt pInt,
OSINT64  value 
)

This function sets a big integer binary value from a signed 64-bit integer value.

Parameters:
pctxt Pointer to a context structure.
pInt Pointer to big integer structure to receive converted value.
value 64-bit integer value to convert.
Returns:
Status of the operation, 0 = success, negative code if error.
int rtxBigIntSetStr ( OSCTXT pctxt,
OSBigInt pInt,
const char *  value,
int  radix 
)

This function sets a big integer binary value from a null-terminated string.

Parameters:
pctxt Pointer to a context structure.
pInt Pointer to big integer structure to receive converted value.
value Numeric string to convert.
radix Radix of the string value, Valid values are 2, 8, 10, or 16.
Returns:
Status of the operation, 0 = success, negative code if error.
int rtxBigIntSetStrn ( OSCTXT pctxt,
OSBigInt pInt,
const char *  value,
OSSIZE  len,
int  radix 
)

This function sets a big integer binary value from a character string using the given number of characters.

Parameters:
pctxt Pointer to a context structure.
pInt Pointer to big integer structure to receive converted value.
value Numeric string to convert.
len Number of bytes from character string to use.
radix Radix of the string value, Valid values are 2, 8, 10, or 16.
Returns:
Status of the operation, 0 = success, negative code if error.
int rtxBigIntSetUInt64 ( OSCTXT pctxt,
OSBigInt pInt,
OSUINT64  value 
)

This function sets a big integer binary value from an unsigned 64-bit integer value.

Parameters:
pctxt Pointer to a context structure.
pInt Pointer to big integer structure to receive converted value.
value 64-bit integer value to convert.
Returns:
Status of the operation, 0 = success, negative code if error.
int rtxBigIntStrCompare ( OSCTXT pctxt,
const char *  arg1,
const char *  arg2 
)

This function is used to compare two big integer numeric strings.

Parameters:
pctxt Pointer to a context structure.
arg1 First big integer string to compare.
arg2 Second big integer string to compare.
Returns:
Result of comparison: -1 = arg1 < arg2, 0 = arg1 == arg2, +1 = arg1 > arg2
int rtxBigIntSubtract ( OSCTXT pctxt,
OSBigInt result,
const OSBigInt arg1,
const OSBigInt arg2 
)

This function is used to subtract one big integer value from another.

Parameters:
pctxt Pointer to a context structure.
result Pointer to big integer structure to receive result.
arg1 Big integer value that arg2 is subtracted from (minuend).
arg2 Big integer to be subtracted from arg1 (subtrahend).
Returns:
Result of operation: 0 = success, negative error code if error.
int rtxBigIntToString ( OSCTXT pctxt,
const OSBigInt pInt,
int  radix,
char *  str,
OSSIZE  strSize 
)

This function is used to convert a binary big integer value to a string.

Parameters:
pctxt Pointer to a context structure.
pInt Pointer to big integer structure to convert.
radix Radix of the string value, Valid values are 2, 8, 10, or 16.
str Character string buffer to receive converted value.
strSize Size, in bytes, of the character string buffer.
Returns:
Status of the operation, 0 = success, negative code if error.