scalation.math

Combinatorics

object Combinatorics extends Error

The Combinatorics object provides several common combinatorics functions, such as factorial permutations, combinations, gamma and beta functions.

Linear Supertypes
Error, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Combinatorics
  2. Error
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def betaF(a: Double, b: Double): Double

    Compute the beta function B(a, b) for the following two cases: (1) when a or b are integers and (2) when a or b are integers + 1/2.

    Compute the beta function B(a, b) for the following two cases: (1) when a or b are integers and (2) when a or b are integers + 1/2.

    a

    the first parameter, a real number satisfying (1) or (2)

    b

    the second parameter, a real number satisfying (1) or (2)

    See also

    http://mathworld.wolfram.com/BetaFunction.html

  6. def choose(n: Int, k: Int, l: Int): Long

    Compute trinomial coefficients: n choose (k, l), combinations of n things, (k, l) at a time, using Pascal's Tetrahedron.

    Compute trinomial coefficients: n choose (k, l), combinations of n things, (k, l) at a time, using Pascal's Tetrahedron. Ex: Given n balls, counts ways in which k are chosen for group 1 and l are chosen for group 2.

    n

    the total number of items

    k

    the of items to choose

    l

    the of items to choose (requires 0 <= k + l <= n)

    See also

    http://people.sju.edu/~pklingsb/bintrin.pdf

  7. def choose(n: Int, k: Int): Long

    Compute binomial coefficients: n choose k, combinations of n things, k at a time, using Pascal's Triangle.

    Compute binomial coefficients: n choose k, combinations of n things, k at a time, using Pascal's Triangle.

    n

    the total number of items

    k

    the of items to choose (requires k <= n)

    See also

    http://www.mathsisfun.com/pascals-triangle.html

  8. def chose(n: Int, k: Int): Long

    Compute n choose k (combinations of n things, k at a time).

    Compute n choose k (combinations of n things, k at a time). A more efficient implementation is given below.

    n

    the total number of items

    k

    the of items to choose (requires k <= n)

  9. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  11. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  12. def fac(k: Int): Double

    Compute 'k' factorial (k!) using three techniques (requires k <= 170).

    Compute 'k' factorial (k!) using three techniques (requires k <= 170).

    k

    the nonnegative integer-valued argument to the factorial function

  13. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. def flaw(method: String, message: String): Unit

    Show the flaw by printing the error message.

    Show the flaw by printing the error message.

    method

    the method where the error occurred

    message

    the error message

    Definition Classes
    Error
  15. def gammaF(a: Double): Double

    Compute the gamma function gamma(a) using the Lanczos Approximation.

    Compute the gamma function gamma(a) using the Lanczos Approximation.

    a

    the parameter, a real number

    See also

    http://en.wikipedia.org/wiki/Lanczos_approximation

  16. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  17. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  18. def hyp2f1(z: Double, a: Double, b: Double, c: Double): Double

    Compute Gauss's Hypergeometric function 2F1(z; a, b, c) via an approximation.

    Compute Gauss's Hypergeometric function 2F1(z; a, b, c) via an approximation.

    z

    the variable, a real/complex number s.t. |z| < 1

    a

    the first paramater, a real/complex number

    b

    the second parameter, a real/complex number

    c

    the third parameter, a real/complex number, may not be a negative integer

    See also
  19. def iBetaF(z: Double, a: Double, b: Double): Double

    Compute the incomplete beta function B(z; a, b), a generalization of the beta function (z = 1).

    Compute the incomplete beta function B(z; a, b), a generalization of the beta function (z = 1).

    z

    the variable, a real/complex number s.t. 0 <= |z| <= 1

    a

    the first parameter, a real/complex number > 0

    b

    the second parameter, a real/complex number > 0

    See also

    http://mathworld.wolfram.com/IncompleteBetaFunction.html

  20. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  21. val lfac: Array[Long]

    Table of all factorials that can be represented as a long (64-bit) integer

  22. def logfac(k: Int): Double

    Compute the natural log factorial (ln (k!) so k! = exp (logfac (k).

    Compute the natural log factorial (ln (k!) so k! = exp (logfac (k). The formula is a log transformation of Ramanujan's Factorial Approximation.

    k

    the value to take the log factorial of

  23. def mfac(k: Int): Long

    For small 'k', compute 'k' factorial by iterative multiplication.

    For small 'k', compute 'k' factorial by iterative multiplication.
    k! = k * (k-1) * ... * 2 * 1

    k

    the nonnegative integer-valued argument to the factorial function

  24. def mortici(k: Int): Double

    Compute k! using Mortici's Factorial Approximation (more accurate than Stirling's 2nd Order Factorial Approximation).

    Compute k! using Mortici's Factorial Approximation (more accurate than Stirling's 2nd Order Factorial Approximation).

    k

    the nonnegative integer-valued argument to the factorial function

    See also

    http://but.unitbv.ro/BU2010/Series%20III/BULETIN%20III%20PDF/Mathematics/Mortici.pdf

  25. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  26. final def notify(): Unit

    Definition Classes
    AnyRef
  27. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  28. val pascalTet: Array[Array[Array[Int]]]

    Initial part of Pascal's Tetrahedron, precomputed to speed calculations (Trinomial Coefficients)

    Initial part of Pascal's Tetrahedron, precomputed to speed calculations (Trinomial Coefficients)

    See also

    https://sites.google.com/site/pascalloids/pascal-s-pyramid-3-var

  29. val pascalTri: Array[Array[Int]]

    Initial part of Pascal's Triangle, precomputed to speed calculations (Binomial Coefficients)

  30. def perm(n: Int, k: Int): Long

    Compute permutations of k items selected from n total items.

    Compute permutations of k items selected from n total items.

    n

    the total number of items

    k

    the of items selected

  31. def rBetaF(z: Double, a: Double, b: Double): Double

    Compute the regularized (incomplete) beta function I(z; a, b).

    Compute the regularized (incomplete) beta function I(z; a, b).

    z

    the variable, a real/complex number s.t. 0 <= |z| <= 1

    a

    the first parameter, a real/complex number > 0

    b

    the second parameter, a real/complex number > 0

    See also

    http://mathworld.wolfram.com/RegularizedBetaFunction.html

  32. def ramanujan(k: Int): Double

    Compute k! using Ramanujan's Factorial Approximation (more accurate than Mortici's Factorial Approximation).

    Compute k! using Ramanujan's Factorial Approximation (more accurate than Mortici's Factorial Approximation).

    k

    the nonnegative integer-valued argument to the factorial function

    See also

    http://files.ele-math.com/articles/jmi-05-53.pdf

  33. def rfac(k: Int, x: Double = 1.0): Double

    Compute the kth degree rising factorial of x.

    Compute the kth degree rising factorial of x. When x = 1, this is the regular factorial function k!.

    k

    the number of factors in the product

    x

    the base number to start the product

  34. def stirling(k: Int): Double

    Compute k! using Stirling's 2nd Order Factorial Approximation.

    Compute k! using Stirling's 2nd Order Factorial Approximation.

    k

    the nonnegative integer-valued argument to the factorial function

    See also

    http://en.wikipedia.org/wiki/Stirling%27s_approximation

  35. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  36. def toString(): String

    Definition Classes
    AnyRef → Any
  37. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  39. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Error

Inherited from AnyRef

Inherited from Any

Ungrouped