fricas
(1) -> <spad>
- Sat 9 May 22:36:23 CEST 2026
--------------------------------------
fricas
)abbrev package HYPGEOM HyperGeometric
--------------------------------------
HyperGeometric(): Exports == Implementation where
R ==> Fraction Integer -- must be FRAC INT not INT!!
X ==> Expression R
NNI ==> NonNegativeInteger
SMP ==> SparseMultivariatePolynomial(R, Kernel X) -- if R has IntegralDomain
SUP ==> SparseUnivariatePolynomial SMP
FSF ==> FunctionalSpecialFunction(R,X)
EFSP ==> ElementaryFunctionStructurePackage(R,X)
FACSUP ==> Factored SUP
FACREC ==> Record(factor:SUP, exponent:NNI)
HYPER ==> Record(ap:List X, bq:List X, fac:X)
PARAM ==> Record(ab:List SUP, const:List SUP)
Exports == with
rational? : (X,Symbol) -> Boolean
++ rational?(r,x) returns true if r is of the form p/q where p and q
++ are univariate polynomials in x.
factoredForm : (X->X) -> Fraction(FACSUP)
++ factoredForm(f) returns the fraction f(?+1)/f(?) in the variable "?",
++ where numerator and denominator are factored, provided that this
++ fraction is a rational function; otherwise an error message is
++ produced.
factoredForm : X -> Fraction(FACSUP)
admissible? : Fraction(FACSUP) -> Boolean
++ admissible?(ff), where ff is the output of factoredForm, checks if
++ the factorization is complete (i.e. linear) and the b coefficients
++ are positive.
getParameters : FACSUP -> PARAM
++ getParameters(p) gives the parameters of sparse univariate polynomial
++ p, that is the list of zeroes and possibly a constant factor when
++ different from 1.
convert : SUP -> X
++ convert(p) converts the SparseUnivariatePolynomial p to Expression
++ Integer.
pFq : (X->X) -> HYPER
++ pFq(f) provides the hypergeometric parameters as a record of the
++ form Record(ap:List X, bq:List X, fac:X), where X=EXPR(INT).
pFq : X -> HYPER
construct: (HYPER,Symbol) -> X
++ construct(pfq,x) constructs the hypergeometric expression with
++ the output of pFq in the symbol x.
display : HYPER -> OutputForm
++ Fancy display the output of pFq.
hyperLookup : HYPER -> X
++ Lookup the output of pFq in a table.
createHyperF : HYPER -> X
++
hgFtoHYPER : X -> HYPER
++ hgFtoHYPER(f) converts f:=hypergeometricF([a..],[b..],x) to
++ a HYPER record [[a..],[b..],x]$HYPER.
sum : (X,Symbol) -> X
Implementation == add
rational0?(p:X,xs:Symbol):Boolean ==
x:=xs::X
up:=univariate(p,kernel xs)
dup:=denom up
nup:=numer up
cdup:= coefficients dup
ndup:= coefficients nup
fox:=(u:X):Boolean+->freeOf?(u,x)
every?(fox,cdup) and every?(fox,ndup)
rational?(f:X, xs:Symbol):Boolean ==
k:Kernel X:=kernel xs
for kk in tower f repeat
a:Boolean:=member?(k, tower(kk::X))
b:Boolean:=(symbolIfCan(kk) case "failed")
a and b => return false
true
factoredForm(f:X->X):Fraction(FACSUP) ==
ns:X:=(nsym:=new()$Symbol)::X
q:=f(ns+1)/f(ns)
nq:=normalize(q)$EFSP
not rational?(nq,retract ns) => error "Not rational"
dnq:=denom nq
nnq:=numer nq
unnq:=univariate(nnq,kernel nsym)
udnq:=univariate(dnq,kernel nsym)
funnq:=factor unnq
fudnq:=factor udnq
funnq/fudnq
factoredForm(S:X):Fraction(FACSUP) ==
mk:=mainKernel S
mk case "failed" => error "mainKernel failed."
not (name mk = 'summation) => error "Sum expected."
args:=argument mk
not (#args = 3) => error "Unexpected number of kernel arguments."
summand:=first args
var:=second args
not freeOf?(summand,third args) => error "Strange summand."
q:=eval(summand,var=var+1)/summand
nq:=normalize(q)$EFSP
not rational?(nq,retract var) => error "Not rational"
dnq:=denom nq
nnq:=numer nq
unnq:=univariate(nnq,kernel retract var)
udnq:=univariate(dnq,kernel retract var)
funnq:=factor unnq
fudnq:=factor udnq
funnq/fudnq
admissible? ff ==
fn:=factors(numer ff)
fd:=factors(denom ff)
not empty? fn and max [degree(u.factor) for u in fn] > 1 => false
not empty? fd and max [degree(u.factor) for u in fd] > 1 => false
--todo: check fd: b's>0
--qm:=create()$SingletonAsOrderedSet
empty? fd => true
--[(s.factor-qm) ??? for s in fd]
true
getParameters x ==
qm:=create()$SingletonAsOrderedSet
r:List FACREC:=factors x
l1:List SUP:=[]
l2:List SUP:=[]
for s in r repeat
p:SUP:=s.factor
if variables p = [qm]
then
q1:=p-qm::SUP
for i in 1..s.exponent repeat
l1:=cons(q1,l1)
else
q2:=p
for i in 1..s.exponent repeat
l2:=cons(q2,l2)
return [l1,l2]$PARAM
convert(x:SUP):X ==
k:Kernel(X):=first tower('_%::X) --'
y:SMP:=multivariate(x,k)$SMP
coerce(y)$X
buildConst(x:List SUP):X ==
empty?(x) => 1$X
p:SUP:=reduce(_*,x)
convert p
pFq(f:X->X):HYPER ==
ff:=factoredForm(f)
gpn:=getParameters(numer ff)
gpd:=getParameters(denom ff)
a:=[convert t for t in gpn.ab]
b:=[convert t for t in gpd.ab]
if member?(1$X,b) then
b:=delete(b,position(1$X,b))
else
a:=cons(1$X,a)
c:=convert unit(numer ff)
ca:=buildConst(gpn.const)
cb:=buildConst(gpd.const)
[a,b,c*ca/cb]$HYPER
pFq(S:X):HYPER ==
ff:=factoredForm(S)
gpn:=getParameters(numer ff)
gpd:=getParameters(denom ff)
a:=[convert t for t in gpn.ab]
b:=[convert t for t in gpd.ab]
if member?(1$X,b) then
b:=delete(b,position(1$X,b))
else
a:=cons(1$X,a)
c:=convert unit(numer ff)
ca:=buildConst(gpn.const)
cb:=buildConst(gpd.const)
[a,b,c*ca/cb]$HYPER
construct(x,s) ==
v:=s::X
a:=x.ap
b:=x.bq
c:=x.fac
av:=[paren(v+t) for t in a]
bv:=[paren(v+t) for t in b]
num:=1$X
den:=1$X
if not empty? av then
num:=reduce(_*,av)
if not empty? bv then
den:=reduce(_*,bv)
c*num/den/(v+1$X)
display(x:HYPER):OutputForm ==
OF ==> OutputForm
a:=[s::OF for s in x.ap]
b:=[s::OF for s in x.bq]
c:=(x.fac)::OF
p:=(#a)::OF
q:=(#b)::OF
A:=sub(presub('F::OF,p),q)
if #a < #b then
a:=append(a,['*::OF for i in 1..#b- #a])
else
b:=append(b,['*::OF for i in 1..#a- #b])
--B:=binomial(blankSeparate a, blankSeparate b)
B:=blankSeparate [A,matrix [a,b],bracket c]
--hconcat(A,B)
checkGauss2F1(x:HYPER):Boolean ==
not(#(x.ap)=2 and #(x.bq)=1) => false
not(x.fac=1$X) => false
a:Union(Integer,"failed"):=retractIfCan(x.ap.1)
b:Union(Integer,"failed"):=retractIfCan(x.ap.2)
if a case Integer then
a:=a::Integer
if a < 0 then return true
if b case Integer then
b:=b::Integer
if b < 0 then return true
r:X:=x.bq.1 - x.ap.1 - x.ap.2
not smaller?(r,0::X) => true
false
checkKummer2F1(x:HYPER):Boolean ==
not(#(x.ap)=2 and #(x.bq)=1) => false
not(x.fac=-1$X) => false
r:X:=x.ap.1 - x.ap.2 + x.bq.1
r=1$X => true
false
hyperLookup(x:HYPER):X ==
a:=x.ap
b:=x.bq
c:=x.fac
p:= #a
q:= #b
if p=1 then
if q=0 then
return (1-c)^(-a.1)
checkGauss2F1(x) => Gamma(b.1-a.1-a.2)*Gamma(b.1)/ _
(Gamma(b.1-a.1)*Gamma(b.1-a.2))
checkKummer2F1(x) => Gamma((1/2)*a.2+1)*Gamma(a.2-a.1+1)/ _
(Gamma(a.2+1)*Gamma((1/2)*a.2-a.1+1))
0$X
-- better: mainKernel hypergeometricF
-- argument mainKernel hypergeometricF([a1..ap],[b1..bq],x) -->
-- [a1,..,ap,b1,..,bq,x,p,q] as List(X)
-- name mainKernel hyper... --> hypergeometricF @ Symbol
hgFtoHYPER(f:X):HYPER ==
k:=mainKernel(f)
k case "failed" => error "Not a kernel?"
not(name k = 'hypergeometricF) => error "Not hypergeometricF."
args:List X:=argument k
narg:=#args
q:Union(Integer,"failed"):=retractIfCan(args.narg)
p:Union(Integer,"failed"):=retractIfCan(args.(narg-1))
p case "failed" => error "p?"
q case "failed" => error "q?"
ap:=args.(1..p)
bq:=args.(p+1..q+1)
fac:=args.(q+2)
[ap,bq,fac]$HYPER
-- :todo:check f(0)~=0
sum(f:X,s:Symbol):X ==
S:=summation(f,s)
h:HYPER:=pFq(S)
eval(f,s::X=0) * hypergeometricF(h.ap,h.bq,h.fac)
-- S1:=sum((-1)^k*(x/2)^(2*k+p)/factorial(k)/factorial(k+p),k)
-- S2:=sum(1/(2*n-1)/factorial(2*n+1),n) -- display pFq(S2)</spad>
fricas
Compiling FriCAS source code from file
/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/5770435868577614772-25px001.spad
using old system compiler.
HYPGEOM abbreviates package HyperGeometric
------------------------------------------------------------------------
initializing NRLIB HYPGEOM for HyperGeometric
compiling into NRLIB HYPGEOM
compiling local rational0? : (Expression Fraction Integer,Symbol) -> Boolean
Time: 0.05 SEC.
compiling exported rational? : (Expression Fraction Integer,Symbol) -> Boolean
Time: 0 SEC.
compiling exported factoredForm : Expression Fraction Integer -> Expression Fraction Integer -> Fraction Factored SparseUnivariatePolynomial SparseMultivariatePolynomial(Fraction Integer,Kernel Expression Fraction Integer)
Time: 0.03 SEC.
compiling exported factoredForm : Expression Fraction Integer -> Fraction Factored SparseUnivariatePolynomial SparseMultivariatePolynomial(Fraction Integer,Kernel Expression Fraction Integer)
Time: 0.02 SEC.
compiling exported admissible? : Fraction Factored SparseUnivariatePolynomial SparseMultivariatePolynomial(Fraction Integer,Kernel Expression Fraction Integer) -> Boolean
Time: 0 SEC.
compiling exported getParameters : Factored SparseUnivariatePolynomial SparseMultivariatePolynomial(Fraction Integer,Kernel Expression Fraction Integer) -> Record(ab: List SparseUnivariatePolynomial SparseMultivariatePolynomial(Fraction Integer,Kernel Expression Fraction Integer),const: List SparseUnivariatePolynomial SparseMultivariatePolynomial(Fraction Integer,Kernel Expression Fraction Integer))
Time: 0 SEC.
compiling exported convert : SparseUnivariatePolynomial SparseMultivariatePolynomial(Fraction Integer,Kernel Expression Fraction Integer) -> Expression Fraction Integer
Time: 0 SEC.
compiling local buildConst : List SparseUnivariatePolynomial SparseMultivariatePolynomial(Fraction Integer,Kernel Expression Fraction Integer) -> Expression Fraction Integer
Time: 0 SEC.
compiling exported pFq : Expression Fraction Integer -> Expression Fraction Integer -> Record(ap: List Expression Fraction Integer,bq: List Expression Fraction Integer,fac: Expression Fraction Integer)
Time: 0.02 SEC.
compiling exported pFq : Expression Fraction Integer -> Record(ap: List Expression Fraction Integer,bq: List Expression Fraction Integer,fac: Expression Fraction Integer)
Time: 0.02 SEC.
compiling exported construct : (Record(ap: List Expression Fraction Integer,bq: List Expression Fraction Integer,fac: Expression Fraction Integer),Symbol) -> Expression Fraction Integer
Time: 0.02 SEC.
compiling exported display : Record(ap: List Expression Fraction Integer,bq: List Expression Fraction Integer,fac: Expression Fraction Integer) -> OutputForm
processing macro definition OF ==> OutputForm
Time: 0 SEC.
compiling local checkGauss2F1 : Record(ap: List Expression Fraction Integer,bq: List Expression Fraction Integer,fac: Expression Fraction Integer) -> Boolean
Time: 0.01 SEC.
compiling local checkKummer2F1 : Record(ap: List Expression Fraction Integer,bq: List Expression Fraction Integer,fac: Expression Fraction Integer) -> Boolean
Time: 0 SEC.
compiling exported hyperLookup : Record(ap: List Expression Fraction Integer,bq: List Expression Fraction Integer,fac: Expression Fraction Integer) -> Expression Fraction Integer
Time: 0.18 SEC.
compiling exported hgFtoHYPER : Expression Fraction Integer -> Record(ap: List Expression Fraction Integer,bq: List Expression Fraction Integer,fac: Expression Fraction Integer)
Time: 0 SEC.
compiling exported sum : (Expression Fraction Integer,Symbol) -> Expression Fraction Integer
Time: 0.05 SEC.
(time taken in buildFunctor: 0)
Time: 0 SEC.
Warnings:
[1] factoredForm: not known that (AlgebraicallyClosedField) is of mode (CATEGORY domain (IF (has (Fraction (Integer)) (IntegralDomain)) (PROGN (ATTRIBUTE (AlgebraicallyClosedFunctionSpace (Fraction (Integer)))) (ATTRIBUTE (TranscendentalFunctionCategory)) (ATTRIBUTE (CombinatorialOpsCategory)) (ATTRIBUTE (LiouvillianFunctionCategory)) (ATTRIBUTE (SpecialFunctionCategory)) (SIGNATURE reduce (% %)) (SIGNATURE number? ((Boolean) %)) (IF (has (Fraction (Integer)) (PolynomialFactorizationExplicit)) (ATTRIBUTE (PolynomialFactorizationExplicit)) noBranch) (SIGNATURE setSimplifyDenomsFlag ((Boolean) (Boolean))) (SIGNATURE getSimplifyDenomsFlag ((Boolean)))) noBranch))
[2] factoredForm: not known that (TranscendentalFunctionCategory) is of mode (CATEGORY domain (IF (has (Fraction (Integer)) (IntegralDomain)) (PROGN (ATTRIBUTE (AlgebraicallyClosedFunctionSpace (Fraction (Integer)))) (ATTRIBUTE (TranscendentalFunctionCategory)) (ATTRIBUTE (CombinatorialOpsCategory)) (ATTRIBUTE (LiouvillianFunctionCategory)) (ATTRIBUTE (SpecialFunctionCategory)) (SIGNATURE reduce (% %)) (SIGNATURE number? ((Boolean) %)) (IF (has (Fraction (Integer)) (PolynomialFactorizationExplicit)) (ATTRIBUTE (PolynomialFactorizationExplicit)) noBranch) (SIGNATURE setSimplifyDenomsFlag ((Boolean) (Boolean))) (SIGNATURE getSimplifyDenomsFlag ((Boolean)))) noBranch))
[3] getParameters: l1 has no value
[4] getParameters: l2 has no value
Cumulative Statistics for Constructor HyperGeometric
Time: 0.44 seconds
finalizing NRLIB HYPGEOM
Processing HyperGeometric for Browser database:
--->-->HyperGeometric(constructor): Not documented!!!!
--------(rational? ((Boolean) (Expression (Fraction (Integer))) (Symbol)))---------
--------(factoredForm ((Fraction (Factored (SparseUnivariatePolynomial (SparseMultivariatePolynomial (Fraction (Integer)) (Kernel (Expression (Fraction (Integer)))))))) (Mapping (Expression (Fraction (Integer))) (Expression (Fraction (Integer))))))---------
--->-->HyperGeometric((factoredForm ((Fraction (Factored (SparseUnivariatePolynomial (SparseMultivariatePolynomial (Fraction (Integer)) (Kernel (Expression (Fraction (Integer)))))))) (Expression (Fraction (Integer)))))): Not documented!!!!
--------(admissible? ((Boolean) (Fraction (Factored (SparseUnivariatePolynomial (SparseMultivariatePolynomial (Fraction (Integer)) (Kernel (Expression (Fraction (Integer))))))))))---------
--------(getParameters ((Record (: ab (List (SparseUnivariatePolynomial (SparseMultivariatePolynomial (Fraction (Integer)) (Kernel (Expression (Fraction (Integer)))))))) (: const (List (SparseUnivariatePolynomial (SparseMultivariatePolynomial (Fraction (Integer)) (Kernel (Expression (Fraction (Integer))))))))) (Factored (SparseUnivariatePolynomial (SparseMultivariatePolynomial (Fraction (Integer)) (Kernel (Expression (Fraction (Integer)))))))))---------
--------(convert ((Expression (Fraction (Integer))) (SparseUnivariatePolynomial (SparseMultivariatePolynomial (Fraction (Integer)) (Kernel (Expression (Fraction (Integer))))))))---------
--------(pFq ((Record (: ap (List (Expression (Fraction (Integer))))) (: bq (List (Expression (Fraction (Integer))))) (: fac (Expression (Fraction (Integer))))) (Mapping (Expression (Fraction (Integer))) (Expression (Fraction (Integer))))))---------
--->-->HyperGeometric((pFq ((Record (: ap (List (Expression (Fraction (Integer))))) (: bq (List (Expression (Fraction (Integer))))) (: fac (Expression (Fraction (Integer))))) (Expression (Fraction (Integer)))))): Not documented!!!!
--------(construct ((Expression (Fraction (Integer))) (Record (: ap (List (Expression (Fraction (Integer))))) (: bq (List (Expression (Fraction (Integer))))) (: fac (Expression (Fraction (Integer))))) (Symbol)))---------
--------(display ((OutputForm) (Record (: ap (List (Expression (Fraction (Integer))))) (: bq (List (Expression (Fraction (Integer))))) (: fac (Expression (Fraction (Integer)))))))---------
--->-->HyperGeometric((display ((OutputForm) (Record (: ap (List (Expression (Fraction (Integer))))) (: bq (List (Expression (Fraction (Integer))))) (: fac (Expression (Fraction (Integer)))))))): Improper first word in comments: Fancy
"Fancy display the output of \\spad{pFq}."
--------(hyperLookup ((Expression (Fraction (Integer))) (Record (: ap (List (Expression (Fraction (Integer))))) (: bq (List (Expression (Fraction (Integer))))) (: fac (Expression (Fraction (Integer)))))))---------
--->-->HyperGeometric((hyperLookup ((Expression (Fraction (Integer))) (Record (: ap (List (Expression (Fraction (Integer))))) (: bq (List (Expression (Fraction (Integer))))) (: fac (Expression (Fraction (Integer)))))))): Improper first word in comments: Lookup
"Lookup the output of \\spad{pFq} in a table."
--------(createHyperF ((Expression (Fraction (Integer))) (Record (: ap (List (Expression (Fraction (Integer))))) (: bq (List (Expression (Fraction (Integer))))) (: fac (Expression (Fraction (Integer)))))))---------
--------(hgFtoHYPER ((Record (: ap (List (Expression (Fraction (Integer))))) (: bq (List (Expression (Fraction (Integer))))) (: fac (Expression (Fraction (Integer))))) (Expression (Fraction (Integer)))))---------
--->-->HyperGeometric((sum ((Expression (Fraction (Integer))) (Expression (Fraction (Integer))) (Symbol)))): Not documented!!!!
--->-->HyperGeometric(): Missing Description
; compiling file "/var/aw/var/LatexWiki/HYPGEOM.NRLIB/HYPGEOM.lsp" (written 07 JUN 2026 05:13:20 PM):
; wrote /var/aw/var/LatexWiki/HYPGEOM.NRLIB/HYPGEOM.fasl
; compilation finished in 0:00:00.144
------------------------------------------------------------------------
HyperGeometric is now explicitly exposed in frame initial
HyperGeometric will be automatically loaded when needed from
/var/aw/var/LatexWiki/HYPGEOM.NRLIB/HYPGEOM
fricas
)version
"FriCAS 1.3.12 compiled at Sat 7 Jun 23:54:49 CEST 2025"
-- binomial(n,k)
-- expected: hypergeometricF([- n],[],- 1) = 2^n
sum(binomial(n,k),'k)
Type: Expression(Integer)
fricas
sum(binomial(n,k),'k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- x^k/k!
-- expected: hypergeometricF([],[],x) = exp(x)
sum(x^k/factorial(k),'k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- Example 3.3.1.
-- expected: hypergeometricF([],[1],2)
sum(2^k/factorial(k)^2,'k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- Example 3.3.2.
-- 1 3 1 1
-- expected: - hypergeometricF([- -],[-, -],-)
-- 2 2 2 4
sum(1/(2*k-1)/factorial(2*k+1),'k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- Example 3.3.4.
-- expected: hypergeometricF([- n],[1],1)
sum(binomial(n,k)*(-1)^k/factorial(k),'k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- Example 3.3.5. (Bessel: J_p(x))
-- 1 2 1 p
-- hypergeometricF([],[p + 1],- - x )(- x)
-- 4 2
-- ----------------------------------------
-- p!
sum((-1)^k*(x/2)^(2*k+p)/factorial(k)/factorial(k+p),'k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- Sec 3.4 / binomial(n,k)^2
-- expected: hypergeometricF([- n, - n],[1],1)
sum(binomial(n,k)^2,k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- sum(x^k*binomial(n,k)^2,k)$HYPGEOM --> hypergeometricF([- n, - n],[1],x)
-- Sec 3.4.1
-- expected: binomial(r,n)/(r-n+1)*hypergeometricF([-n,n-r-1,(s-r)/2,(s-r+1)/2],
-- [(1-r)/2,-r/2,s-r],1)
sum((-1)^k*binomial(r - s - k, k)*binomial(r - 2*k, n - k)/(r - n - k + 1),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- Sec 3.4.2
-- expected hypergeometricF([-n, -n, -n], [1, 1], -1),
sum(binomial(n, k)^3, k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- Example 3.6.1
-- expected: hypergeometricF([- 2 n, - 2 n],[1],- 1)
sum((-1)^k*binomial(2*n,k)^2,k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
-- Example 3.6.2
-- expected:
-- 1 1 4 n
-- hypergeometricF([-, - 2 n, - 2 n],[1, - 2 n + -],1)( )
-- 2 2 2 n
-- tricky (in principle violates b>0, however, cancelling negative factorials)
sum((-1)^k*binomial(2*n,k)*binomial(2*k,k)*binomial(4*n-2*k,2*n-k),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
----------------
-- 3.8 Exercises
----------------
sum(binomial(n,k)*binomial(n+a,k)*binomial(n-a,n-k),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
sum(binomial(n,k)^5,k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
sum((-1)^k*binomial(k,n-k),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
---- 3.a-g
sum(binomial(n,k)/binomial(2*n-1,k),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
sum(binomial(n,k)^2*binomial(3*n+k,2*n),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
sum((-1)^k*binomial(n,k)*factorial(k+3*a)/factorial(k+a),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
sum(4^k*(-1)^k*binomial(k+a,a)*binomial(n+k,2*k+2*a),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
sum(binomial(2*n+2,2*k+1)*binomial(x+k,2*n+1),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
sum(binomial(2*n+1,2*p+2*k+1)*binomial(p+k,k),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
sum((-1)^k*binomial(2*n,k)*binomial(2*x,x+n-k)*binomial(2*z,z-n+k),k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
----
f:=-sum(1/(2*k-1)/factorial(2*k+1),'k)$HYPGEOM
Type: Expression(Fraction(Integer))
fricas
hgFtoHYPER f
Type: Record(ap: List(Expression(Fraction(Integer))),bq: List(Expression(Fraction(Integer))),fac: Expression(Fraction(Integer)))
fricas
sum((-1)^k*binomial(n,k),'k)$HYPGEOM --> 0?
Type: Expression(Fraction(Integer))