\\% q-factorial, q-binomial, multinomial, q-multinomial, rising/falling factorial power. \\ Author: Joerg Arndt \\ License: GPL version 3 or later \\ online at http://www.jjj.de/pari/ \\ version: 2011-August-04 (10:05) qpoch(n,x=x,q=q)= \\ q-Pochhammer symbol: \\ qpoch(n,a,q) = (a;q)_n = (1-a)*(1-a*q)*...*(1-a*q^(n-1)) \\ (taken from Michael Somos' tricks.gp) { if ( n>=0, prod(i=0,n-1,1-x*q^i) , 1/qpoch(-n,x*q^n,q) ); } /* ----- */ qpochv(n,v)= { return( prod(k=1, #v-1, qpoch(n, v[k], v[#v]) ) ); } /* ----- */ qpochve(n,v,e)= { return( prod(k=1, #v-1, qpoch(n, v[k], v[#v])^e[k] ) ); } /* ----- */ \\ q-factorial: qfact(n,q=q)= { qpoch(n,q,q) / (1-q)^n; } \\qfact(n,q=q)= { prod(k=1,n, (1-q^k) ) / (1-q)^n; } \\ q-binomial coefficients \\ (taken from Michael Somos' tricks.gp) \\ (note: uses one possible convention for m<0 or m>n) qbinomial(n, m, q='q)= { if ( q==1, return(binomial(n,m)) ); if ( n-m>m, m=n-m ); if ( (n>=0) & (n