CombinatorialFunction(R, F)

combfunc.spad line 29 [edit on github]

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 -> F

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

factorials : (F, Symbol) -> F

factorials(f, x) rewrites the permutations and binomials in f involving x 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).