I was not aware you already had a Forum which is great.

Hi Peter,

Good to hear from you.

Yes, I set up the forums some time ago but I did not make much publicity about it.

Perhaps I should send all my customers a notification mail.

Anyway, glad you found it !

Just a question regarding NUMS, ... its capabilities and what other features you are looking at implementing ?

NUMS is a mathematical library (a dll) I am developing now for

*arbitrary precision floating point* and

*signed big integer* calculations.

As you know, HIME has math functions for unsigned huge integers, but I got requests from users for adding floating point math functions.

Rather than to add such functionality in HIME, I chose to develop a new product, called NUMS.

NUMS is based on the same huge integer math kernel as HIME.

But NUMS can handle variables in 5 different data types: 4 numerical data types and a dynamic string data type:

1. "BinFloat", Binary base Arbitrary Precision Floating Point data typeThis data type stores numbers in the format:

**mantissa * ***256*^exp- 'mantissa' is a signed binary number of which the maximum length can be determined by the user. It can be upto 2^31 (2147483648) bits long. That is the equivalent of 646 million decimal digits !
- 'exp' is a binary number ranging from -2147483648 to +2147483647 ( -2^31 to 2^31 - 1)

2. "DecFloat", Decimal base Arbitrary Precision Floating Point data typeThis data type stores numbers in the format:

**mantissa * ***10*^expThis is a floating point number, simular to the BinFloat data type, except it is

*base 10*.

- 'mantissa' is a signed binary number of which the maximum length can be determined by the user. It can be upto 2^31 (2147483648) bits long.
- 'exp' is a binary number ranging from -2147483648 to +2147483647 ( -2^31 to 2^31 - 1)

3. "Rational", rational number data typeThis data type stores numbers in the format:

**nominator / denominator**- 'nominator' is a signed binary huge integer number. It can be upto 2^31 (2147483648) bits long.
- 'denominator' is an unsigned binary huge integer number. It can be upto 2^31 (2147483648) bits long.

So, a rational number consists (internally) always of 2 integer numbers.

4. "BigInt", big integer data typeThis data type stores numbers in the format:

**big integer**- 'big integer' is a signed binary huge integer number. It can be upto 2^31 (2147483648) bits long. That is the equivalent of 646 million decimal digits !

5. "String", string data type

This data type stores alphanumerical string data upto 2^31 (2147483648) bytes long.

PROS AND CONS OF THE VARIOUS DATA TYPES

**BinFloat**+ Fast math operations

- Possibility for base conversion errors when converting to and from decimal (No base conversion errors when converting to and from hexadecimal or binary).

**DecFloat**+ No base conversion errors when converting to and from decimal.

- A little more overhead during math operations compared to BinFloats.

**Rational**+ No rounding errors for +, -, *, /

- Generally, slower math operations compared to above data types.

**BigInt**+ No rounding errors when used for integer operations.

- Only suitable for integer number math.

NUMS is still under development. Functions implemented so far are:

- Basic math functions: +, -, *, /, e^x, LOG, x^2, square root, ABS, FIX (INT), FRAC
- Boolean functions: =, <>, >, >=, <, <=, CMP, IsZero
- Various functions to exchange data with NUMS
- Support functions to convert numbers between the various data types, set precision, etc.

Functions that are in preparation and will be added to the first release:

- x^y, LOG2, LOG10
- Trigonometric functions: SIN, COS, TAN, ASIN, ACOS, ATAN, SINH, COSH, TANH, ASINH, ACOSH, ATANH
- Pow, PowMod, Mod, ModInv for integers
- Matrix calculation functions

If you like to know more, just ask.

Kind regards

Eddy