ABY Framework  1.0
Arithmetic Bool Yao Framework
 All Classes Files Functions Variables Enumerations Enumerator Macros
Public Member Functions | List of all members
ArithmeticCircuit Class Reference

#include <arithmeticcircuits.h>

Inheritance diagram for ArithmeticCircuit:
Inheritance graph
[legend]
Collaboration diagram for ArithmeticCircuit:
Collaboration graph
[legend]

Public Member Functions

 ArithmeticCircuit (ABYCircuit *aby, e_sharing context, e_role myrole, uint32_t bitlen)
 
void Init ()
 
void Cleanup ()
 
void Reset ()
 
uint32_t PutMULGate (uint32_t left, uint32_t right)
 
uint32_t PutADDGate (uint32_t left, uint32_t right)
 
uint32_t PutINGate (uint32_t nvals, e_role src)
 
sharePutINGate (uint32_t nvals, uint64_t val, uint32_t bitlen, e_role role)
 
sharePutINGate (uint32_t nvals, uint8_t *val, uint32_t bitlen, e_role role)
 
sharePutINGate (uint32_t nvals, uint32_t *val, uint32_t bitlen, e_role role)
 
template<class T >
uint32_t PutINGate (uint32_t nvals, T val)
 
template<class T >
uint32_t PutINGate (uint32_t nvals, T val, e_role role)
 
uint32_t PutOUTGate (uint32_t parent, e_role dst)
 
sharePutOUTGate (share *parent, e_role dst)
 
sharePutCallbackGate (share *in, uint32_t rounds, void(*callback)(GATE *, void *), void *infos, uint32_t nvals)
 
uint32_t PutINVGate (uint32_t parentid)
 
uint32_t PutCONVGate (vector< uint32_t > &parentids)
 
sharePutADDGate (share *ina, share *inb)
 
sharePutSUBGate (share *ina, share *inb)
 
sharePutANDGate (share *ina, share *inb)
 
sharePutXORGate (share *ina, share *inb)
 
sharePutSubGate (share *ina, share *inb)
 
sharePutMULGate (share *ina, share *inb)
 
sharePutGEGate (share *ina, share *inb)
 
sharePutEQGate (share *ina, share *inb)
 
sharePutMUXGate (share *ina, share *inb, share *sel)
 
sharePutY2BGate (share *ina)
 
sharePutB2YGate (share *ina)
 
sharePutA2YGate (share *ina)
 
sharePutANDVecGate (share *ina, share *inb)
 
uint32_t PutB2AGate (vector< uint32_t > ina)
 
sharePutB2AGate (share *ina)
 
uint32_t GetNumMULGates ()
 
uint32_t GetNumCONVGates ()
 
sharePutCONSGate (uint32_t nvals, UGATE_T val, uint32_t bitlen)
 
sharePutCONSGate (uint32_t nvals, uint8_t *val, uint32_t bitlen)
 
sharePutCONSGate (uint32_t nvals, uint32_t *val, uint32_t bitlen)
 
uint32_t PutConstantGate (UGATE_T val, uint32_t nvals=1)
 
uint32_t GetMaxCommunicationRounds ()
 
- Public Member Functions inherited from Circuit
 Circuit (ABYCircuit *aby, e_sharing context, e_role myrole, uint32_t bitlen, e_circuit circ)
 
virtual ~Circuit ()
 
void Init ()
 
void Cleanup ()
 
void Reset ()
 
uint32_t GetShareBitLen ()
 
uint32_t GetMaxDepth ()
 
deque< uint32_t > GetLocalQueueOnLvl (uint32_t lvl)
 
deque< uint32_t > GetInteractiveQueueOnLvl (uint32_t lvl)
 
uint32_t GetNumLocalLayers ()
 
uint32_t GetNumInteractiveLayers ()
 
uint32_t GetNumInputBitsForParty (e_role party)
 
uint32_t GetNumOutputBitsForParty (e_role party)
 
deque< uint32_t > GetInputGatesForParty (e_role party)
 
deque< uint32_t > GetOutputGatesForParty (e_role party)
 
e_sharing GetContext ()
 
uint32_t GetNumGates ()
 
UGATE_T * GetOutputGateValue (uint32_t gateid)
 
uint32_t GetOutputGateValue (uint32_t gateid, UGATE_T *&outval)
 
template<class T >
void GetOutputGateValue (uint32_t gateid, T &val)
 
uint32_t GetNumVals (uint32_t gateid)
 
sharePutCombinerGate (share *ina)
 
sharePutSplitterGate (share *ina)
 
sharePutRepeaterGate (uint32_t nvals, share *ina)
 
template<class T >
uint32_t PutINGate (uint32_t nvals, T val)
 
template<class T >
uint32_t PutINGate (uint32_t nvals, T val, e_role role)
 
e_circuit GetCircuitType ()
 

Additional Inherited Members

- Protected Member Functions inherited from Circuit
void UpdateInteractiveQueue (share *gateid)
 
void UpdateLocalQueue (share *gateid)
 
- Protected Attributes inherited from Circuit
ABYCircuitm_cCircuit
 
GATEm_pGates
 
e_sharing m_eContext
 
e_circuit m_eCirctype
 
e_role m_eMyRole
 
uint32_t m_nShareBitLen
 
uint32_t m_nMaxDepth
 
vector< deque< uint32_t > > m_vLocalQueueOnLvl
 
vector< deque< uint32_t > > m_vInteractiveQueueOnLvl
 
vector< deque< uint32_t > > m_vInputGates
 
vector< deque< uint32_t > > m_vOutputGates
 
vector< uint32_t > m_vInputBits
 
vector< uint32_t > m_vOutputBits
 
uint32_t m_nMULs
 
uint32_t m_nCONVGates
 
uint32_t m_nGates
 
uint32_t m_nRoundsAND
 
uint32_t m_nRoundsXOR
 
vector< uint32_t > m_nRoundsIN
 
vector< uint32_t > m_nRoundsOUT
 
const deque< uint32_t > EMPTYQUEUE
 

Detailed Description

Arithmetic Circuit class.


The documentation for this class was generated from the following files: