1 years, 91 days

## Is "q-hypergeometric function" implement...

Maple 2023

The help page mentions:

The package supports five q-hypergeometric terms. They are q-Pochhammer symbol, q-binomial coefficient, q-brackets, q-factorial, and q-Gamma, which correspond to the five functions , , , , and .

But what about the so-called q-hypergeometric function? Though there exist `QDifferenceEquations:-IsQHypergeometricTerm` and `QDifferenceEquations:-QHypergeometricSolution` in Maple, they do not seem to represent the function itself
For example, how to type the q-Gauss sum (cf. DLMF's §17.6(i)) or verify the last “simple series expression” given in Basic hypergeometric series - Wikipedia? In Mma, one may achieve these with something like

while

```convert("QHypergeometricPFQ[{a, b}, {c}, q, c/(a b)]", 'FromMma', 'evaluate');
=
/                 c \
QHypergeometricPFQ|[a, b], [c], q, ---|
\                a b/

```

So has the q-hypergeometric function been implemented in Maple?

## Why does `applyrule` fail to apply rules...

Maple 2023

I would like to simulate the evolution of the so-called B, C, K, W system and SKI combinator calculus in Maple.
The rewrite rules of them are simple:

S(x)(y)(z)＝x(z)(y(z))
K(x)(y)＝x, and
I(x)＝x. (Note that since  is protected, I shall use  hereafter.)

However, if I try to evaluate the following example given in the  article,

Maple will only return an unchanged result:

```restart;
applyrule([cS(x::anything)(y::anything)(z::anything) = x(z)(y(z)),
cK(x::anything)(y::anything) = x, cI(x::anything) = x],
cS(cK(cS(cI)))(cS(cK(cK))(cI))(x)(y)); # Unable to reduce???
=
cS(cK(cS(cI)))(cS(cK(cK))(cI))(x)(y)

```

I believe that this is not an outlier.

```> rls := [cS(x::anything)(y::anything)(z::anything) = x(z)(y(z)), cK(x::anything)(y::anything) = x]:
> map2(applyrule, rls, [cS(cS(cS)(cS))(cS)(cS(cS))(cK), cS(cS(cS))(cS)(cS)(cS)(cS(cS)(cK(cK)))]);
[cS(cS(cS)(cS))(cS)(cS(cS))(cK), cS(cS(cS))(cS)(cS)(cS)(cS(cS)(cK(cK)))]

>```

So why can't `applyrule` apply rules as desired? Meanwhile, how to automatically and thoroughly (like `:-eval['recurse']` or `MmaTranslator:-Mma:-ReplaceRepeated`) apply those transformation rules to

1. , and

I have read something like How to apply a recursive rule in an expression? - MaplePrimes, but they are not the same issue.

## Why does MmaTranslator:-Mma:-PolynomialR...

Maple 2023

According to the documentation of `MmaTranslator:-Mma:-PolynomialReduce`, this command yields . However,

```restart;
MmaTranslator:-Mma:-PolynomialReduce(x**2+y**2,{x-y,y+a});
=
[         2    2]
[[0, 0], x  + y ]

```
```In[1]:= PolynomialReduce[x^2+y^2,{x-y,y+a}](*Mathematica*)

Out[1]= {{x + y, -2 a + 2 y}, 2 a^2}```

The output of both is the same as that of Mma; only the result given by Maple is inconsistent with Mathematica's.

The example above is so simple that the desired result can be found simply by hand. Here is a larger example:
Given two polynomials .txt and .txt, as well as a list of polynomials .txt, I would like to evaluate

```# Suppose that one has downloaded these three files.
poly1, poly2 := fscanf("poly1.txt", "%a")[], fscanf("poly2.txt", "%a")[]:
MmaTranslator:-Mma:-PolynomialReduce((a - poly1)*(a - poly2), pList);```

But its result is just “[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]”, while when a＝0 it should be “[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 1, 2, 1, 0, 2, 2, 3, 1, 1, 1, 2, 1, 0, 0, 0, 1, 1, 2, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0], 0]”.
So why does  return a distinct value?

## General `convert/elsymfun` like SymPy's ...

Maple 2023

In an old question, @mbras asked for a "partial" ``convert/elsymfun``. However, SymPy's `sympy.polys.rings.PolyElement.symmetrize` seems to provide more examples that cannot be handled by the program that appeared in that question.
For instance,

```>>> from sympy import var
>>> var('x:z,p:r')
(x, y, z, p, q, r)
>>> from sympy.polys.polyfuncs import symmetrize
>>> symmetrize(x**2-(y**2+2**z),[y,x],formal=True,symbols=[p+p,q*q])[0]
-2**z - 4*p**2 + 2*q**2
>>> symmetrize(x*x*y+y*y*z+z*z*x,[y,x,z],formal=True,symbols=[p,q,r])
(0, x**2*y + x*z**2 + y**2*z, [(p, x + y + z), (q, x*y + x*z + y*z), (r, x*y*z)])```

Though I can , can't the built-in  be generalized to such expressions (in other words, write the polynomial part of input as a symmetric part and a remainder with (named, if need be) elementary symmetric polynomials)?

Besides, since any symmetric polynomial can also be expressed in terms of the complete symmetric polynomials, is there a similar  command in Maple?

## What does `_EnvLinalg95` do?...

Maple 2023

Why does `_EnvLinalg95` only affect  (and ) and not and ?

 > restart;
 > m := <3 , 4 | 4 , 3>;
 (1)
 > LinearAlgebra:-Eigenvalues(m);
 (2)
 > LinearAlgebra:-Eigenvectors(m);
 (3)
 > LinearAlgebra:-EigenConditionNumbers(m);
 (4)
 > _EnvLinalg95 := true:
 > whattype(m);
 (5)
 > LinearAlgebra:-Eigenvalues(m);
 (6)
 > LinearAlgebra:-Eigenvectors(m):
 > LinearAlgebra:-EigenConditionNumbers(m);
 (7)
 > _EnvLinalg95 := false:
 > LinearAlgebra:-Eigenvectors(m);
 (8)