Source code for norse.torch.functional.logical
import torch
from norse.torch.functional.superspike import super_fn
[docs]
def logical_and(x, y):
"""Computes a logical and provided x and y are bitvectors."""
return x * y
[docs]
def logical_xor(x, y):
"""Computes a logical xor provided x and y are bitvectors."""
return torch.abs(x - y)
[docs]
def logical_or(x, y):
"""Computes a logical or provided x and y are bitvectors."""
return super_fn(x + y)
[docs]
def muller_c(y_prev, x_1, x_2):
"""Computes the muller-c element next state provided x_1 and x_2 are bitvectors
and y_prev is the previous state."""
return super_fn(x_1 * x_2 + (x_1 + x_2) * y_prev)
[docs]
def posedge_detector(z, z_prev):
"""Determines whether a transition from 0 to 1 has occured
providing that z and z_prev are bitvectors
"""
return (1 - z_prev) * z