70 if (
a.get_tag() !=
b.get_tag()) {
71 throw AluException(
"EQ, Tag mismatch between operands.");
73 return MemoryValue::from<uint1_t>(
a ==
b ? 1 : 0);
79 if (
a.get_tag() !=
b.get_tag()) {
80 throw AluException(
"LT, Tag mismatch between operands.");
84 return MemoryValue::from<uint1_t>(res);
90 if (
a.get_tag() !=
b.get_tag()) {
91 throw AluException(
"LTE, Tag mismatch between operands.");
95 return MemoryValue::from<uint1_t>(res);
static TaggedValue from_tag_truncating(ValueTag tag, FF value)
MemoryValue lt(const MemoryValue &a, const MemoryValue &b) override
MemoryValue mul(const MemoryValue &a, const MemoryValue &b) override
MemoryValue lte(const MemoryValue &a, const MemoryValue &b) override
MemoryValue fdiv(const MemoryValue &a, const MemoryValue &b) override
MemoryValue shr(const MemoryValue &a, const MemoryValue &b) override
MemoryValue truncate(const FF &a, MemoryTag dst_tag) override
MemoryValue div(const MemoryValue &a, const MemoryValue &b) override
MemoryValue eq(const MemoryValue &a, const MemoryValue &b) override
MemoryValue add(const MemoryValue &a, const MemoryValue &b) override
MemoryValue sub(const MemoryValue &a, const MemoryValue &b) override
MemoryValue shl(const MemoryValue &a, const MemoryValue &b) override
MemoryValue op_not(const MemoryValue &a) override