Bruno BELANYI
edd8d1f329
abacus: fix install
2021-08-31 20:20:22 +02:00
Bruno BELANYI
be781b0d2f
abacus: use static libraries
...
We do not want to install those libraries in any way.
2021-08-31 20:20:09 +02:00
Bruno BELANYI
9d8d3fa864
abacus: bignum: extract do_dump
...
Useful when debugging.
2021-08-23 19:24:53 +02:00
Bruno BELANYI
c675b15248
abacus: bignum: optimize div_mod
2021-08-23 19:12:35 +02:00
Bruno BELANYI
1521d2b232
abacus: bignum: fix do_halve
2021-08-23 19:10:48 +02:00
Bruno BELANYI
a99f60dcd4
abacus: bignum: move do_halve & is_odd up
2021-08-23 18:59:43 +02:00
Bruno BELANYI
31dcb91a26
abacus: bignum: add log10
2021-08-23 16:38:25 +02:00
Bruno BELANYI
c730705a13
abacus: bignum: add log2
2021-08-23 16:33:05 +02:00
Bruno BELANYI
4b85d22923
abacus: bignum: add operator bool
2021-08-23 16:30:10 +02:00
Bruno BELANYI
c9811fce44
abacus: bignum: rename do_trim_leading_zeros
...
It works in-place, unlike the rest of the `do_*` functions.
2021-08-23 16:14:22 +02:00
Bruno BELANYI
2046d1ec4b
abacus: bignum: fix style of assignment
...
Using `auto <var> = <type>` is more consistent with the rest.
2021-08-23 16:12:53 +02:00
Bruno BELANYI
1dbed201e6
abacus: parse: parser: store result of parse
2021-08-23 00:24:25 +02:00
Bruno BELANYI
46a0655e72
abacus: parse: scanner: define yyterminate
2021-08-23 00:24:05 +02:00
Bruno BELANYI
2d437a2583
abacus: parse: activate debug using ENV
2021-08-22 23:57:54 +02:00
Bruno BELANYI
b50750009b
abacus: parse standard output and output result
2021-08-22 14:37:49 +02:00
Bruno BELANYI
26055c5a3f
abacus: parse: fix name of namespace
2021-08-22 14:37:32 +02:00
Bruno BELANYI
e4aa81d1a4
fixup! abacus: parse: use BigNum instead of int
2021-08-22 14:37:09 +02:00
Bruno BELANYI
d3c189bd1f
abacus: parse: declare proper dependency
...
Due to creating a dependency, we should use `custom_target` rather a
`generator` expression.
2021-08-22 14:36:26 +02:00
Bruno BELANYI
60a0fbf5b0
abacus: parse: use BigNum instead of int
2021-08-22 14:14:27 +02:00
Bruno BELANYI
f4f620436c
abacus: bignum: add sqrt
2021-08-22 13:58:43 +02:00
Bruno BELANYI
d03058e410
abacus: bignum: add note about div_mod performance
2021-08-22 13:57:29 +02:00
Bruno BELANYI
cfa19a60ba
abacus: bignum: trim zeros after a subtraction
...
This way we keep a canonicalized version of the result.
2021-08-22 13:55:12 +02:00
Bruno BELANYI
3397bf4310
abacus: bignum: fix order comparisons
...
This is a pretty big oversight...
2021-08-22 13:55:12 +02:00
Bruno BELANYI
5bc3963317
abacus: bignum: add exponentiation
2021-08-22 13:55:12 +02:00
Bruno BELANYI
0436d2e513
abacus: bignum: factorize trim of leading zeros
2021-08-22 13:55:12 +02:00
Bruno BELANYI
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
Bruno BELANYI
7cd0664e60
abacus: bignum: fix carry bug in addition
2021-08-21 01:32:18 +02:00
Bruno BELANYI
44bb20e390
abacus: bignum: remove magic number regarding base
2021-08-21 01:32:12 +02:00
Bruno BELANYI
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
Bruno BELANYI
4a4b9f361c
abacus: bignum: add multiplication
2021-08-21 01:31:48 +02:00
Bruno BELANYI
d40c109fb7
abacus: bignum: add input operator
2021-08-21 01:31:48 +02:00
Bruno BELANYI
fe01661613
abacus: bignum: add addition & substraction
2021-08-21 01:31:39 +02:00
Bruno BELANYI
d083ede78c
abacus: bignum: factorize lexicographical compare
...
I want to make use of it for substraction.
2021-08-20 22:20:45 +02:00
Bruno BELANYI
6f7e1102db
abacus: bignum: add default constructor
2021-08-20 22:20:45 +02:00
Bruno BELANYI
ad5092ea8d
abacus: bignum: add output operator
2021-08-20 22:20:45 +02:00
Bruno BELANYI
0a5fb471e4
abacus: bignum: add unary operators
2021-08-20 22:20:45 +02:00
Bruno BELANYI
2600eb2ba7
abacus: bignum: add order comparisons
2021-08-20 22:20:45 +02:00
Bruno BELANYI
17bd51d197
abacus: bignum: add equality comparisons
2021-08-20 22:20:45 +02:00
Bruno BELANYI
2cff603a48
abacus: bignum: add is_canonicalized predicate
...
Useful when debugging.
2021-08-20 22:20:45 +02:00
Bruno BELANYI
12c8b6b114
abacus: add initial bignum library
2021-08-20 22:20:45 +02:00
Bruno BELANYI
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
Bruno BELANYI
5b57981af7
abacus: bootstrap build system
2021-08-20 22:20:45 +02:00