=== Top of the Swiki === Attachments ===
LargeIntegers
Description
Goal of this project is to improve the speed of LargeInteger arithmetics.
Important: The LargeIntegers plugin will be part of the standard Squeak 2.8 distribution.
Areas of interest for this speed up are
- encription,
- evolutionary algorithms,
- random generators,
- number theory.
Actual
Download actual version.
Time millisecondsToRun: [1000 factorial].
3595 3594 3600 "without"
55 54 59 "with"
Results (newest at top)
- 17.3.00 sr: Project defined as finished.
- 13.3.00 sr: Bit logic for positive Integers (#bitAnd:, #bitOr:, #bitXor) is realized now.
- VM 2.7
- 16.1.00 sr: I have a working beta version for VM 2.6 with LargeIntegersPlugin and binding classes. It is much better than the previously published alpha one (LargeIntegersPlugin.3.cs and Install LI plugin.1.cs)(special thanks to Andrew C. Greenberg). Also a ready to install plugin (the only way for people which do not want to compile) is available for Linux.
I don't want to release this now, because VM 2.7 allows much more elegant embedding of the plugin primitives in the Integer classes and I want to make these changes first.
Please be patient!
If you are in hurry and want to have the current (beta) version in spite of this intermediate state please contact me.
- 30.12.99 sr: first alpha release with
- #+, #-, #*, #/,
- #digitCompare,
- #normalize,
- #bitShift:
operations (contained some bugs).
History
I've just (Tue Dec 7 03:24:43 CET 1999) compiled my first very simple example plugin and want to start with a LargeIntegers project now; goal is
- to improve the speed of LargeInteger arithmetics.
Example and timeline: I want to improve the computation of
(1000 factorial) by factors of
- at least 2,
- 5 would be good,
- more would be better;
before the Y2K.
The main implementation idea is to use the current implementation of LargeInteger arithmetics in Smalltalk (as far as possible and convenient, we'll see...) and to convert it into simple Smalltalk and then in a C plugin.
Further enhancements seem to be possible.
Stephan Rudlof