![]() |
Cayley
Pseudo-Random Bits from Finite Groups
|
The extensible unsigned integer class. More...
#include <uintx_t.h>
Public Member Functions | |
| uintx_t () | |
| Constructor. More... | |
| uintx_t (int) | |
| Constructor. More... | |
| uintx_t (const char *) | |
| Constructor. More... | |
| uintx_t (const uintx_t &) | |
| Copy constructor. More... | |
| ~uintx_t () | |
| Destructor. | |
| std::string | GetString () const |
| Get as string. More... | |
| uintx_t & | operator= (const uintx_t &) |
| Assignment. More... | |
| uintx_t & | operator= (const int) |
| Assignment. More... | |
| uintx_t & | operator= (const char *) |
| Assignment. More... | |
| uintx_t & | operator+= (const uintx_t &) |
| Add to. More... | |
| uintx_t & | operator+= (const int &) |
| Add to. More... | |
| uintx_t & | operator *= (const uintx_t &) |
| Multiply by. More... | |
| uintx_t & | operator<<= (const int) |
| Left shift by. More... | |
| uintx_t & | operator>>= (const int) |
| Right shift by. More... | |
| uintx_t & | operator-= (const uintx_t &) |
| Subtract from. More... | |
| uintx_t & | operator/= (const uintx_t &) |
| Divide by. More... | |
| uintx_t & | operator%= (const uintx_t &) |
| Remainder. More... | |
| operator uint32_t () | |
| Cast to uint32_t. More... | |
| operator uint64_t () | |
| Cast to uint64_t. More... | |
Private Member Functions | |
| void | loadstring (const char *string) |
| Load hex string. More... | |
| void | reallocate (const int s) |
| Reallocate space for s words. More... | |
| void | grow (const int s) |
| Grow space for s words. More... | |
| void | normalize () |
| Remove leading zero words. More... | |
| int | bitcount () |
| Number of bits. More... | |
Private Attributes | |
| uint32_t * | m_pData |
| Array of 32-bit words, least significant first. | |
| int | m_nSize |
| Number of words in m_pData. | |
| uintx_t::uintx_t | ( | ) |
Void constructor.
Definition at line 19 of file uintx_t.cpp.
| uintx_t::uintx_t | ( | int | i | ) |
| uintx_t::uintx_t | ( | const char * | string | ) |
String constructor.
| string | String containing initial value in hexadecimal. |
Definition at line 33 of file uintx_t.cpp.
| uintx_t::uintx_t | ( | const uintx_t & | x | ) |
Copy constructor.
| x | Extensible unsigned integer to be copied. |
Definition at line 48 of file uintx_t.cpp.
|
private |
Compute the number of significant bits in the value stored.
Definition at line 222 of file uintx_t.cpp.
| std::string uintx_t::GetString | ( | ) | const |
Convert to a hexadecimal string.
Definition at line 72 of file uintx_t.cpp.
|
private |
Increase the amount of space allocated while keeping the value stored.
| s | Number of words to increase to. |
Definition at line 121 of file uintx_t.cpp.
|
private |
Set the value stored to a hex value.
| string | A null-terminated string containing a hex value. |
Definition at line 177 of file uintx_t.cpp.
|
private |
Minimize the amount of storage by removing the leading zero words and reallocating a smaller amount of space if possible.
Definition at line 157 of file uintx_t.cpp.
Multiply by a extensible unsigned integer.
| y | A extensible unsigned integer. |
Definition at line 766 of file uintx_t.cpp.
| uintx_t::operator uint32_t | ( | ) |
Definition at line 143 of file uintx_t.cpp.
| uintx_t::operator uint64_t | ( | ) |
Construct a 64-bit unsigned integer from the two least-significant words.
Definition at line 150 of file uintx_t.cpp.
Remainder after dividing by a extensible unsigned integer.
| y | A extensible unsigned integer. |
Definition at line 900 of file uintx_t.cpp.
Add a extensible unsigned integer.
| y | A extensible unsigned integer. |
Definition at line 307 of file uintx_t.cpp.
| uintx_t & uintx_t::operator+= | ( | const int & | y | ) |
Add an integer.
| y | An integer. |
Definition at line 298 of file uintx_t.cpp.
Subtract a extensible unsigned integer.
| y | A extensible unsigned integer. |
Definition at line 790 of file uintx_t.cpp.
Divide by a extensible unsigned integer.
| y | A extensible unsigned integer. |
Definition at line 870 of file uintx_t.cpp.
| uintx_t & uintx_t::operator<<= | ( | const int | distance | ) |
Left-shift this.
| distance | Number of bits to left-shift by. |
Definition at line 528 of file uintx_t.cpp.
Assign a extensible unsigned integer.
| x | Extensible unsigned integer to be copied. |
Definition at line 247 of file uintx_t.cpp.
| uintx_t & uintx_t::operator= | ( | const int | i | ) |
Assign an integer.
| i | Integer to be copied. |
Definition at line 261 of file uintx_t.cpp.
| uintx_t & uintx_t::operator= | ( | const char * | s | ) |
Assign a hex value from a null-terminated string.
| s | A null-terminated string containing a hex value. |
Definition at line 271 of file uintx_t.cpp.
| uintx_t & uintx_t::operator>>= | ( | const int | distance | ) |
Right-shift this.
| distance | Number of bits to right-shift by. |
Definition at line 576 of file uintx_t.cpp.
|
private |
Change the number of words allocated and zero out the value stored.
| s | Number of words to allocate. |
Definition at line 107 of file uintx_t.cpp.
|
friend |
Logical AND of a extensible unsigned integer and an integer.
| x | A extensible unsigned integer. |
| y | A word. |
Definition at line 647 of file uintx_t.cpp.
Logical AND of two extensible unsigned integers.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer |
Definition at line 633 of file uintx_t.cpp.
Multiply two extensible unsigned integers.
| y | A extensible unsigned integer. |
| z | A extensible unsigned integer |
Definition at line 686 of file uintx_t.cpp.
Multiply a extensible unsigned integer by an integer.
| x | A extensible unsigned integer. |
| y | An integer. |
Definition at line 703 of file uintx_t.cpp.
Multiply an integer by a extensible unsigned integer.
| x | An integer. |
| y | A extensible unsigned integer. |
Definition at line 726 of file uintx_t.cpp.
Multiply a extensible unsigned integer by an unsigned integer.
| x | A extensible unsigned integer. |
| y | An unsigned integer. |
Definition at line 735 of file uintx_t.cpp.
Multiply an unsigned integer by a extensible unsigned integer.
| x | An unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 758 of file uintx_t.cpp.
Unequality test for two extensible unsigned integers.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 495 of file uintx_t.cpp.
|
friend |
Unequality test for a extensible unsigned integer and an unsigned integer.
| x | A extensible unsigned integer. |
| y | An unsigned integer. |
Definition at line 504 of file uintx_t.cpp.
|
friend |
Unequality test for an unsigned integer and a extensible unsigned integer.
| x | An unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 513 of file uintx_t.cpp.
Remainder after dividing a extensible unsigned integer by a extensible unsigned integer.
| y | A extensible unsigned integer. |
| z | A extensible unsigned integer. |
Definition at line 880 of file uintx_t.cpp.
Remainder after dividing a extensible unsigned integer by an unsigned integer.
| y | A extensible unsigned integer. |
| z | An unsigned integer. |
Definition at line 909 of file uintx_t.cpp.
Add a pair of extensible unsigned integers.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 290 of file uintx_t.cpp.
Subtract a extensible unsigned integer from a extensible unsigned integer.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer |
Definition at line 782 of file uintx_t.cpp.
Divide a extensible unsigned integer by a extensible unsigned integer.
| y | A extensible unsigned integer. |
| z | An unsigned integer. |
Definition at line 832 of file uintx_t.cpp.
Divide a extensible unsigned integer by an unsigned integer.
| y | A extensible unsigned integer. |
| z | An unsigned integer. |
Definition at line 862 of file uintx_t.cpp.
Less than test for two extensible unsigned integers.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 424 of file uintx_t.cpp.
|
friend |
Less than test for a extensible unsigned integer and an integer.
| x | A extensible unsigned integer. |
| y | An integer. |
Definition at line 433 of file uintx_t.cpp.
Left-shift a extensible unsigned integer.
| x | A extensible unsigned integer. |
| d | Number of bits to left-shift by. |
Definition at line 568 of file uintx_t.cpp.
Less than or equal to test for two extensible unsigned integers.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 442 of file uintx_t.cpp.
|
friend |
Less than or equal to test for a extensible unsigned integer and an integer.
| x | A extensible unsigned integer. |
| y | An integer. |
Definition at line 451 of file uintx_t.cpp.
Equality test for two extensible unsigned integers.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 460 of file uintx_t.cpp.
|
friend |
Equality test for a extensible unsigned integer and an unsigned integer.
| x | A extensible unsigned integer. |
| y | An unsigned integer. |
Definition at line 477 of file uintx_t.cpp.
|
friend |
Equality test for an unsigned integer and a extensible unsigned integer.
| x | An unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 486 of file uintx_t.cpp.
Greater than test for two extensible unsigned integers.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 371 of file uintx_t.cpp.
|
friend |
Greater than test for a extensible unsigned integer and an integer.
| x | A extensible unsigned integer. |
| y | An integer. |
Definition at line 388 of file uintx_t.cpp.
Greater than or equal to test for two extensible unsigned integers.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer. |
Definition at line 397 of file uintx_t.cpp.
|
friend |
Greater than or equal to test for a extensible unsigned integer and an integer.
| x | A extensible unsigned integer. |
| y | An integer. |
Definition at line 415 of file uintx_t.cpp.
Right-shift a extensible unsigned integer.
| x | A extensible unsigned integer. |
| d | Number of bits to right-shift by. |
Definition at line 617 of file uintx_t.cpp.
|
friend |
Logical OR of a extensible unsigned integer and an integer.
| x | A extensible unsigned integer. |
| y | A word. |
Definition at line 670 of file uintx_t.cpp.
Logical OR of two extensible unsigned integers.
| x | A extensible unsigned integer. |
| y | A extensible unsigned integer |
Definition at line 656 of file uintx_t.cpp.
1.8.15