LargeIntegers
Last updated at 9:38 am UTC on 21 March 2019
Integer variableByteSubclass: #LargePositiveInteger
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Kernel-Numbers'
The result of the following project was added to the standard release in 2.8.
Description
Goal of this project was to improve the speed of LargeInteger arithmetics.
Areas of interest for this speed up are
- encription,
- evolutionary algorithms,
- random generators,
- number theory.
Example
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: working beta version for VM 2.6 with LargeIntegersPlugin and binding classes.
- 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