locked
future 128-bit integer data type for high precision, numeric processing RRS feed

  • Question

  • was curious if there are plans for a "double-LONG" data type in VB.net (or any of the visual studio 20xx components), some high precision calculations cause 64-bit LONG overflow, and use of DEC data type offers up to 2**96 -1 values, however, the calculation and conversion to / from LONG to DECIMAL is time consuming.

    operation in particular is high precision multiplication - ie see Donald Knuth, Art of Programming, c1998, section 4.3.3 - how fast can we multiply; the convolution process uses an accumulator that overflows LONG data type when I am using Base=1,000,000,000 instead of base10 operations...

    Decimal works for this but is slower...

    as of VS 2015 edition, I did not see any new extended data types for numeric processing - am hoping that a 128-bit integer is in future plans,

    very respectfully,

    rich.beck@sbcglobal.net

    see Donald Knuth, 1998, section


           

    '    4.3.3 for a discussion of: "How fast can we multiply ???"

    Wednesday, December 9, 2015 7:48 PM

Answers

  • Hi,

    BigInteger?

    https://msdn.microsoft.com/en-us/library/system.numerics.biginteger%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

    Regards,

      Thorsten

    • Proposed as answer by Weiwei Cai Thursday, December 17, 2015 1:34 PM
    • Marked as answer by Weiwei Cai Monday, December 21, 2015 9:57 AM
    Wednesday, December 9, 2015 8:37 PM
  • was curious if there are plans for a "double-LONG" data type in VB.net (or any of the visual studio 20xx components), some high precision calculations cause 64-bit LONG overflow, and use of DEC data type offers up to 2**96 -1 values, however, the calculation and conversion to / from LONG to DECIMAL is time consuming.

    operation in particular is high precision multiplication - ie see Donald Knuth, Art of Programming, c1998, section 4.3.3 - how fast can we multiply; the convolution process uses an accumulator that overflows LONG data type when I am using Base=1,000,000,000 instead of base10 operations...

    Decimal works for this but is slower...

    as of VS 2015 edition, I did not see any new extended data types for numeric processing - am hoping that a 128-bit integer is in future plans,

    very respectfully,

    rich.beck@sbcglobal.net

    see Donald Knuth, 1998, section


           

    '    4.3.3 for a discussion of: "How fast can we multiply ???"

    I'm curious what application you are using that demands 128 bit integers? Why won't 64 bit integers do?

    I should add that if there is a particular computation where you are worried about overflow with two 64 bit integers, there are the Multiply128() and UnsignedMultiply128() functions supported in Windows

    • Edited by Brian Muth Wednesday, December 9, 2015 11:34 PM
    • Proposed as answer by Weiwei Cai Thursday, December 17, 2015 1:34 PM
    • Marked as answer by Weiwei Cai Monday, December 21, 2015 9:57 AM
    Wednesday, December 9, 2015 10:54 PM

All replies

  • Hi,

    BigInteger?

    https://msdn.microsoft.com/en-us/library/system.numerics.biginteger%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

    Regards,

      Thorsten

    • Proposed as answer by Weiwei Cai Thursday, December 17, 2015 1:34 PM
    • Marked as answer by Weiwei Cai Monday, December 21, 2015 9:57 AM
    Wednesday, December 9, 2015 8:37 PM
  • was curious if there are plans for a "double-LONG" data type in VB.net (or any of the visual studio 20xx components), some high precision calculations cause 64-bit LONG overflow, and use of DEC data type offers up to 2**96 -1 values, however, the calculation and conversion to / from LONG to DECIMAL is time consuming.

    operation in particular is high precision multiplication - ie see Donald Knuth, Art of Programming, c1998, section 4.3.3 - how fast can we multiply; the convolution process uses an accumulator that overflows LONG data type when I am using Base=1,000,000,000 instead of base10 operations...

    Decimal works for this but is slower...

    as of VS 2015 edition, I did not see any new extended data types for numeric processing - am hoping that a 128-bit integer is in future plans,

    very respectfully,

    rich.beck@sbcglobal.net

    see Donald Knuth, 1998, section


           

    '    4.3.3 for a discussion of: "How fast can we multiply ???"

    I'm curious what application you are using that demands 128 bit integers? Why won't 64 bit integers do?

    I should add that if there is a particular computation where you are worried about overflow with two 64 bit integers, there are the Multiply128() and UnsignedMultiply128() functions supported in Windows

    • Edited by Brian Muth Wednesday, December 9, 2015 11:34 PM
    • Proposed as answer by Weiwei Cai Thursday, December 17, 2015 1:34 PM
    • Marked as answer by Weiwei Cai Monday, December 21, 2015 9:57 AM
    Wednesday, December 9, 2015 10:54 PM