Struct ciphercore_base::ops::multiplexer::Mux
source · [−]pub struct Mux {}
Expand description
A structure that defines the custom operation Mux that takes three inputs a, b, c and returns b if a is 1 or c if a is 0.
The inputs should be arrays of bitstrings. This operation is applied elementwise.
If input shapes are different, the broadcasting rules are applied (see the NumPy broadcasting rules).
For example, if a,b,c are of shapes [2,3]
, [1,3]
and [2,1]
, the resulting array has shape [2,3]
.
To use this and other custom operations in computation graphs, see Graph::custom_op.
Custom operation arguments
- Node containing a binary array or scalar
- Node containing a binary array or scalar that will be chosen if the first input is 1
- Node containing a binary array or scalar that will be chosen if the first input is 0
Custom operation returns
New Mux node
Example
let c = create_context().unwrap();
let g = c.create_graph().unwrap();
let t1 = array_type(vec![2, 3], BIT);
let t2 = array_type(vec![3], BIT);
let n1 = g.input(t1.clone()).unwrap();
let n2 = g.input(t1.clone()).unwrap();
let n3 = g.input(t2.clone()).unwrap();
let n4 = g.custom_op(CustomOperation::new(Mux {}), vec![n1, n2, n3]).unwrap();
Trait Implementations
sourceimpl CustomOperationBody for Mux
impl CustomOperationBody for Mux
sourceimpl<'de> Deserialize<'de> for Mux
impl<'de> Deserialize<'de> for Mux
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Mux
impl StructuralEq for Mux
impl StructuralPartialEq for Mux
Auto Trait Implementations
impl RefUnwindSafe for Mux
impl Send for Mux
impl Sync for Mux
impl Unpin for Mux
impl UnwindSafe for Mux
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
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.