mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 21:26:41 +01:00
Enables external circuits to be called
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<4>),
|
||||
B1(BitCircuit<8>),
|
||||
@@ -72,16 +72,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 32usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
u32::BITS as usize
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 64;
|
||||
const OUTPUT_BITS: usize = 32;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 32usize> = Circuit([
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<4>),
|
||||
B1(BitCircuit<4>),
|
||||
@@ -72,16 +72,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 32usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
u32::BITS as usize
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 64;
|
||||
const OUTPUT_BITS: usize = 32;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 32usize> = Circuit([
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<4>),
|
||||
B1(BitCircuit<4>),
|
||||
@@ -72,16 +72,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 32usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
u32::BITS as usize
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 64;
|
||||
const OUTPUT_BITS: usize = 32;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 32usize> = Circuit([
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<12>),
|
||||
B1(BitCircuit<18>),
|
||||
@@ -72,16 +72,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 32usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
u32::BITS as usize
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 37;
|
||||
const OUTPUT_BITS: usize = 32;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 32usize> = Circuit([
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<256>),
|
||||
}
|
||||
@@ -10,16 +10,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 1usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
1
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 64;
|
||||
const OUTPUT_BITS: usize = 1;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 1usize> = Circuit([AnyBitCircuit::B0(BitCircuit::new(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<256>),
|
||||
}
|
||||
@@ -10,16 +10,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 1usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
1
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 64;
|
||||
const OUTPUT_BITS: usize = 1;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 1usize> = Circuit([AnyBitCircuit::B0(BitCircuit::new(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<192>),
|
||||
B1(BitCircuit<186>),
|
||||
@@ -72,16 +72,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 32usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
u32::BITS as usize
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 37;
|
||||
const OUTPUT_BITS: usize = 32;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 32usize> = Circuit([
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<192>),
|
||||
B1(BitCircuit<192>),
|
||||
@@ -72,16 +72,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 32usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
u32::BITS as usize
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 37;
|
||||
const OUTPUT_BITS: usize = 32;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 32usize> = Circuit([
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<4>),
|
||||
B1(BitCircuit<8>),
|
||||
@@ -72,16 +72,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 32usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
u32::BITS as usize
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 64;
|
||||
const OUTPUT_BITS: usize = 32;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 32usize> = Circuit([
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node};
|
||||
use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitFamily, BitCircuitInfo, Circuit, Node};
|
||||
pub(crate) enum AnyBitCircuit {
|
||||
B0(BitCircuit<4>),
|
||||
B1(BitCircuit<4>),
|
||||
@@ -72,16 +72,9 @@ impl BitCircuitInfo for AnyBitCircuit {
|
||||
}
|
||||
}
|
||||
|
||||
impl GetBitCircuitInfo<u32> for Circuit<AnyBitCircuit, 32usize> {
|
||||
fn input_size(&self) -> usize {
|
||||
2 * u32::BITS as usize
|
||||
}
|
||||
fn output_size(&self) -> usize {
|
||||
u32::BITS as usize
|
||||
}
|
||||
fn get_circuit(&self, bit: usize) -> (&[Node], usize) {
|
||||
self.0[bit].info()
|
||||
}
|
||||
impl BitCircuitFamily for AnyBitCircuit {
|
||||
const INPUT_BITS: usize = 64;
|
||||
const OUTPUT_BITS: usize = 32;
|
||||
}
|
||||
|
||||
pub(crate) static OUTPUT_CIRCUITS: Circuit<AnyBitCircuit, 32usize> = Circuit([
|
||||
|
||||
Reference in New Issue
Block a user