interface IBignumArithmeticInteger : IDispatch
[id(1), helpstring("Help")] HRESULT Help();
[propget, id(2), helpstring("Bignum(Bignum-number in the array, BignumBase(optional)=10 - the base may vary from 2 to 36). Convert Bignum/String(BSTR)")] HRESULT Bignum([in] BYTE Bignum, [in, defaultvalue(10L)] LONG BignumBase, [out, retval] BSTR* pVal);
[propput, id(2), helpstring("Bignum(Bignum-number in the array, BignumBase(optional)=10 - the base may vary from 2 to 36). Convert Bignum/String(BSTR)")] HRESULT Bignum([in] BYTE Bignum, [in, defaultvalue(10L)] LONG BignumBase, [in] BSTR newVal);
[propget, id(3), helpstring("Sign(Bignum). Sign Bignum. Return +1 if Bignum > 0, 0 if Bignum = 0, and -1 if Bignum < 0")] HRESULT Sign([in] BYTE Bignum, [out, retval] LONG* pVal);
[propget, id(4), helpstring("Even(Bignum). Determine whether Bignum is odd or even. Return 1 - even, 0 - odd")] HRESULT Even([in] BYTE Bignum, [out, retval] LONG* pVal);
[id(5), helpstring("BignumSet(Bignum-number in the array, StringBSTR - string-in, BignumBase(optional)=10 (2 to 36)). Convert String(BSTR) to Bignum")] HRESULT BignumSet([in] BYTE Bignum, [in] BSTR StringBSTR,[in, defaultvalue(10L)] LONG BignumBase);
[id(6), helpstring("Compare(Bignum1,Bignum2). Compare Bignum1 and Bignum2. Return +1 if Bignum1 > Bignum2, 0 if Bignum1 = Bignum2, and -1 if Bignum1 < Bignum2")] HRESULT Compare([in] BYTE Bignum1, [in] BYTE Bignum2, [out, retval] LONG* pVal);
[id(7), helpstring("Sum(BignumSet, Bignum1, Bignum2). BignumSet = Bignum1 + Bignum2")] HRESULT Sum([in] BYTE BignumSet, [in] BYTE Bignum1, [in] BYTE Bignum2);
[id(8), helpstring("SumL(BignumSet, Bignum1, LONG). BignumSet = Bignum1 + LONG")] HRESULT SumL([in] BYTE BignumSet, [in] BYTE Bignum1, [in] LONG LONG);
[id(9), helpstring("Abs(BignumSet, Bignum1). Set absolute value. BignumSet = Abs(Bignum1)")] HRESULT Abs([in] BYTE BignumSet, [in] BYTE Bignum1);
[id(10), helpstring("Negate(BignumSet, Bignum1). BignumSet = - Bignum1")] HRESULT Negate([in] BYTE BignumSet, [in] BYTE Bignum1);
[id(11), helpstring("Subtract(BignumSet, Bignum1, Bignum2). BignumSet = Bignum1 - Bignum2")] HRESULT Subtract([in] BYTE BignumSet, [in] BYTE Bignum1, [in] BYTE Bignum2);
[id(12), helpstring("SubtractL(BignumSet, Bignum1, ULONG). BignumSet = Bignum1 - LONG")] HRESULT SubtractL([in] BYTE BignumSet, [in] BYTE Bignum1, [in] ULONG ULONG);
[id(13), helpstring("Multiply(BignumSet, Bignum1, Bignum2). BignumSet = Bignum1 * Bignum2")] HRESULT Multiply([in] BYTE BignumSet, [in] BYTE Bignum1, [in] BYTE Bignum2);
[id(14), helpstring("MultiplyL(BignumSet, Bignum1, ULONG). BignumSet = Bignum1 * LONG")] HRESULT MultiplyL([in] BYTE BignumSet, [in] BYTE Bignum1, [in] ULONG ULONG);
[id(15), helpstring("Divide(BignumQuotient, BignumRemainder, Bignum1, Bignum2). BignumQuotient, BignumRemainder = Bignum1 / Bignum2. Divide(BignumQuotient - method 'truncate' , BignumRemainder, Bignum1, Bignum2)")] HRESULT Divide([in] BYTE BignumQuotient, [in] BYTE BignumRemainder, [in] BYTE Bignum1, [in] BYTE Bignum2);
[id(16), helpstring("DivideL(BignumQuotient, BignumRemainder, Bignum1, ULONG). BignumQuotient, BignumRemainder = Bignum1 / ULONG. DivideL(BignumQuotient - method 'truncate' , BignumRemainder, Bignum1, ULONG")] HRESULT DivideL([in] BYTE BignumQuotient, [in] BYTE BignumRemainder, [in] BYTE Bignum1, [in] ULONG ULONG);
[id(17), helpstring("Power(BignumSet, Bignum1, ULONG). BignumSet = Bignum1 ^ ULONG")] HRESULT Power([in] BYTE BignumSet, [in] BYTE Bignum1, [in] ULONG ULONG);
[id(18), helpstring("Clone(BignumSet, Bignum1). BignumSet = Bignum1")] HRESULT Clone([in] BYTE BignumSet, [in] BYTE Bignum1);
[id(19), helpstring("RootRem(BignumSet, Bignum1, ULONG n_root). BignumRoot, BignumRemainder = (n-th root)W30; Bignum1")] HRESULT RootRem([in] BYTE BignumRoot, [in] BYTE BignumRemainder, [in] BYTE Bignum1, [in] ULONG n_root);
[id(20), helpstring("Factorial(BignumSet, ULONG n). BignumSet = !n")] HRESULT Factorial([in] BYTE BignumSet, [in] ULONG n);
[id(21), helpstring("Fibonacci(BignumSet, ULONG n). BignumSet = Fn, the n’th Fibonacci number")] HRESULT Fibonacci([in] BYTE BignumSet, [in] ULONG n);
[id(22), helpstring("LucNum(BignumSet, ULONG n). BignumSet = Ln, the n’th Lucas number")] HRESULT LucNum([in] BYTE BignumSet, [in] ULONG n);
[id(23), helpstring("FileSet(Bignum-number in the array, StringBSTR - string-in FileName, BignumBase(optional)=10 (2 to 36)). Set Bignum from a File.")] HRESULT FileSet([in] BYTE Bignum, [in] BSTR StringBSTRFileName, [in, defaultvalue(10L)] LONG BignumBase);
[id(24), helpstring("FileGet(Bignum-number in the array, StringBSTR - string-in FileName, BignumBase(optional)=10 (2 to 36)). Get Bignum to a File.")] HRESULT FileGet([in] BYTE Bignum, [in] BSTR StringBSTRFileName, [in, defaultvalue(10L)] LONG BignumBase);
interface IBignumArithmeticFloat : IDispatch
[id(1), helpstring("Help")] HRESULT Help();
[propget, id(2), helpstring("SizeBits(Bignum). SizeBits - Set/Get bit size Bignum")] HRESULT SizeBits([in] BYTE Bignum, [out, retval] LONG* pVal);
[propput, id(2), helpstring("SizeBits(Bignum). SizeBits - Set/Get bit size Bignum")] HRESULT SizeBits([in] BYTE Bignum, [in] LONG newVal);
[propget, id(3), helpstring("Bignum(Bignum-number in the array, BignumBase(optional)=10 (2 to 36), Precision(optional) = 0 (0-Max, 1-... - number of digits), Separator(optional)='.', Exponential(optional) = 1 (1-Exponential entry, 0 - decimal)). Convert Bignum/String(BSTR)")] HRESULT Bignum([in] BYTE Bignum, [in, defaultvalue(10L)] LONG BignumBase, [in, defaultvalue(0)] LONG Precision, [in, defaultvalue(".")] BSTR Separator, [in, defaultvalue(-1)] VARIANT_BOOL Exponential, [out, retval] BSTR* pVal);
[propput, id(3), helpstring("Bignum(Bignum-number in the array, BignumBase(optional)=10 (2 to 36), Precision(optional) = 0 (0-Max, 1-... - number of digits), Separator(optional)='.', Exponential(optional) = 1 (1-Exponential entry, 0 - decimal)). Convert Bignum/String(BSTR)")] HRESULT Bignum([in] BYTE Bignum, [in, defaultvalue(10L)] LONG BignumBase, [in, defaultvalue(0)] LONG Precision, [in, defaultvalue(".")] BSTR Separator, [in, defaultvalue(-1)] VARIANT_BOOL Exponential, [in] BSTR newVal);
[propget, id(4), helpstring("Sign(Bignum). Sign Bignum. Return +1 if Bignum > 0, 0 if Bignum = 0, and -1 if Bignum < 0")] HRESULT Sign([in] BYTE Bignum, [out, retval] LONG* pVal);
[id(5), helpstring("SizeBitsSet(Bignum, SizeBits). Set bit size Bignum")] HRESULT SizeBitsSet([in] BYTE Bignum, [in] LONG SizeBits);
[id(6), helpstring("BignumSet(Bignum-number in the array, StringBSTR - string-in, BignumBase(optional)=10 (2 to 36), Separator(optional)='.'). Convert String(BSTR) to Bignum")] HRESULT BignumSet([in] BYTE Bignum,[in] BSTR StringBSTR, [in, defaultvalue(10L)] LONG BignumBase, [in, defaultvalue(".")] BSTR Separator);
[id(7), helpstring("Compare(Bignum1,Bignum2). Compare Bignum1 and Bignum2. Return +1 if Bignum1 > Bignum2, 0 if Bignum1 = Bignum2, and -1 if Bignum1 < Bignum2")] HRESULT Compare([in] BYTE Bignum1, [in] BYTE Bignum2, [out, retval] LONG* pVal);
[id(8), helpstring("Sum(BignumSet, Bignum1, Bignum2). BignumSet = Bignum1 + Bignum2")] HRESULT Sum([in] BYTE BignumSet, [in] BYTE Bignum1, [in] BYTE Bignum2);
[id(9), helpstring("Abs(BignumSet, Bignum1). Set absolute value. BignumSet = Abs(Bignum1)")] HRESULT Abs([in] BYTE BignumSet, [in] BYTE Bignum1);
[id(10), helpstring("Subtract(BignumSet, Bignum1, Bignum2). BignumSet = Bignum1 - Bignum2")] HRESULT Subtract([in] BYTE BignumSet, [in] BYTE Bignum1, [in] BYTE Bignum2);
[id(11), helpstring("Multiply(BignumSet, Bignum1, Bignum2). BignumSet = Bignum1 * Bignum2")] HRESULT Multiply([in] BYTE BignumSet, [in] BYTE Bignum1, [in] BYTE Bignum2);
[id(12), helpstring("Divide(BignumSet, Bignum1, Bignum2). BignumSet = Bignum1 / Bignum2")] HRESULT Divide([in] BYTE BignumSet, [in] BYTE Bignum1, [in] BYTE Bignum2);
[id(13), helpstring("Root(BignumSet, Bignum1). BignumSet = W30; Bignum1")] HRESULT Root([in] BYTE BignumSet, [in] BYTE Bignum1);
[id(14), helpstring("Negate(BignumSet, Bignum1). BignumSet = - Bignum1")] HRESULT Negate([in] BYTE BignumSet, [in] BYTE Bignum1);
[id(15), helpstring("Power(BignumSet, Bignum1, Bignum2). BignumSet = Bignum1 ^ Bignum2.")] HRESULT Power([in] BYTE BignumSet, [in] BYTE Bignum1, [in] ULONG ULONG);
[id(16), helpstring("Clone(BignumSet, Bignum1). BignumSet = Bignum1")] HRESULT Clone([in] BYTE BignumSet, [in] BYTE Bignum1);
[id(17), helpstring("FileSet(Bignum-number in the array, StringBSTR - string-in FileName, BignumBase(optional)=10 (2 to 36)). Set Bignum from a File.")] HRESULT FileSet([in] BYTE Bignum, [in] BSTR StringBSTRFileName, [in, defaultvalue(10L)] LONG BignumBase);
[id(18), helpstring("FileGet(Bignum-number in the array, StringBSTR - string-in FileName, BignumBase(optional)=10 (2 to 36), Precision(optional) = 0 (0-Max, 1-... - number of digits)). Get Bignum to a File.")] HRESULT FileGet([in] BYTE Bignum, [in] BSTR StringBSTRFileName, [in, defaultvalue(10L)] LONG BignumBase, [in, defaultvalue(0L)] LONG Precision);