Safe Haskell | None |
---|---|
Language | Haskell2010 |
AUTHOR
- Dr. Alistair Ward
DESCRIPTION
- Provides implementations of the class
Algorithmic
. - Provides additional functions related to factorials, but which depends on a specific implementation, and which therefore can't be accessed throught the class-interface.
- https://en.wikipedia.org/wiki/Factorial.
- http://mathworld.wolfram.com/Factorial.html.
- http://www.luschny.de/math/factorial/FastFactorialFunctions.htm.
- data Algorithm
- primeFactors :: Integral base => base -> Factors base base
- risingFactorial :: (Integral i, Show i) => i -> i -> i
- fallingFactorial :: (Integral i, Show i) => i -> i -> i
- (!/!) :: (Integral i, Fractional f, Show i) => i -> i -> f
Types
Data-types
The algorithms by which factorial has been implemented.
Bisection | The integers from which the factorial is composed, are multiplied using |
PrimeFactorisation | The prime factors of the factorial are extracted, then raised to the appropriate power, before multiplication. |
Functions
:: Integral base | |
=> base | The number, whose factorial is to be factorised. |
-> Factors base base | The base and exponent of each prime factor in the factorial, ordered by increasing base (and decreasing exponent). |
- Returns the prime factors, of the factorial of the specifed integer.
- Precisely all the primes less than or equal to the specified integer n, are included in n!; only the multiplicity of each of these known prime components need be determined.
- https://en.wikipedia.org/wiki/Factorial#Number_theory.
- CAVEAT: currently a hotspot.
:: (Integral i, Show i) | |
=> i | The lower bound of the integer-range, whose product is returned. |
-> i | The number of integers in the range above. |
-> i | The result. |
Returns the rising factorial; http://mathworld.wolfram.com/RisingFactorial.html
:: (Integral i, Show i) | |
=> i | The upper bound of the integer-range, whose product is returned. |
-> i | The number of integers in the range beneath. |
-> i | The result. |
Returns the falling factorial; http://mathworld.wolfram.com/FallingFactorial.html
Operators
:: (Integral i, Fractional f, Show i) | |
=> i | The numerator. |
-> i | The denominator. |
-> f | The resulting fraction. |
- Returns the ratio of two factorials.
- It is more efficient than evaluating both factorials, and then dividing.
- For more complex combinations of factorials, such as in the Binomial coefficient,
extract the prime factors using
primeFactors
then manipulate them using the module Data.PrimeFactors, and evaluate it using by Data.PrimeFactors.product'.