initial and final values from mvarrays

This commit is contained in:
Stefan Holst committed 2024-04-04 20:44:22 +09:00
1 parent 3a8777e0a3
commit 795cac0716
2 files changed
+14 -2

No files matched your search

+12
View File
@@ -269,6 +269,18 @@ def mv_to_bp(mva):
return np.packbits(unpackbits(mva)[...,:3], axis=-2, bitorder='little').swapaxes(-1,-2) return np.packbits(unpackbits(mva)[...,:3], axis=-2, bitorder='little').swapaxes(-1,-2)
def mv_init(mva):
"""Returns the initial binary values for mva.
"""
return (mva>>1) & ((mva>>2)|mva) & 1
def mv_final(mva):
"""Returns the final binary value of mva.
"""
return mva & ((mva>>2)|(mva>>1)) & 1
def bparray(*a): def bparray(*a):
"""Converts (lists of) Boolean values or strings into a bit-parallel array. """Converts (lists of) Boolean values or strings into a bit-parallel array.
+2 -2
View File
@@ -10,7 +10,7 @@ import math
import numpy as np import numpy as np
from . import numba, logic, hr_bytes, sim, eng from . import numba, logic, hr_bytes, sim, eng, cdiv
from .circuit import Circuit from .circuit import Circuit
class LogicSim(sim.SimOps): class LogicSim(sim.SimOps):
@@ -28,7 +28,7 @@ class LogicSim(sim.SimOps):
self.m = m self.m = m
self.mdim = math.ceil(math.log2(m)) self.mdim = math.ceil(math.log2(m))
self.sims = sims self.sims = sims
nbytes = (sims - 1) // 8 + 1 nbytes = cdiv(sims, 8)
self.c = np.zeros((self.c_len, self.mdim, nbytes), dtype=np.uint8) self.c = np.zeros((self.c_len, self.mdim, nbytes), dtype=np.uint8)
self.s = np.zeros((2, self.s_len, 3, nbytes), dtype=np.uint8) self.s = np.zeros((2, self.s_len, 3, nbytes), dtype=np.uint8)