|
ComputeFHE 1.0
General-Purpose Privacy-Preserving Computation Library for TFHE
|
Represents an encrypted integer. More...
#include <Einteger.h>


Public Member Functions | |
| Einteger () | |
| Default constructor. Initializes an empty or zero-valued encrypted integer. | |
| Einteger (int64_t d) | |
Constructs an Einteger from a plaintext int64_t. | |
| Einteger (size_t n_digits, bool is_signed) | |
| Constructs an Einteger with a specified number of bits and signedness. | |
| Einteger (int64_t d, size_t n_digits) | |
Constructs an Einteger from a plaintext int64_t with a specified number of bits. | |
| Einteger (uint64_t d, size_t n_digits) | |
Constructs an Einteger from a plaintext uint64_t with a specified number of bits. | |
| Einteger (const FixedPoint &fp, bool is_signed) | |
Constructs an Einteger from an existing FixedPoint object. | |
| Einteger (const Einteger &other) | |
| Copy constructor. | |
| virtual | ~Einteger () |
| Destructor. | |
| const FixedPoint & | getData () const |
Gets the underlying FixedPoint data. | |
| size_t | getSize () const |
| Gets the number of bits used to represent the encrypted integer. | |
| bool | isSigned () const |
| Checks if the encrypted integer is signed. | |
| virtual const Einteger | operator== (const Einteger &) const |
| Encrypted equality comparison with another Einteger. | |
| virtual const Einteger | operator!= (const Einteger &) const |
| Encrypted inequality comparison with another Einteger. | |
| virtual const Einteger | operator> (const Einteger &) const |
| Encrypted greater-than comparison with another Einteger. | |
| virtual const Einteger | operator>= (const Einteger &) const |
| Encrypted greater-than-or-equal comparison with another Einteger. | |
| virtual const Einteger | operator< (const Einteger &) const |
| Encrypted less-than comparison with another Einteger. | |
| virtual const Einteger | operator<= (const Einteger &) const |
| Encrypted less-than-or-equal comparison with another Einteger. | |
| virtual const Einteger | operator== (uint64_t) const |
Encrypted equality comparison with a plaintext uint64_t. | |
| virtual const Einteger | operator!= (uint64_t) const |
Encrypted inequality comparison with a plaintext uint64_t. | |
| virtual const Einteger | operator> (uint64_t) const |
Encrypted greater-than comparison with a plaintext uint64_t. | |
| virtual const Einteger | operator>= (uint64_t) const |
Encrypted greater-than-or-equal comparison with a plaintext uint64_t. | |
| virtual const Einteger | operator< (uint64_t) const |
Encrypted less-than comparison with a plaintext uint64_t. | |
| virtual const Einteger | operator<= (uint64_t) const |
Encrypted less-than-or-equal comparison with a plaintext uint64_t. | |
| virtual const Einteger | operator+ (const Einteger &) const |
| Encrypted addition with another Einteger. | |
| virtual const Einteger | operator+= (const Einteger &) |
| Encrypted addition assignment with another Einteger. | |
| virtual const Einteger | operator- (const Einteger &) const |
| Encrypted subtraction with another Einteger. | |
| virtual const Einteger | operator-= (const Einteger &) |
| Encrypted subtraction assignment with another Einteger. | |
| virtual const Einteger | operator* (const Einteger &) const |
| Encrypted multiplication with another Einteger. | |
| virtual const Einteger | operator*= (const Einteger &) |
| Encrypted multiplication assignment with another Einteger. | |
| virtual const Einteger | operator/ (const Einteger &) const |
| Encrypted division with another Einteger. | |
| virtual const Einteger | operator/= (const Einteger &) |
| Encrypted division assignment with another Einteger. | |
| virtual const Einteger | operator% (const Einteger &) const |
| Encrypted modulo with another Einteger. | |
| virtual const Einteger | operator%= (const Einteger &) |
| Encrypted modulo assignment with another Einteger. | |
| virtual const Einteger | operator+ (uint64_t) const |
Encrypted addition with a plaintext uint64_t. | |
| virtual const Einteger | operator+= (uint64_t) |
Encrypted addition assignment with a plaintext uint64_t. | |
| virtual const Einteger | operator- (uint64_t) const |
Encrypted subtraction with a plaintext uint64_t. | |
| virtual const Einteger | operator-= (uint64_t) |
Encrypted subtraction assignment with a plaintext uint64_t. | |
| virtual const Einteger | operator* (uint64_t) const |
Encrypted multiplication with a plaintext uint64_t. | |
| virtual const Einteger | operator*= (uint64_t) |
Encrypted multiplication assignment with a plaintext uint64_t. | |
| virtual const Einteger | operator/ (uint64_t) const |
Encrypted division with a plaintext uint64_t. | |
| virtual const Einteger | operator/= (uint64_t) |
Encrypted division assignment with a plaintext uint64_t. | |
| virtual const Einteger | operator% (uint64_t) const |
Encrypted modulo with a plaintext uint64_t. | |
| virtual const Einteger | operator%= (uint64_t) |
Encrypted modulo assignment with a plaintext uint64_t. | |
| const Einteger | operator- () const |
| Encrypted unary negation (two's complement). | |
| virtual const Einteger | operator& (const Einteger &) const |
| Encrypted bitwise AND with another Einteger. | |
| virtual const Einteger | operator&= (const Einteger &) |
| Encrypted bitwise AND assignment with another Einteger. | |
| virtual const Einteger | operator| (const Einteger &) const |
| Encrypted bitwise OR with another Einteger. | |
| virtual const Einteger | operator|= (const Einteger &) |
| Encrypted bitwise OR assignment with another Einteger. | |
| virtual const Einteger | operator^ (const Einteger &) const |
| Encrypted bitwise XOR with another Einteger. | |
| virtual const Einteger | operator^= (const Einteger &) |
| Encrypted bitwise XOR assignment with another Einteger. | |
| virtual const Einteger | operator& (uint64_t) const |
Encrypted bitwise AND with a plaintext uint64_t. | |
| virtual const Einteger | operator&= (uint64_t) |
Encrypted bitwise AND assignment with a plaintext uint64_t. | |
| virtual const Einteger | operator| (uint64_t) const |
Encrypted bitwise OR with a plaintext uint64_t. | |
| virtual const Einteger | operator|= (uint64_t) |
Encrypted bitwise OR assignment with a plaintext uint64_t. | |
| virtual const Einteger | operator^ (uint64_t) const |
Encrypted bitwise XOR with a plaintext uint64_t. | |
| virtual const Einteger | operator^= (uint64_t) |
Encrypted bitwise XOR assignment with a plaintext uint64_t. | |
| virtual const Einteger | operator! () const |
| Encrypted logical NOT. | |
| virtual const Einteger | operator~ () const |
| Encrypted bitwise NOT (one's complement). | |
| virtual const Einteger | operator&& (const Einteger &) const |
| Encrypted logical AND with another Einteger. | |
| virtual const Einteger | operator&& (uint64_t) const |
Encrypted logical AND with a plaintext uint64_t. | |
| virtual const Einteger | operator|| (const Einteger &) const |
| Encrypted logical OR with another Einteger. | |
| virtual const Einteger | operator|| (uint64_t) const |
Encrypted logical OR with a plaintext uint64_t. | |
| const Einteger | operator++ () |
| Pre-increment operator. Increments the encrypted integer by one. | |
| const Einteger | operator++ (int) |
| Post-increment operator. Increments the encrypted integer by one. | |
| const Einteger | operator-- () |
| Pre-decrement operator. Decrements the encrypted integer by one. | |
| const Einteger | operator-- (int) |
| Post-decrement operator. Decrements the encrypted integer by one. | |
| const Einteger | operator<< (int) const |
| Encrypted left shift. | |
| const Einteger | operator<<= (int) |
| Encrypted left shift assignment. | |
| const Einteger | operator>> (int) const |
| Encrypted right shift. | |
| const Einteger | operator>>= (int) |
| Encrypted right shift assignment. | |
| Einteger & | operator= (const Einteger &) |
| Assignment operator from another Einteger. | |
| Einteger & | operator= (uint64_t) |
Assignment operator from a plaintext uint64_t. | |
| virtual | operator bool () const |
| Explicit conversion to decrypted boolean. | |
| virtual | operator int8_t () const |
Explicit conversion to decrypted int8_t. | |
| virtual | operator uint8_t () const |
Explicit conversion to decrypted uint8_t. | |
| virtual | operator int16_t () const |
Explicit conversion to decrypted int16_t. | |
| virtual | operator uint16_t () const |
Explicit conversion to decrypted uint16_t. | |
| virtual | operator int32_t () const |
Explicit conversion to decrypted int32_t. | |
| virtual | operator uint32_t () const |
Explicit conversion to decrypted uint32_t. | |
| virtual | operator int64_t () const |
Explicit conversion to decrypted int64_t. | |
| virtual | operator uint64_t () const |
Explicit conversion to decrypted uint64_t. | |
| virtual | operator double () const |
Explicit conversion to decrypted double. | |
| template<class Archive > | |
| void | save (Archive &ar, std::uint32_t const version) const |
| template<class Archive > | |
| void | load (Archive &ar, std::uint32_t const version) |
| std::string | SerializedObjectName () const override |
Static Public Member Functions | |
| static FixedPoint | promote (const Einteger &a, size_t s) |
| Promotes or truncates an Einteger to a specific bit size. | |
| static uint32_t | SerializedVersion () |
Protected Member Functions | |
| void | _sync_var () |
| void | _desync_var () |
Static Protected Member Functions | |
| static int64_t | sign_extend (uint64_t d, size_t n_digits) |
| static bool | promote (const Einteger &a, const Einteger &b, FixedPoint &a_out, FixedPoint &b_out) |
Protected Attributes | |
| FixedPoint | data |
| size_t | size |
| bool | sign |
Static Protected Attributes | |
| static FixedPoint | cached_divident |
| static FixedPoint | cached_divisor |
| static FixedPoint | cached_quotient |
| static FixedPoint | cached_remainder |
Friends | |
| ostream & | operator<< (ostream &out, const Einteger &obj) |
Overloads the stream insertion operator by decrypting Einteger. | |
| const Einteger | operator== (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t equality comparison with Einteger. | |
| const Einteger | operator!= (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t inequality comparison with Einteger. | |
| const Einteger | operator> (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t greater-than comparison with Einteger. | |
| const Einteger | operator>= (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t greater-than-or-equal comparison with Einteger. | |
| const Einteger | operator< (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t less-than comparison with Einteger. | |
| const Einteger | operator<= (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t less-than-or-equal comparison with Einteger. | |
| const Einteger | operator+ (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t addition with Einteger. | |
| const Einteger | operator- (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t subtraction with Einteger. | |
| const Einteger | operator* (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t multiplication with Einteger. | |
| const Einteger | operator/ (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t division with Einteger. | |
| const Einteger | operator% (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t modulo with Einteger. | |
| const Einteger | operator& (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t bitwise AND with Einteger. | |
| const Einteger | operator| (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t bitwise OR with Einteger. | |
| const Einteger | operator^ (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t bitwise XOR with Einteger. | |
| const Einteger | operator&& (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t logical AND with Einteger. | |
| const Einteger | operator|| (uint64_t a, const Einteger &b) |
Friend operator for plaintext uint64_t logical OR with Einteger. | |
Represents an encrypted integer.
This class provides a high-level interface for performing arithmetic, logical, and comparison operations on encrypted integer values.
| computefhe::Einteger::Einteger | ( | int64_t | d | ) |
Constructs an Einteger from a plaintext int64_t.
| d | The plaintext integer value. |
Constructs an Einteger with a specified number of bits and signedness.
| n_digits | The number of bits for the integer. |
| is_signed | True if the integer is signed, false otherwise. |
Constructs an Einteger from a plaintext int64_t with a specified number of bits.
| d | The plaintext integer value. |
| n_digits | The number of bits for the integer. |
Constructs an Einteger from a plaintext uint64_t with a specified number of bits.
| d | The plaintext unsigned integer value. |
| n_digits | The number of bits for the integer. |
| computefhe::Einteger::Einteger | ( | const FixedPoint & | fp, |
| bool | is_signed | ||
| ) |
Constructs an Einteger from an existing FixedPoint object.
| fp | The FixedPoint object representing the encrypted bits. |
| is_signed | True if the integer is signed, false otherwise. |
Copy constructor.
| other | The Einteger object to copy from. |
| const FixedPoint & computefhe::Einteger::getData | ( | ) | const |
Gets the underlying FixedPoint data.
FixedPoint object. | size_t computefhe::Einteger::getSize | ( | ) | const |
Gets the number of bits used to represent the encrypted integer.
| bool computefhe::Einteger::isSigned | ( | ) | const |
Checks if the encrypted integer is signed.
Explicit conversion to decrypted boolean.
Explicit conversion to decrypted double.
double. Reimplemented in computefhe::Efixedpoint.
Explicit conversion to decrypted int16_t.
int16_t. Explicit conversion to decrypted int32_t.
int32_t. Explicit conversion to decrypted int64_t.
int64_t. Explicit conversion to decrypted int8_t.
int8_t. Explicit conversion to decrypted uint16_t.
uint16_t. Explicit conversion to decrypted uint32_t.
uint32_t. Explicit conversion to decrypted uint64_t.
uint64_t. Explicit conversion to decrypted uint8_t.
uint8_t. Encrypted logical NOT.
Encrypted inequality comparison with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
|
virtual |
Encrypted inequality comparison with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted modulo with a plaintext uint64_t.
| val | The plaintext unsigned integer (divisor). |
Encrypted modulo assignment with a plaintext uint64_t.
| val | The plaintext unsigned integer (divisor). |
Encrypted bitwise AND with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Encrypted logical AND with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Encrypted bitwise AND assignment with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Encrypted multiplication with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted multiplication with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted multiplication assignment with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted multiplication assignment with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted addition with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted addition with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Pre-increment operator. Increments the encrypted integer by one.
Post-increment operator. Increments the encrypted integer by one.
Encrypted addition assignment with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted addition assignment with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted unary negation (two's complement).
Encrypted subtraction with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted subtraction with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Pre-decrement operator. Decrements the encrypted integer by one.
Post-decrement operator. Decrements the encrypted integer by one.
Encrypted subtraction assignment with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted subtraction assignment with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted division with another Einteger.
| other | The other encrypted integer (divisor). |
Reimplemented in computefhe::Efixedpoint.
Encrypted division with a plaintext uint64_t.
| val | The plaintext unsigned integer (divisor). |
Reimplemented in computefhe::Efixedpoint.
Encrypted division assignment with another Einteger.
| other | The other encrypted integer (divisor). |
Reimplemented in computefhe::Efixedpoint.
Encrypted division assignment with a plaintext uint64_t.
| val | The plaintext unsigned integer (divisor). |
Reimplemented in computefhe::Efixedpoint.
Encrypted less-than comparison with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted less-than comparison with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted left shift.
| shift | The number of positions to shift. |
Encrypted left shift assignment.
| shift | The number of positions to shift. |
Encrypted less-than-or-equal comparison with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted less-than-or-equal comparison with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Assignment operator from a plaintext uint64_t.
| val | The plaintext unsigned integer to assign. |
Encrypted equality comparison with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted equality comparison with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted greater-than comparison with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted greater-than comparison with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted greater-than-or-equal comparison with another Einteger.
| other | The other encrypted integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted greater-than-or-equal comparison with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Reimplemented in computefhe::Efixedpoint.
Encrypted right shift.
| shift | The number of positions to shift. |
Encrypted right shift assignment.
| shift | The number of positions to shift. |
Encrypted bitwise XOR with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Encrypted bitwise XOR assignment with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Encrypted bitwise OR with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Encrypted bitwise OR assignment with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Encrypted logical OR with a plaintext uint64_t.
| val | The plaintext unsigned integer. |
Encrypted bitwise NOT (one's complement).
|
static |
Promotes or truncates an Einteger to a specific bit size.
| a | The source integer. |
| s | The target bit size. |