diff options
author | Tim King <taking@cs.nyu.edu> | 2012-12-14 20:13:53 -0500 |
---|---|---|
committer | Tim King <taking@cs.nyu.edu> | 2012-12-14 20:13:53 -0500 |
commit | 52b4d02428cb002a612d3e286c68a556098e8104 (patch) | |
tree | fe83aa96fe8c256617db6d8b154eee131879f50e /src/util | |
parent | edf971e2934367d160830a35e97a2e664e742b28 (diff) | |
parent | 62e9f6d0a34d4f6623381429b51b65ddfae1e86d (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.h | 18 |
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); |