ComputeFHE 1.0
General-Purpose Privacy-Preserving Computation Library for TFHE
Loading...
Searching...
No Matches
BaseALUSimulator.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2026 Faris Serdar Taşel <fst@cankaya.edu.tr>
3 * SPDX-FileCopyrightText: 2026 Efe Çiftci <efeciftci@cankaya.edu.tr>
4 *
5 * SPDX-License-Identifier: MIT
6 */
7
13#pragma once
14#include <computefhe/BaseALU.h>
16
17using namespace lbcrypto;
18
19namespace computefhe {
20 class ComputeFHE;
21
29 class BaseALUSimulator : virtual public BaseALU {
30 protected:
31 uint num_bs = 0;
32 uint num_not = 0;
33 uint num_andor = 0;
34 uint num_xorxnor = 0;
35 uint num_xor3 = 0;
36 uint num_maj = 0;
37 uint num_ma = 0;
38 uint num_mac = 0;
39 uint num_ds = 0;
40 uint num_mux = 0;
41
42 public:
44
45 virtual void PrintStats();
46 virtual void ResetStats();
47
48 virtual uint GetNumBS();
49
50 virtual BinaryDigit FHE_False();
51 virtual BinaryDigit FHE_True();
52 virtual BinaryDigit FHE_AND(const BinaryDigit &a, const BinaryDigit &b);
53 virtual BinaryDigit FHE_NAND(const BinaryDigit &a,
54 const BinaryDigit &b);
55 virtual BinaryDigit FHE_OR(const BinaryDigit &a, const BinaryDigit &b);
56 virtual BinaryDigit FHE_NOR(const BinaryDigit &a, const BinaryDigit &b);
57 virtual BinaryDigit FHE_XOR(const BinaryDigit &a, const BinaryDigit &b);
58 virtual BinaryDigit FHE_XNOR(const BinaryDigit &a,
59 const BinaryDigit &b);
60 virtual BinaryDigit FHE_NOT(const BinaryDigit &a);
61 virtual BinaryDigit FHE_MUX(const BinaryDigit &s, const BinaryDigit &a,
62 const BinaryDigit &b);
63 };
64} // namespace computefhe
Defines the abstract base class for FHE-based Arithmetic Logic Units.
Defines the fundamental bit-level and bit-vector data structures for FHE operations.
Abstract base class for functional ALU simulators.
Definition BaseALUSimulator.h:29
Abstract base class for FHE-based Arithmetic Logic Units.
Definition BaseALU.h:30
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