Struct ciphercore_base::ops::comparisons::Equal
source · pub struct Equal {}
Expand description
A structure that defines the custom operation Equal that compares arrays of binary strings elementwise as follows:
If a and b are two bitstrings, then Equal(a,b) = 1 if a = b and 0 otherwise.
The last dimension of both inputs must be the same; it defines the length of input bitstrings.
If input shapes are different, the broadcasting rules are applied (see the NumPy broadcasting rules).
For example, if input arrays are of shapes [2,3]
, and [1,3]
, the resulting array has shape [2]
.
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
Custom operation returns
New Equal node
Example
let c = create_context().unwrap();
let g = c.create_graph().unwrap();
let t = array_type(vec![2, 3], BIT);
let n1 = g.input(t.clone()).unwrap();
let n2 = g.input(t.clone()).unwrap();
let n3 = g.custom_op(CustomOperation::new(Equal {}), vec![n1, n2]).unwrap();
Trait Implementations§
source§impl CustomOperationBody for Equal
impl CustomOperationBody for Equal
source§impl<'de> Deserialize<'de> for Equal
impl<'de> Deserialize<'de> for Equal
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
source§impl PartialEq<Equal> for Equal
impl PartialEq<Equal> for Equal
impl Eq for Equal
impl StructuralEq for Equal
impl StructuralPartialEq for Equal
Auto Trait Implementations§
impl RefUnwindSafe for Equal
impl Send for Equal
impl Sync for Equal
impl Unpin for Equal
impl UnwindSafe for Equal
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 Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.