Commit graph

76 commits

Author SHA1 Message Date
4e3d53ecd4 abacus: bignum: add division & modulo
Like the C language, the `%` operator is rather the remainder, such that
`(a/b)*b + (a%b) = a`.

I still call it modulo though...
2021-08-22 13:55:12 +02:00
7cd0664e60 abacus: bignum: fix carry bug in addition 2021-08-21 01:32:18 +02:00
c23500607f clang-format: format operators more aesthetically 2021-08-21 01:32:18 +02:00
44bb20e390 abacus: bignum: remove magic number regarding base 2021-08-21 01:32:12 +02:00
2489ce19b2 abacus: bignum: put sign checks in helper methods
Make them public because they can be useful in consumers of the library.
2021-08-21 01:31:49 +02:00
4a4b9f361c abacus: bignum: add multiplication 2021-08-21 01:31:48 +02:00
eb47889eef gdbinit: register pretty-printers automatically 2021-08-21 01:31:48 +02:00
dcf896651d utils: gdb: add BigNum pretty printer 2021-08-21 01:31:48 +02:00
d40c109fb7 abacus: bignum: add input operator 2021-08-21 01:31:48 +02:00
fe01661613 abacus: bignum: add addition & substraction 2021-08-21 01:31:39 +02:00
d083ede78c abacus: bignum: factorize lexicographical compare
I want to make use of it for substraction.
2021-08-20 22:20:45 +02:00
6f7e1102db abacus: bignum: add default constructor 2021-08-20 22:20:45 +02:00
ad5092ea8d abacus: bignum: add output operator 2021-08-20 22:20:45 +02:00
0a5fb471e4 abacus: bignum: add unary operators 2021-08-20 22:20:45 +02:00
7c1b3d302e tests: unit: add bignum tests 2021-08-20 22:20:45 +02:00
2600eb2ba7 abacus: bignum: add order comparisons 2021-08-20 22:20:45 +02:00
17bd51d197 abacus: bignum: add equality comparisons 2021-08-20 22:20:45 +02:00
2cff603a48 abacus: bignum: add is_canonicalized predicate
Useful when debugging.
2021-08-20 22:20:45 +02:00
12c8b6b114 abacus: add initial bignum library 2021-08-20 22:20:45 +02:00
ff35faa705 abacus: add parse library
Would need some improvements, such as by using the C++ Flex scanner
interface.

It will also need to start using the BigNum once it has been
implemented.
2021-08-20 22:20:45 +02:00
42100fe98d clang-format: do not indent access modifiers 2021-08-20 22:20:45 +02:00
1896ee5fb5 git: ignore generated files 2021-08-20 22:20:45 +02:00
d97eb0473b nix: add direnv integration 2021-08-20 22:20:45 +02:00
14b8c4460c clang-format: init config 2021-08-20 22:20:45 +02:00
e7c7b7a6e1 nix: setup flake w/ pre-commit 2021-08-20 22:20:45 +02:00
5b57981af7 abacus: bootstrap build system 2021-08-20 22:20:45 +02:00