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'.