DevOTechS Forums

NUMS => General NUMS discussions => Topic started by: PeterM on September 23, 2008, 02:31:35 PM



Title: NUMS Features
Post by: PeterM on September 23, 2008, 02:31:35 PM
Hi

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

Just a question regarding NUMS, can you give us a bit of a description of its capabilities
and what other features you are looking at implementing ?


PM


Title: Re: NUMS Features
Post by: Admin on September 23, 2008, 04:37:25 PM
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 !  :)

Quote from: PeterM

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 type
This 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 type
This data type stores numbers in the format:

   mantissa * 10^exp

This 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 type
This 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 type
This 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

 



Title: Re: NUMS Features
Post by: PeterM on September 24, 2008, 10:18:33 AM
Eddy

Wow, thanks for the info.



Peter