pub enum IRTransform {
AppendAdd(TransformNodeIndex, TransformNodeIndex),
AppendMultiply(TransformNodeIndex, TransformNodeIndex),
AppendInputCiphertext(usize),
AppendInputPlaintext(usize),
AppendOutputCiphertext(TransformNodeIndex),
AppendRelinearize(TransformNodeIndex),
AppendSub(TransformNodeIndex, TransformNodeIndex),
RemoveNode(TransformNodeIndex),
AppendNegate(TransformNodeIndex),
RemoveEdge(TransformNodeIndex, TransformNodeIndex),
AddEdge(TransformNodeIndex, TransformNodeIndex, EdgeInfo),
}
Expand description
A transform for an FheProgram
. Callbacks in
FheProgram::forward_traverse
and
FheProgram::reverse_traverse
should emit these to update the
graph.
Each of these variants use a TransformNodeIndex
to reference either a node that
currently exists in the graph (i.e. TransformNodeIndex::NodeIndex
), or a node that
will result from a previous transform in the TransformList
. I.e. TransformNodeIndex::DeferredIndex
Variants
AppendAdd(TransformNodeIndex, TransformNodeIndex)
Appends an add node.
AppendMultiply(TransformNodeIndex, TransformNodeIndex)
Appends a multiply node.
AppendInputCiphertext(usize)
Appends an input ciphertext
AppendInputPlaintext(usize)
Appends an input plaintext
AppendOutputCiphertext(TransformNodeIndex)
Appends an output ciphertext node.
AppendRelinearize(TransformNodeIndex)
Appends a relinearize node.
AppendSub(TransformNodeIndex, TransformNodeIndex)
Appends a subtract node.
RemoveNode(TransformNodeIndex)
Removes a node.
AppendNegate(TransformNodeIndex)
Appends a negate node.
RemoveEdge(TransformNodeIndex, TransformNodeIndex)
Remove a graph edge between two nodes..
AddEdge(TransformNodeIndex, TransformNodeIndex, EdgeInfo)
Add a graph edge between two nodes.
Trait Implementations
sourceimpl Clone for IRTransform
impl Clone for IRTransform
sourcefn clone(&self) -> IRTransform
fn clone(&self) -> IRTransform
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
Auto Trait Implementations
impl RefUnwindSafe for IRTransform
impl Send for IRTransform
impl Sync for IRTransform
impl Unpin for IRTransform
impl UnwindSafe for IRTransform
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more