Bagolly / WHISKR-A

WHISKR Arithmetics
1 stars 0 forks source link

BigInteger features #9

Closed Mimicicax closed 7 months ago

Mimicicax commented 1 year ago

BigInteger must support the basic arithmetic operations:

Comparisions:

Bitwise:

Other operations:

Support for other functions (such as sqrt, sin etc.) is not going to be implemented because these often output decimal numbers, not integers.

BigInteger is immutable (none of the mentioned operations modify the actual object).

Mimicicax commented 1 year ago

🍕

Bagolly commented 1 year ago

⚠️ Binary operations are currently not implemented in WHISKR, but is a planned feature ⚠️ Exponentiation is currently implemented, but might not work with BigInteger ⚠️ Modulo is currently implemented, but might not work with BigInteger ⚠️ Factorization is currently implemented, but might not work with BigInteger

sin, sqrt are currently implemented; BigInteger will need type restrictions and/or appropriate exception handling

✔️ Immutable classes are in line with current design for tokens ✔️ Basic arithmetic operations are supported ✔️ ToString() override is good object etiquette (no print() in C#, however)

ℹ️ Comparison operators are currently not implemented in WHISKR, feature will remain unused for now

Mimicicax commented 1 year ago

⚠️ Exponentiation is currently implemented, but might not work with BigInteger ⚠️ Modulo is currently implemented, but might not work with BigInteger ⚠️ Factorization is currently implemented, but might not work with BigInteger

BigInteger will provide the appropriate overloads for these functions

❌sin, sqrt are currently implemented; BigInteger will need type restrictions and/or appropriate exception handling

For these functions, BigInteger should return itself and WHISKR should alert the user with an appropriate warning

✔️ ToString() override is good object etiquette

It's not about "object etiquette"; it is a must, otherwise there would be no way present such objects to the user

ℹ️ Comparison operators are currently not implemented in WHISKR, feature will remain unused for now

Even if comparision operators are not available directly in WHISKR, these operators must be implemented regardless because they will be used (for example to check for divide-by-zero or for multiplication-by-one).

Bagolly commented 7 months ago

Relational operators will require a significant extension of the grammar and ST handling code. Also, your a fasz.