Calculation

Add(HyperLib.Hyper)
Subtract(HyperLib.Hyper)
Multiply(System.Int64)
Divide((Int64)Divisor, (Int32)DesiredPrecision)
Divide((Int64)Divisor, (Int32)Exponent64, (Int32)DesiredPrecision)

Initializers

New(String)
New(LoExp, HiExp)
New(HyperLib.Hyper)

Helper methods

StripZeros()
Round(System.Int32)
Clone()
Compare(HyperLib.Hyper, HyperLib.Hyper)
IsPositive()
IsNegative()
IsNotZero()
FindBottomIndex(HyperLib.Hyper, System.Int32)
FindTopIndex(HyperLib.Hyper [, System.Int32])
Negate()
displayMode
ToString()
DefineFromDecimal(System.Int64, System.String [, System.Boolean])
NewFromString(System.String)
AddX((Hyper)xl0, (Int64)xl1ptr , (Int32)cnt1, (Int32)AtOffset)



#Properties

(int32) maxDigitsInString
(Int32) ExtraDigitsForConversionFromDecimal
TotalSize()
(System.Int32) Precision
(System.Int64) Buffer(System.Int32)
BufferSize()
PartSize()
(System.Int64) DigitAt((Int32)Exp64)
(System.Int32) QuotientPrecision
(System.Int32) DisplayMode




Calculation



Add(HyperLib.Hyper)


Returns: System.Int32 -- The last buffer index that was modified by this operation.
Adds the given Hyper value to this instance.


Subtract(HyperLib.Hyper)


Returns: System.Int32
Subtracts the given Hyper value from this instance.


Multiply(System.Int64)


Returns: System.Void (=null)
Multiplies by the given Int64


Divide((Int64)Divisor, (Int32)DesiredPrecision)


Divisor> The Long integer, which to divide by.
DesiredPrecision> Number of 64-bit digits used after decimal point in the result.
Returns: System.Int64 -- The remainder

Divides the number by Int64 and returns the remainder.

Example: hyper1.Divide(12341234, 30) '// resize lower bound of buffer to 30 digits (1 digit = 8 bytes) and divide by 12341234


Divide((Int64)Divisor, (Int32)Exponen64, (Int32)DesiredPrecision)


Returns: System.Int64

Same as Divide described above, only that Divisor is shifted for Exponent64 * 64 bits



Initializers



New(String)


Call to NewFromString method (see NewFromString below)


New(LoExp, HiExp)

HiExp and LoExp are Int32's
Examples:
Dim a As New Hyper(5, 0) ' initialize an integer with 6 * 64 bits
Dim a As New Hyper(-1, -4) ' float with 4 * 64 bits


New(Hyper)


Example:
Dim a As New Hyper(hyper1)


Helper methods



StripZeros()


Returns: System.Int32
Removes leading zero values from Buffer of this instance.
Example: hyper1.StripZeros()


Round(System.Int32)


Returns: System.Void
Sets the lowest exponent to negative(-) of the value provided. In other words, the precision of current instance.


Clone()


Returns: HyperLib.Hyper
Creates a copy of this instance.


Compare(HyperLib.Hyper, HyperLib.Hyper)


Returns: System.Int32 -- -1 if xl0 is less than xl1, 0 if xl0 equals xl1 and 1 if xl0 is greater.
Compares two numbers.


IsPositive()


Returns: System.Boolean -- True if positive.
Determines whether the number is positive


IsNegative()


Returns: System.Boolean -- True if negative.
Determines whether the number is negative


IsNotZero()


Returns: System.Boolean


FindBottomIndex(HyperLib.Hyper, System.Int32)


Returns: System.Int32


FindTopIndex(HyperLib.Hyper [, System.Int32])


Returns: System.Int32

Find index of the most significant non-zero Int64 in the buffer.
The second argument is the starting index (optional)


Negate()


Returns: System.Void

Negates this Hyper instance's value.


displayMode


The way in which the ToString method outputs the number.
Expressed as DisplayModeType (decimal and three others are available)


ToString()


Returns: System.String


DefineFromDecimal(System.Int64, System.String [, System.Boolean])


Returns: System.Void
Example:
Dim a As New Hyper(-123456789012345678,"9012345678901234567890123456789012345678901234567890")
Dim a As New Hyper(0,"009012345678901234567890123456789012345678901234567890", True) ' use to input negative numbers below 0 and above -1



NewFromString(System.String)


Returns: System.Int32 -- 0 if successful, -1 if not.
Assigns a value to current instance from a string.
A string, for example: "123.456678"
Until further notice, the integral part size (when inputting from string) is currently limited to maximum of 18 characters, use subsequent multiplication to get larger values
Example:
Dim a As New Hyper("-123456789012345678.9012345678901234567890123456789012345678901234567890")




AddX((Hyper)xl0, (Int64)xl1ptr , (Int32)cnt1, (Int32)AtOffset)


Returns: System.Int32 -- The index of the last array item that was modified as a result of Add operation
xl0> Destination Hyper variable
xl1ptr>Starting array item of the second operand
cnt1>Count of 64-bit digits to add
AtOffset>Starting buffer index in destination (xl0)
A wrapper for the native method. Top buffer array item value (in xl0) must be set to 0 when calling this procedure.


Properties




(int32) maxDigitsInString


Affects how many digits get displayed. This number gets aligned to a multiple of 18 in the decimal ToString method's output


(Int32) ExtraDigitsForConversionFromDecimal


Sets or returns: reserve <This Value> * 64bits extra space for calculations when converting from decimal value - some values in decimal require higher precision during the conversion.


TotalSize()


Returns: System.Int32


(System.Int32) Precision


Sets or returns:


(System.Int64) Buffer(System.Int32)


Sets or returns: Buffer value at index


BufferSize()


Returns: System.Int32


PartSize()


Sets or returns: System.Int32 -- Number of digits reserved for non-integral part of the number
Decreasing this value by 1 mathematically equates to multiplication by 2 ^ 64. May be negative.


(System.Int64) DigitAt((Int32)Exp64)


Sets or returns: The value of digit at Exponent64. Default property - can be used as hyper1(exp64)


QuotientPrecision


Defines the precision of the result of the divide procedure (/), expressed as = -(2 ^ 64) ^ QuotientPrecision. Default is 1.


DisplayMode


Affects the output of the ToString function
Sets or returns: (int32) DisplayModeType:
3 (default) = Decimal - Compared to the below modes, conversion at very low/very high exponents will take significantly longer time to complete
2 = signed hex
1 = hex
0 = Decimal but 2^64 based


Back