82 virtual uint Get_CtCtAdd_Cost(
size_t n_bits);
83 virtual uint Get_CtCtAddNC_Cost(
size_t n_bits);
84 virtual uint Get_CtCtSubC_Cost(
size_t n_bits);
85 virtual uint Get_CtPtAddC_Cost(
size_t n_bits);
86 virtual uint Get_PtCtSub_Cost(
size_t n_bits);
87 virtual uint Get_CtPtSubCNC_Cost(
size_t n_bits);
88 virtual uint Get_CtNeg_Cost(
size_t n_bits);
Defines the standard ALU implementation using fundamental FHE logic gates.
Optimized ALU implementation using specialized multi-input FHE gates.
Definition ALUOptimized.h:28
virtual FixedPoint PAddCNC(const FixedPoint &a, const FixedPoint &pb)
Plaintext addition with carry, but no update to internal state.
virtual BinaryDigit Gate_MAJ(const BinaryDigit &a, const BinaryDigit &b, const BinaryDigit &c)
Majority gate: returns true if at least two inputs are true.
virtual BinaryDigit CmpLTEq_U(const FixedPoint &a, const FixedPoint &b)
Unsigned Less-Than or Equal.
virtual FixedPoint Mul(const FixedPoint &a, const FixedPoint &b)
Standard multiplication (truncated to input width).
virtual void Swap_if(const BinaryDigit &cond, BinaryDigit &a, BinaryDigit &b)
Conditional swap of two bits if 'cond' is true.
virtual BinaryDigit Gate_XOR3(const BinaryDigit &a, const BinaryDigit &b, const BinaryDigit &c)
3-input XOR gate.
virtual FixedPoint PSubC(const FixedPoint &pa, const FixedPoint &b)
Plaintext subtraction with carry.
virtual FixedPoint Neg(const FixedPoint &a)
Arithmetic negation: result = -a.
virtual BinaryDigit CmpGT_U(const FixedPoint &a, const FixedPoint &b)
Unsigned Greater-Than.
virtual BinaryDigit Gate_DigitSum(const BinaryDigit &e1, const BinaryDigit &e0, const BinaryDigit &s0)
Performs bitwise digit summation logic.
virtual BinaryDigit Gate_MulAdd(const BinaryDigit &m, const BinaryDigit &a, const BinaryDigit &b, BinaryDigit *carry_out=nullptr)
Multiplies two digits and adds a third, optionally returning carry out.
virtual FixedPoint PAddC(const FixedPoint &a, const FixedPoint &pb)
Plaintext addition with carry.
virtual FixedPoint PSubNC(const FixedPoint &pa, const FixedPoint &b)
Plaintext subtraction without updating internal carry.
virtual FixedPoint PSubCNC(const FixedPoint &pa, const FixedPoint &b)
Plaintext subtraction with carry, but no update to internal state.
virtual void FullAdder(const BinaryDigit &a, const BinaryDigit &b, const BinaryDigit &c, BinaryDigit &sum, BinaryDigit &carry_out)
1-bit full adder with explicit carry-in.
virtual FixedPoint FullMul(const FixedPoint &a, const FixedPoint &b)
Performs full multiplication resulting in potentially larger bit-width.
virtual FixedPoint PSub(const FixedPoint &pa, const FixedPoint &b)
Plaintext subtraction: result = pa - b.
virtual FixedPoint PAdd(const FixedPoint &a, const FixedPoint &pb)
Plaintext addition: result = a + pb.
virtual FixedPoint PAddNC(const FixedPoint &a, const FixedPoint &pb)
Plaintext addition without updating internal carry.
Standard ALU implementation using fundamental FHE logic gates.
Definition ALUStandard.h:26
The core manager class for the ComputeFHE library.
Definition ComputeFHE.h:68
A proxy-object representing a single bit that can behave as either a ciphertext or a plaintext.
Definition FixedPoint.h:35
A bit-vector representation of an encrypted or plaintext word.
Definition FixedPoint.h:118