MOTION  0.01
Framework for mixed-protocol multi-party computation
Public Member Functions | List of all members
encrypto::motion::SubsetGate Class Referencefinal

obtains a subset of SIMD values of a share at provided position ids. Repeated position ids are allowed, meaning that the number of SIMD values of the output share may be greater than the number of SIMD values of the parent share. Each of the position ids must be smaller than the number of SIMD values of the parent share. More...

#include <subset_gate.h>

Inheritance diagram for encrypto::motion::SubsetGate:
Inheritance graph
[legend]
Collaboration diagram for encrypto::motion::SubsetGate:
Collaboration graph
[legend]

Public Member Functions

 SubsetGate (const SharePointer &parent, std::span< const std::size_t > position_ids)
 
 SubsetGate (const SharePointer &parent, std::vector< std::size_t > &&position_ids)
 
 ~SubsetGate ()=default
 
void EvaluateSetup () override
 
void EvaluateOnline () override
 
const SharePointer GetOutputAsShare ()
 
 SubsetGate ()=delete
 
 SubsetGate (const Gate &)=delete
 
- Public Member Functions inherited from encrypto::motion::OneGate
 ~OneGate () override=default
 
 OneGate (OneGate &)=delete
 
- Public Member Functions inherited from encrypto::motion::Gate
virtual ~Gate ()=default
 
const std::vector< WirePointer > & GetOutputWires () const
 
void Clear ()
 
void RegisterWaitingFor (std::size_t wire_id)
 
void SignalDependencyIsReady ()
 
bool AreDependenciesReady ()
 
void SetSetupIsReady ()
 
void SetOnlineIsReady ()
 
void WaitSetup () const
 
void WaitOnline () const
 
bool SetupIsReady () const
 
std::int64_t GetId () const
 
 Gate (Gate &)=delete
 

Additional Inherited Members

- Protected Member Functions inherited from encrypto::motion::OneGate
 OneGate (Backend &backend)
 
- Protected Member Functions inherited from encrypto::motion::Gate
 Gate (Backend &backend)
 
RegisterGetRegister ()
 
ConfigurationGetConfiguration ()
 
LoggerGetLogger ()
 
BaseProviderGetBaseProvider ()
 
MtProviderGetMtProvider ()
 
SpProviderGetSpProvider ()
 
SbProviderGetSbProvider ()
 
communication::CommunicationLayerGetCommunicationLayer ()
 
OtProviderGetOtProvider (const std::size_t i)
 
- Protected Attributes inherited from encrypto::motion::OneGate
std::vector< WirePointerparent_
 
- Protected Attributes inherited from encrypto::motion::Gate
std::vector< WirePointeroutput_wires_
 
Backendbackend_
 
std::int64_t gate_id_ = -1
 
std::unordered_set< std::size_t > wire_dependencies_
 
GateType gate_type_ = GateType::kInvalid
 
std::atomic< bool > setup_is_ready_ = false
 
std::atomic< bool > online_is_ready_ = false
 
std::atomic< bool > requires_online_interaction_ = false
 
std::atomic< bool > added_to_active_queue_ = false
 
FiberCondition setup_is_ready_condition_
 
FiberCondition online_is_ready_condition_
 
std::atomic< std::size_t > number_of_ready_dependencies_ = 0
 
bool own_output_wires_ {true}
 

Detailed Description

obtains a subset of SIMD values of a share at provided position ids. Repeated position ids are allowed, meaning that the number of SIMD values of the output share may be greater than the number of SIMD values of the parent share. Each of the position ids must be smaller than the number of SIMD values of the parent share.

Constructor & Destructor Documentation

◆ SubsetGate() [1/4]

encrypto::motion::SubsetGate::SubsetGate ( const SharePointer parent,
std::span< const std::size_t >  position_ids 
)

◆ SubsetGate() [2/4]

encrypto::motion::SubsetGate::SubsetGate ( const SharePointer parent,
std::vector< std::size_t > &&  position_ids 
)
Here is the call graph for this function:

◆ ~SubsetGate()

encrypto::motion::SubsetGate::~SubsetGate ( )
default

◆ SubsetGate() [3/4]

encrypto::motion::SubsetGate::SubsetGate ( )
delete

◆ SubsetGate() [4/4]

encrypto::motion::SubsetGate::SubsetGate ( const Gate )
delete

Member Function Documentation

◆ EvaluateOnline()

void encrypto::motion::SubsetGate::EvaluateOnline ( )
overridevirtual

Implements encrypto::motion::Gate.

Here is the call graph for this function:

◆ EvaluateSetup()

void encrypto::motion::SubsetGate::EvaluateSetup ( )
overridevirtual

Implements encrypto::motion::Gate.

Here is the call graph for this function:

◆ GetOutputAsShare()

const SharePointer encrypto::motion::SubsetGate::GetOutputAsShare ( )

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