summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorTim King <taking@cs.nyu.edu>2012-12-14 20:13:53 -0500
committerTim King <taking@cs.nyu.edu>2012-12-14 20:13:53 -0500
commit52b4d02428cb002a612d3e286c68a556098e8104 (patch)
treefe83aa96fe8c256617db6d8b154eee131879f50e /src/util
parentedf971e2934367d160830a35e97a2e664e742b28 (diff)
parent62e9f6d0a34d4f6623381429b51b65ddfae1e86d (diff)
Merge remote-tracking branch 'main-repo/1.0.x' into 1.0.x
Diffstat (limited to 'src/util')
-rw-r--r--src/util/bitvector.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/util/bitvector.h b/src/util/bitvector.h
index 2c178ec2e..4cbcba50e 100644
--- a/src/util/bitvector.h
+++ b/src/util/bitvector.h
@@ -178,23 +178,25 @@ public:
Integer prod = d_value * y.d_value;
return BitVector(d_size, prod);
}
-
- BitVector unsignedDiv (const BitVector& y) const {
+ /**
+ * Total division function that returns 0 when the denominator is 0.
+ */
+ BitVector unsignedDivTotal (const BitVector& y) const {
CheckArgument(d_size == y.d_size, y);
- // TODO: decide whether we really want these semantics
if (y.d_value == 0) {
- return BitVector(d_size, Integer(0));
+ return BitVector(d_size, 0u);
}
CheckArgument(d_value >= 0, this);
CheckArgument(y.d_value > 0, y);
return BitVector(d_size, d_value.floorDivideQuotient(y.d_value));
}
-
- BitVector unsignedRem(const BitVector& y) const {
+ /**
+ * Total division function that returns 0 when the denominator is 0.
+ */
+ BitVector unsignedRemTotal(const BitVector& y) const {
CheckArgument(d_size == y.d_size, y);
- // TODO: decide whether we really want these semantics
if (y.d_value == 0) {
- return BitVector(d_size, d_value);
+ return BitVector(d_size, 0u);
}
CheckArgument(d_value >= 0, this);
CheckArgument(y.d_value > 0, y);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback