vector<int> rscc::determineinput(const vector<int>& input) const { assert(input.size() == k); vector<int> ip = input; for (int i = 0; i < ip.size(); i++) if (ip(i) == fsm::tail) ip(i) = (reg(i) + bitfield(0, 1)) * gen(i, i); return ip; }
bitfield rscc::determinefeedin(const vector<int>& input) const { assert(input.size() == k); // check we have no 'tail' inputs for (int i = 0; i < k; i++) assert(input(i) != fsm::tail); // compute input junction bitfield sin, ip = bitfield(vector<bool>(input)); for (int i = 0; i < k; i++) sin = ((reg(i) + ip.extract(i)) * gen(i, i)) + sin; return sin; }