Changelog for factory-0.2.0.3
2011-03-01 Dr. Alistair Ward <factory at functionalley dot eu>
0.0.0.1
* First version of the package.
0.0.0.2
* Created the modules; "Factory.Test.QuickCheck.Bounds", "Factory.Math.Implementations.Pi.Borwein.*" and "Factory.Test.Performance.Statistics".
* Created a new module "Factory.Data.PrimeFactors", and migrated definitions from both "Factory.Math.PrimeFactorisation" and "Factory.Math.Implementations.PrimeFactorisation".
* Created the class 'Factory.Math.Factorial.Factorial' and a new module "Factory.Math.Implementations.Factorial".
Moved existing implementation (Bisection) into the new module, with a new implementation (PrimeFactorisation).
* Added the function 'Factory.Math.Summation.sumR'.
* Added a parameter to the functions 'Factory.Math.DivideAndConquer.divideAndConquer' and 'Factory.Data.Bounds.divideAndConquer', to permit asymmetric bisection.
* Added methods to class "Factory.Math.Pi.Algorithm" to permit the retrieval of /Pi/ as a 'Rational' or a 'String'.
* Renamed the function 'Factory.Math.Precision.capPrecision' to 'Factory.Math.Precision.simplify'.
* Removed the module "Factory.Test.Performance.Exponential".
* Removed the function 'Factory.Math.Power.raise', which was no more efficient than ghc's implementation of '(^)'.
* Uploaded to <http://hackage.haskell.org/packages/hackage.html>.
0.1.0.0
* Amended 'factory.cabal' to more correctly specify the dependency on package 'toolshed'.
* Added the module "Factory.Math.Probability".
* Renamed the module "Factory.Data.Bounds" to "Factory.Data.Interval",
and added the functions; 'Factory.Data.Interval.precisely', 'Factory.Data.Interval.shift', 'Factory.Data.Interval.closedUnitInterval'.
* Guarded 'eager-blackholing' flag in /cabal/ file.
0.1.0.1
* Renamed classes "Factory.Math.[Primality, Pi, Factorial, SquareRoot, PrimeFactorisation].Algorithm" to "Factory.Math.[Primality, Pi, Factorial, SquareRoot, PrimeFactorisation].Algorithmic", to distinguish them from the data-types which implement them.
* Added the modules "Factory.Math.Hyperoperation", "Factory.Test.QuickCheck.Hyperoperation" and "Factory.Test.Performance.Hyperoperation".
* Added the modules "Factory.Math.Primes", "Factory.Math.Implementation.Primes", "Factory.Test.Performance.Primes", "Factory.Test.QuickCheck.Primes" and "Factory.Data.PrimeWheel".
* Added the function 'Factory.Math.PrimeFactorisation.squareFree'.
* Added rewrite-rules to specialise 'Factory.Math.Power.isPerfectPower' for type-parameter='Int'.
* Recoded "Factory.Math.Radix" to the interface "Data.Array.IArray.IArray", rather than the data-type "Data.Array.Array".
0.1.0.2
* Added 'Factory.Math.Primes.primorial'.
* Altered 'Factory.Math.Implementations.Primes.trialDivision' to take an integer defining the size of a 'Factory.Data.PrimeWheel', from which candidates are extracted.
* Removed the command-line option 'primesPerformanceGraph', which appears to memoise data from previous tests.
* Uploaded to <http://hackage.haskell.org/packages/hackage.html>.
0.1.0.3
* Qualified 'Factory.Math.Implementations.Primes.trialDivision' with /NOINLINE/ pragma, to block optimization which conflicts with rewrite-rule for 'Factory.Math.Implementations.Primes.sieveOfEratosthenes' !
* Re-coded 'Factory.Data.PrimeWheel.coprimes' and 'Factory.Math.Implementations.Primes.sieveOfEratosthenes', to use a map of lists, rather than a map of lists of lists.
0.2.0.0
* Separately coded the special-case of a 'Factory.Data.PrimeWheel' of size zero, in 'Factory.Math.Implementations.Primes.trialDivision', to achieve better space-complexity.
* Added 'Factory.Data.PrimeWheel.estimateOptimalSize'.
* Split "Factory.Math.Implementations.Primes" into; "Factory.Math.Implementations.Primes.SieveOfEratosthenes", "Factory.Math.Implementations.Primes.TurnersSieve", "Factory.Math.Implementations.Primes.TrialDivision", and added a new module "Factory.Math.Implementations.Primes.SieveOfAtkin". This makes the rewrite-rules less fragile.
* Coded 'Factory.Math.Radix.digitalRoot' more concisely.
* Split "Factory.Math.Power" into an additional module "Factory.Math.PerfectPower".
* Replaced '(+ 1)' and '(- 1)' with the faster calls 'succ' and 'pred'.
* Used 'Paths_factory.version' in 'Main', rather than hard-coding it.
0.2.0.1
* Changed by Lennart Augustsson, to replace "System" with "System.Environment" and "System.Exit", and to remove dependency on "haskell98".
0.2.0.2
* Reacted to new module-hierarchy and addition of method 'ToolShed.SelfValidate.getErrors', in 'toolshed-0.13.0.0'.
* Made 'Factory.Data.Interval.getLength' private.
* Added 'Factory.Data.Interval.mkBounded'.
* Generalised "Factory.Math.Statistics" to accept any 'Data.Foldable.Foldable' 'Functor', rather than merely lists.
0.2.0.3
* Added "class Show" to several contexts, for migration to 'ghc-7.4'.