Results 1 to 5 of 5

Thread: Big Integer module

  1. #1
    Member Johannes's Avatar
    Join Date
    Nov 2010
    Location
    Wuustwezel, Belgium
    Age
    53
    Posts
    95
    Rep Power
    22

    Big Integer module

    This is the first complete release of my BigInt module for thinBasic.

    All functionality that was in the thinBasic include script is present, along with functions to control conversion between ASCII strings and Big Integers.

    Apart from the module DLL the zip file contains a small text file that explains how to get things started, a thinBasic script that tests all keywords and performs integrity checks, and a PDF manual. That manual is what makes the zip file so big, the original OpenOffice document is only 40 kBytes uncompressed.


    Future developments
    • Internal addition, subtraction and multiplication are still in standard PowerBASIC. I will convert these to assembler which should speed up most operations.
    • Some optimisations will certainly be added for BigInt_Prm and BigInt_Cmb. I will check the other functions to see if they can be optimised as well.
    • Binary logic (and, or, etc.) and bit stream (set, clear, shift, rotate, etc.) functions will be added. Descriptions of these functions are already in the manual.
    If you have any questions or bug reports, or if you have suggestions for new or expanded functions, or would like to see some aliases added (e.g. BigInt_DivideWithRemainder for BigInt_DivRem), create a topic for it in this subforum and I'll see what I can do.
    Last edited by Johannes; 04-03-2011 at 16:19.
    Boole and Turing, help me!

    Primary programming: 200 MHz ARM StrongARM, RISC OS 4.02, BASIC V, ARM assembler.
    Secondary programming: 3.16 GHz Intel Core 2 Duo E8500, Vista Home Premium SP2, thinBasic, x86 assembler.

  2. #2
    Super Moderator Petr Schreiber's Avatar
    Join Date
    Aug 2005
    Location
    Brno - Czech Republic
    Posts
    7,083
    Blog Entries
    5
    Rep Power
    725
    Hi Johannes,

    the library itself is very powerful and the documentation is detailed and professionaly presented. Good job!


    Petr

    P.S. I can see the attachement in first post okay.
    Learn 3D graphics with ThinBASIC, learn TBGL!
    Windows 10 64bit - Intel Core i5-3350P @ 3.1GHz - 16 GB RAM - NVIDIA GeForce GTX 1050 Ti 4GB

  3. #3
    Member Johannes's Avatar
    Join Date
    Nov 2010
    Location
    Wuustwezel, Belgium
    Age
    53
    Posts
    95
    Rep Power
    22

    Major Bug Fix!

    Found a real doozy, in the internal subtraction subroutine of all places. If the subtracted value is more than one DWord smaller and the first DWord "above" the subtracted value is zero, then it all goes to hell.

    The next bit of code should not print anything.
    Uses "Console"
    Module "BigInt"
    Alias String As BigInt
    BigInt a,b
    String c
    a=BigInt_FromString("100000000000000000000000000000000_16")
    b=BigInt_FromString("10000000000000000_16")
    c=BigInt_ToString(BigInt_Sub(a,b),16)
    If c<>"+FFFFFFFFFFFFFFFF0000000000000000_16" Then PrintL "Something is wrong..."
    
    New module and test script in zip file in the "latest release" topic. Please upgrade.
    Last edited by Johannes; 06-03-2011 at 13:47.
    Boole and Turing, help me!

    Primary programming: 200 MHz ARM StrongARM, RISC OS 4.02, BASIC V, ARM assembler.
    Secondary programming: 3.16 GHz Intel Core 2 Duo E8500, Vista Home Premium SP2, thinBasic, x86 assembler.

  4. #4
    thinBasic author ErosOlmi's Avatar
    Join Date
    Sep 2004
    Location
    Milan - Italy
    Age
    54
    Posts
    8,636
    Blog Entries
    2
    Rep Power
    10
    Quote Originally Posted by Johannes View Post
    New module and test script in zip file. Please upgrade.
    Johannes,

    just a suggestion: in order not to confuse people, it is a good option to have just one (maybe Sticky) thread where the last version of your module can be found avoiding to attach latest version in many different posts.

    Ciao
    Eros
    www.thinbasic.com | www.thinbasic.com/community/ | psch.thinbasic.com
    Win10Pro 64bit - 8GB Ram - Intel i7 M620 2.67GHz - NVIDIA Quadro FX1800M 1GB

  5. #5
    Member Johannes's Avatar
    Join Date
    Nov 2010
    Location
    Wuustwezel, Belgium
    Age
    53
    Posts
    95
    Rep Power
    22
    Eros, that is an excellent idea. I will create a new thread with just the latest release and remove the archives from this one.
    Boole and Turing, help me!

    Primary programming: 200 MHz ARM StrongARM, RISC OS 4.02, BASIC V, ARM assembler.
    Secondary programming: 3.16 GHz Intel Core 2 Duo E8500, Vista Home Premium SP2, thinBasic, x86 assembler.

Similar Threads

  1. Big Integer new forum
    By ErosOlmi in forum BigInt module. Big Integer handling by Johannes
    Replies: 1
    Last Post: 27-02-2011, 20:49

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •