LMOpConvexHull¶

Calling sequence:¶

$\operatorname{LMOpConvexHull}(L, x, M, b)$

Parameters:¶

  • $L$, a linear Mahler operator with polynomial coefficients
  • $x$, the name of the variable
  • $M$, the name of the Mahler operator
  • $b$, the radix of the Mahler operator
  • some optional keyword parameters

Description:¶

  • $\operatorname{LMOpConvexHull}$ computes the lower or upper Newton polygon of the operator, possibly with some additional information, determined by the keyword parameters.
  • An optional keyword parameter direction can take several values:
    • '$\mathit direction$' = '$\mathit lower$', then the computation is made for the lower Newton polygon of the operator $L$,
    • '$\mathit direction$' = '$\mathit upper$', then the computation is made for the upper Newton polygon of the operator $L$,
    • '$\mathit direction$' = '$\mathit undefined$' (which is the default), then the output is the two terms sequence made first from the result for '$\mathit direction$' = '$\mathit lower$', and next from the result for '$\mathit direction$' = '$\mathit upper$'.
  • An optional keyword parameter output can take several values:
    • '$\mathit output$' = '$\mathit geometry$', then the output is the lower or upper Newton polygon of $L$, or both according to the choice made for the parameter direction,
    • '$\mathit output$' = '$\mathit charpolys'$ (this is the default), then the output is a list of records depending on the choice made for the parameter direction as above. The list of records is indexed by the list of edges of the Newton polygon (from left to right, that is with increasing abscissae). Note that there is an additional terminal edge with slope $\pm\infty$ to keep the last point of the convex hull.
  • With '$\mathit output$' = '$\mathit geometry'$, the procedure provides (in increasing order with respect to the abscissa) all the vertices of the Newton diagram of the operator which are on the Newton polygon, and not only the vertices of the Newton polygon.
  • With '$\mathit output$' = '$\mathit charpolys$', the record associated to the $j$th edge of Newton polygon has five keywords:
    • $\mathit abscissa$, the abscissa of the edge's left end,
    • $\mathit ordinate$, the ordinate of the edge's left end,
    • $\mathit slope$, the slope of the edge,
    • $\mathit intercept$, the $y$-intercept of the edge,
    • $\mathit charpoly$, the characteristic polynomial of the edge.
  • In case '$\mathit output$' = '$\mathit charpolys$' is used, the keyword parameter $\mathit variable$ permits the user to choose the name of the variable in the characteristic polynomials. The default is '$\mathit variable$' = '$\mathit lambda$'.
  • A term $c_{i,k}x^iM^k$ in the operator $L$ provides a point $(u,v) = (b^k, i)$ in the Newton diagram of $L$. The characteristic polynomial of an edge of the Newton polygon is the sum of terms $c_{i,k}\lambda^{k - k_0}$ if $b^{k_0}$ is the abscissa of the edge's left end.

References:¶

  • Roques Julien (2018). On the algebraic relations between Mahler functions. Trans. Amer. Math. Soc. 370.1, pp. 321--355.
  • Frédéric Chyzak, Thomas Dreyfus, Philippe Dumas, and Marc Mezzarobba (2018). Computing solutions of linear Mahler equations. Mathematics of Computation 87.314, pp. 2977–3021.

Example:¶

In [1]:
libname := libname, FileTools:-JoinPath(["maple","lib","dcfun.mla"],base=homedir):
In [2]:
 with(dcfun):
Out[2]:

We consider the following linear Mahler operator $L$.

In [3]:
 b := 2;
Out[3]:

$$2$$

In [4]:
 L := x^3*((x + 2*x^2) + ( 1 - x)*M + (10 + x^3)*M^2 + x^4*M^3 + x^12*M^4);
Out[4]:

$$x^{3} \left(x +2 x^{2}+\left(1-x \right) M +\left(x^{3}+10\right) M^{2}+x^{4} M^{3}+x^{12} M^{4}\right)$$

We draw its Newton diagram and its lower and upper Newton polygons.

In [5]:
 LMOpNewtonPolygon(L, 0, x, M, b);
Out[5]:

$$$$

We now calculate its upper and lower Newton polygons. (Obviously, the previous drawing used this calculation.)

In [6]:
 LMOpConvexHull(L, x, M, b, 'output' = 'geometry');
Out[6]:

$$[[1, 4], [2, 3], [4, 3], [8, 7], [16, 15]], [[1, 5], [16, 15]]$$

The lower Newton polygon of $L$ has three edges. We compute the associated sequence of characteristic polynomials. The output of the first command is a list of three records.

In [7]:
 ch := LMOpConvexHull(L, x, M, b, 'direction' = 'lower', 'output' = 'charpolys', 'variable' = 'alpha');
Out[7]:

$$[\textbf{module}() \,\textbf{export} \,abscissa,\,ordinate,\,slope,\,intercept,\,charpoly; \, \textbf{end}, \textbf{module}() \,\textbf{export} \,abscissa,\,ordinate,\,slope,\,intercept,\,charpoly; \, \textbf{end}, \textbf{module}() \,\textbf{export} \,abscissa,\,ordinate,\,slope,\,intercept,\,charpoly; \, \textbf{end}, \textbf{module}() \,\textbf{export} \,abscissa,\,ordinate,\,slope,\,intercept,\,charpoly; \, \textbf{end}]$$

In [8]:
 seq(r:-charpoly, r = ch);
Out[8]:

$$1+\alpha, 1+10 \alpha, \alpha^{2}+\alpha +10, 0$$