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 input a
should be arrays of bitstrings. The inputs b
and c
must have the same type. 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§
Source§impl CustomOperationBody for Mux
impl CustomOperationBody for Mux
Source§impl<'de> Deserialize<'de> for Mux
impl<'de> Deserialize<'de> for Mux
Source§fn 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 StructuralPartialEq for Mux
Auto Trait Implementations§
impl Freeze for Mux
impl RefUnwindSafe for Mux
impl Send for Mux
impl Sync for Mux
impl Unpin for Mux
impl UnwindSafe for Mux
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.