CombinatorialFunction(R, F)¶

Provides combinatorial functions over an integral domain.

^: (F, F) -> F

a ^ b returns the formal exponential a^b.

belong?: BasicOperator -> Boolean

belong?(op) returns true if op is a combinatorial operator.

binomial: (F, F) -> F

binomial(n, r) returns the number of subsets of r objects taken among n objects, i.e. n!/(r! * (n-r)!).

factorial: F -> F

factorial(n) returns the factorial of n, i.e. n!.

factorials: (F, Symbol) -> F

factorials(f, x) rewrites the permutations and binomials in f involving x in terms of factorials.

factorials: F -> F

factorials(f) rewrites the permutations and binomials in f in terms of factorials.

iibinom: List F -> F

iibinom(l) should be local but conditional.

iidprod: List F -> F

iidprod(l) should be local but conditional.

iidsum: List F -> F

iidsum(l) should be local but conditional.

iifact: F -> F

iifact(x) should be local but conditional.

iiperm: List F -> F

iiperm(l) should be local but conditional.

iipow: List F -> F

iipow(l) should be local but conditional.

ipow: List F -> F

ipow(l) should be local but conditional.

operator: BasicOperator -> BasicOperator

operator(op) returns a copy of op with the domain-dependent properties appropriate for F; error if op is not a combinatorial operator.

permutation: (F, F) -> F

permutation(n, r) returns the number of permutations of n objects taken r at a time, i.e. n!/(n-r)!.

product: (F, SegmentBinding F) -> F

product(f(n), n = a..b) returns f(a) * … * f(b) as a formal product.

product: (F, Symbol) -> F

product(f(n), n) returns the formal product P(n) which verifies P(n+1)/P(n) = f(n).

summation: (F, SegmentBinding F) -> F

summation(f(n), n = a..b) returns f(a) + … + f(b) as a formal sum.

summation: (F, Symbol) -> F

summation(f(n), n) returns the formal sum S(n) which verifies S(n+1) - S(n) = f(n).