rtxBigInt.h File Reference

#include "rtxsrc/rtxContext.h"

Go to the source code of this file.

Functions

EXTERNRT void rtxBigIntInit (OSBigInt *pInt)
 This function initializes a big integer structure.
EXTERNRT int rtxBigIntSetStr (OSCTXT *pctxt, OSBigInt *pInt, const char *value, int radix)
 This function sets a big integer binary value from a null-terminated string.
EXTERNRT 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.
EXTERNRT int rtxBigIntSetInt64 (OSCTXT *pctxt, OSBigInt *pInt, OSINT64 value)
 This function sets a big integer binary value from a signed 64-bit integer value.
EXTERNRT int rtxBigIntSetUInt64 (OSCTXT *pctxt, OSBigInt *pInt, OSUINT64 value)
 This function sets a big integer binary value from an unsigned 64-bit integer value.
EXTERNRT int rtxBigIntSetBytes (OSCTXT *pctxt, OSBigInt *pInt, OSOCTET *value, OSSIZE vallen)
 This function sets a big integer binary value from a byte array.
EXTERNRT OSSIZE rtxBigIntGetDataLen (const OSBigInt *pInt)
 This function is used to get the size in bytes of the binary big integer data value.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT int rtxBigIntFastCopy (OSCTXT *pctxt, const OSBigInt *pSrc, OSBigInt *pDst)
 This function is used to copy one BigInt to another.
EXTERNRT 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.
EXTERNRT int rtxBigIntPrint (const OSUTF8CHAR *name, const OSBigInt *bigint, int radix)
 This function is used to print a big integer value to standard output.
EXTERNRT int rtxBigIntCompare (const OSBigInt *arg1, const OSBigInt *arg2)
 This function is used to compare two big integer values.
EXTERNRT int rtxBigIntStrCompare (OSCTXT *pctxt, const char *arg1, const char *arg2)
 This function is used to compare two big integer numeric strings.
EXTERNRT void rtxBigIntFree (OSCTXT *pctxt, OSBigInt *pInt)
 This function frees internal memory within the big integer structure.
EXTERNRT int rtxBigIntAdd (OSCTXT *pctxt, OSBigInt *result, const OSBigInt *arg1, const OSBigInt *arg2)
 This function is used to add two big integer values.
EXTERNRT int rtxBigIntSubtract (OSCTXT *pctxt, OSBigInt *result, const OSBigInt *arg1, const OSBigInt *arg2)
 This function is used to subtract one big integer value from another.
EXTERNRT int rtxBigIntMultiply (OSCTXT *pctxt, OSBigInt *result, const OSBigInt *arg1, const OSBigInt *arg2)
 This function is used to multiply two big integer values.

Detailed Description

Definition in file rtxBigInt.h.


Function Documentation

EXTERNRT 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.
EXTERNRT 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
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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.
EXTERNRT 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 0, 2, 8, 10, or 16. Zero must be used if string contains a prefix that identifies the radix (for example, 0x).
Returns:
Status of the operation, 0 = success, negative code if error.
EXTERNRT 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 0, 2, 8, 10, or 16. Zero must be used if string contains a prefix that identifies the radix (for example, 0x).
Returns:
Status of the operation, 0 = success, negative code if error.
EXTERNRT 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.
EXTERNRT 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
EXTERNRT 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.
EXTERNRT 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.