Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PrecisionLauricella: package for numerical computation of Lauricella functions depending on a parameter

M.A. Bezuglov B.A. Kniehl A.I. Onishchenko O.L. Veretin II. Institut für Theoretische Physik, Universität Hamburg, Hamburg, Germany Bogoliubov Laboratory of Theoretical Physics, Joint Institute for Nuclear Research, Dubna, Russia, Budker Institute of Nuclear Physics, Novosibirsk, Russia Institut für Theoretische Physik, Universität Regensburg, Regensburg, Germany
Abstract

We introduce the PrecisionLauricella package, a computational tool developed in Wolfram Mathematica for high-precision numerical evaluations of Lauricella functions with indices linearly dependent on a parameter, ε𝜀\varepsilonitalic_ε. The package leverages a method based on analytical continuation via Frobenius generalized power series, providing an efficient and accurate alternative to conventional approaches relying on multi-dimensional series expansions or Mellin–Barnes representations. This one-dimensional approach is particularly advantageous for high-precision calculations and facilitates further optimization through ε𝜀\varepsilonitalic_ε-dependent reconstruction from evaluations at specific numerical values, enabling efficient parallelization. The underlying mathematical framework for this method has been detailed in our previous work, while the current paper focuses on the design, implementation, and practical applications of the PrecisionLauricella package.

PROGRAM SUMMARY

Program Title: PrecisionLauricella
Developer’s repository link: https://bitbucket.org/BezuglovMaxim/precisionlauricella-package/src/main/
Licensing provisions(please choose one): GPLv3
Programming language: Wolfram Mathematica
Supplementary material: PrecisionLauricella_Examples.nb
Nature of problem(approx. 50-250 words): Lauricella functions, generalizations of hypergeometric functions, appearing in physics and mathematics, including Feynman integrals and string theory. When their indices depend linearly on a parameter ε𝜀\varepsilonitalic_ε, their numerical evaluation becomes challenging due to the complexity of high-dimensional series and singularities. Traditional methods, like hypergeometric re-expansion or Mellin–Barnes integrals, often lack efficiency and precision.

Managing multi-dimensional sums exacerbates computational costs, especially for high-precision requirements, making these approaches unsuitable for many practical applications. Thus, there is a pressing need for efficient, scalable methods capable of maintaining numerical accuracy and effectively handling parameter dependencies.
Solution method(approx. 50-250 words): Our method uses the Frobenius approach to achieve analytical continuations of Lauricella functions through generalized power series. Representing the functions as one-dimensional series simplifies high-precision numerical evaluation compared to traditional methods relying on multi-dimensional expansions or Mellin–Barnes integrals.

We further optimize calculations by reconstructing ε𝜀\varepsilonitalic_ε dependencies from evaluations at specific values, enabling efficient parallelization and reducing computational costs.

A comprehensive mathematical exposition of the method is provided in our previous work [1].

References

  • [1] M. Bezuglov, B. Kniehl, A. Onishchenko, O. Veretin, High-precision numerical evaluation of Lauricella functions, (2 2025). arXiv:2502.03276.
journal: Computer Physics Communications

1 Introduction

Hypergeometric functions, both in one and several variables, play a fundamental role in physics and mathematics, particularly in quantum field theory and the computation of Feynman integrals. Numerous approaches have been devised to express Feynman integrals through hypergeometric functions, including the Mellin–Barnes method,111For an introduction and references to foundational works, see Refs. [1, 2, 3]. the DRA method [4, 5, 6], based on dimensional recurrence relation and analytical properties, the method of functional equations [7], the exact Frobenius method [8, 9, 10], and the Gelfand–Kapranov–Zelevinsky (GKZ) approach to Feynman integrals222For a comprehensive overview, see Refs. [11, 12]. [13, 14, 15, 16, 17, 18, 19, 20, 21, 22]. These hypergeometric functions often depend on parameters linearly related to the dimensional regularization parameter ε𝜀\varepsilonitalic_ε, and their Laurent expansions in ε𝜀\varepsilonitalic_ε are essential for practical applications. Several computational tools have been developed for these expansions, both numerically and analytically333See also [23, 24, 25, 26, 27, 28, 29, 30, 31] and references therein for additional works on ε𝜀\varepsilonitalic_ε-expansion of hypergeometric functions. [32, 33, 34, 35, 36, 37, 38, 39].

This paper introduces PrecisionLauricella, a software package written in Wolfram Mathematica, designed for the high-precision numerical evaluation of Lauricella functions with indices linearly dependent on the parameter ε𝜀\varepsilonitalic_ε. The mathematical foundations of the algorithm implemented in this package have been detailed in our previous work [40]. The package enables computations of these functions’ Laurent expansions about ε=0𝜀0\varepsilon=0italic_ε = 0 for arbitrary argument values. The primary challenge lies in the analytical continuation of the defining series representations of Lauricella functions from their convergence domains to the entire nsuperscript𝑛\mathbb{C}^{n}blackboard_C start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT space, where n𝑛nitalic_n is the number of arguments. While classical integral representations such as those of Euler [41] and Mellin–Barnes [41, 42] can, in principle, address this continuation, they are less practical for high-precision numerical evaluations. Instead, series representations that solve the corresponding partial differential equations and are valid in subdomains covering the entire nsuperscript𝑛\mathbb{C}^{n}blackboard_C start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT space are more effective. These representations not only facilitate accurate numerical computations, but also align with the classical approaches to analytic continuation developed by Kummer and Riemann [43, 44], which emphasize the monodromy group.

Existing methods for the analytic continuation of Lauricella functions can be categorized into two main approaches: re-expansion of hypergeometric series using known continuations of simpler functions [42, 45, 46, 41, 47, 48] and Mellin–Barnes integral representations [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59].

In this work, we address the analytic continuation problem by leveraging the Frobenius method to construct generalized power series solutions of the Pfaffian systems satisfied by Lauricella functions along chosen analytic-continuation paths. This approach produces one-dimensional series, which are computationally more efficient than the multi-dimensional series arising in other methods, such as Mellin–Barnes representations. PrecisionLauricella automates the entire process, offering an accessible and efficient tool for researchers dealing with Lauricella functions and their applications.

The remainder of the paper is organized as follows. In Section 2, we briefly recall the definition of Lauricella functions and associated systems of differential equations. Section 3, we provide a brief description of all the steps of the algorithm and present the program’s flowchart. Section 4 contains details on the usage of the PrecisionLauricella package and its performance. Finally, in Section 5, we present our conclusion.

2 Lauricella Functions and associated differential equations

In this section, we discuss the class of functions that are implemented in the presented package. Specifically, we focus on three Lauricella functions: FA(n)superscriptsubscript𝐹𝐴𝑛F_{A}^{(n)}italic_F start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n ) end_POSTSUPERSCRIPT, FB(n)superscriptsubscript𝐹𝐵𝑛F_{B}^{(n)}italic_F start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n ) end_POSTSUPERSCRIPT, and FD(n)superscriptsubscript𝐹𝐷𝑛F_{D}^{(n)}italic_F start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n ) end_POSTSUPERSCRIPT for n3𝑛3n\leq 3italic_n ≤ 3. Generally, these functions are defined as hypergeometric series of several variables [60, 61]:

FA(n)(α;β1,,βn;γ1,,γn;x1,,xn)superscriptsubscript𝐹𝐴𝑛𝛼subscript𝛽1subscript𝛽𝑛subscript𝛾1subscript𝛾𝑛subscript𝑥1subscript𝑥𝑛\displaystyle F_{A}^{(n)}(\alpha;\beta_{1},\dots,\beta_{n};\gamma_{1},\dots,% \gamma_{n};x_{1},\dots,x_{n})italic_F start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n ) end_POSTSUPERSCRIPT ( italic_α ; italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_β start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ; italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_γ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ; italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT )
=\displaystyle== m1,,mn=0(α)m1++mn(β1)m1(βn)mn(γ1)m1(γn)mnm1!mn!x1m1xnmn,superscriptsubscriptsubscript𝑚1subscript𝑚𝑛0subscript𝛼subscript𝑚1subscript𝑚𝑛subscriptsubscript𝛽1subscript𝑚1subscriptsubscript𝛽𝑛subscript𝑚𝑛subscriptsubscript𝛾1subscript𝑚1subscriptsubscript𝛾𝑛subscript𝑚𝑛subscript𝑚1subscript𝑚𝑛superscriptsubscript𝑥1subscript𝑚1superscriptsubscript𝑥𝑛subscript𝑚𝑛\displaystyle\sum\limits_{m_{1},\dots,m_{n}=0}^{\infty}\frac{(\alpha)_{m_{1}+% \dots+m_{n}}(\beta_{1})_{m_{1}}\dots(\beta_{n})_{m_{n}}}{(\gamma_{1})_{m_{1}}% \dots(\gamma_{n})_{m_{n}}\,m_{1}!\dots m_{n}!}\,x_{1}^{m_{1}}\dots x_{n}^{m_{n% }}\,,∑ start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT divide start_ARG ( italic_α ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + ⋯ + italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT … ( italic_β start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_ARG start_ARG ( italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT … ( italic_γ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ! … italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ! end_ARG italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT … italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ,
FB(n)(α1,,αn;β1,,βn;γ;x1,,xn)superscriptsubscript𝐹𝐵𝑛subscript𝛼1subscript𝛼𝑛subscript𝛽1subscript𝛽𝑛𝛾subscript𝑥1subscript𝑥𝑛\displaystyle F_{B}^{(n)}(\alpha_{1},\dots,\alpha_{n};\beta_{1},\dots,\beta_{n% };\gamma;x_{1},\dots,x_{n})italic_F start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n ) end_POSTSUPERSCRIPT ( italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_α start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ; italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_β start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ; italic_γ ; italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT )
=\displaystyle== m1,,mn=0(α1)m1(αn)mn(β1)m1(βn)mn(γ)m1++mnm1!mn!x1m1xnmn,superscriptsubscriptsubscript𝑚1subscript𝑚𝑛0subscriptsubscript𝛼1subscript𝑚1subscriptsubscript𝛼𝑛subscript𝑚𝑛subscriptsubscript𝛽1subscript𝑚1subscriptsubscript𝛽𝑛subscript𝑚𝑛subscript𝛾subscript𝑚1subscript𝑚𝑛subscript𝑚1subscript𝑚𝑛superscriptsubscript𝑥1subscript𝑚1superscriptsubscript𝑥𝑛subscript𝑚𝑛\displaystyle\sum\limits_{m_{1},\dots,m_{n}=0}^{\infty}\frac{(\alpha_{1})_{m_{% 1}}\dots(\alpha_{n})_{m_{n}}(\beta_{1})_{m_{1}}\dots(\beta_{n})_{m_{n}}}{(% \gamma)_{m_{1}+\dots+m_{n}}\,m_{1}!\dots m_{n}!}\,x_{1}^{m_{1}}\dots x_{n}^{m_% {n}}\,,∑ start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT divide start_ARG ( italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT … ( italic_α start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT … ( italic_β start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_ARG start_ARG ( italic_γ ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + ⋯ + italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ! … italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ! end_ARG italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT … italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ,
FD(n)(α;β1,,βn;γ;x1,,xn)superscriptsubscript𝐹𝐷𝑛𝛼subscript𝛽1subscript𝛽𝑛𝛾subscript𝑥1subscript𝑥𝑛\displaystyle F_{D}^{(n)}(\alpha;\beta_{1},\dots,\beta_{n};\gamma;x_{1},\dots,% x_{n})italic_F start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n ) end_POSTSUPERSCRIPT ( italic_α ; italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_β start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ; italic_γ ; italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) (1)
=\displaystyle== m1,,mn=0(α)m1++mn(β1)m1(βn)mn(γ)m1++mnm1!mn!x1m1xnmn.superscriptsubscriptsubscript𝑚1subscript𝑚𝑛0subscript𝛼subscript𝑚1subscript𝑚𝑛subscriptsubscript𝛽1subscript𝑚1subscriptsubscript𝛽𝑛subscript𝑚𝑛subscript𝛾subscript𝑚1subscript𝑚𝑛subscript𝑚1subscript𝑚𝑛superscriptsubscript𝑥1subscript𝑚1superscriptsubscript𝑥𝑛subscript𝑚𝑛\displaystyle\sum\limits_{m_{1},\dots,m_{n}=0}^{\infty}\frac{(\alpha)_{m_{1}+% \dots+m_{n}}(\beta_{1})_{m_{1}}\dots(\beta_{n})_{m_{n}}}{(\gamma)_{m_{1}+\dots% +m_{n}}\,m_{1}!\dots m_{n}!}\,x_{1}^{m_{1}}\dots x_{n}^{m_{n}}\,.∑ start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT divide start_ARG ( italic_α ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + ⋯ + italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT … ( italic_β start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_ARG start_ARG ( italic_γ ) start_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + ⋯ + italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ! … italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ! end_ARG italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT … italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUPERSCRIPT .

All these series converge absolutely within specific regions. For the functions FB(n)superscriptsubscript𝐹𝐵𝑛F_{B}^{(n)}italic_F start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n ) end_POSTSUPERSCRIPT and FD(n)superscriptsubscript𝐹𝐷𝑛F_{D}^{(n)}italic_F start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n ) end_POSTSUPERSCRIPT, the region of convergence is given by |x1|<1subscript𝑥11|x_{1}|<1| italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT | < 1, |x2|<1subscript𝑥21|x_{2}|<1| italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT | < 1, …, |xn|<1subscript𝑥𝑛1|x_{n}|<1| italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT | < 1. For the function FA(n)superscriptsubscript𝐹𝐴𝑛F_{A}^{(n)}italic_F start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n ) end_POSTSUPERSCRIPT, the region is given by |x1|+|x2|++|xn|<1subscript𝑥1subscript𝑥2subscript𝑥𝑛1|x_{1}|+|x_{2}|+\dots+|x_{n}|<1| italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT | + | italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT | + ⋯ + | italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT | < 1.

When reduced to a single variable, these series correspond to the well-known hypergeometric function:

FA(1)=FB(1)=FD(1)=F12.superscriptsubscript𝐹𝐴1superscriptsubscript𝐹𝐵1superscriptsubscript𝐹𝐷1subscriptsubscript𝐹12F_{A}^{(1)}=F_{B}^{(1)}=F_{D}^{(1)}={}_{2}F_{1}\,.italic_F start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT = italic_F start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT = italic_F start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT = start_FLOATSUBSCRIPT 2 end_FLOATSUBSCRIPT italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT . (2)

Calculating these functions within their convergence regions is straightforward and does not pose significant challenges. However, our primary interest lies in their analytic continuation. To achieve this, we utilize partial differential equations associated with these functions. These partial differential equations can be derived directly from the series definitions.

Consider a general series of the form

f=Ai1,i2,,inx1i1x2i2xnin,𝑓subscript𝐴subscript𝑖1subscript𝑖2subscript𝑖𝑛superscriptsubscript𝑥1subscript𝑖1superscriptsubscript𝑥2subscript𝑖2superscriptsubscript𝑥𝑛subscript𝑖𝑛f=\sum A_{i_{1},i_{2},\dots,i_{n}}x_{1}^{i_{1}}x_{2}^{i_{2}}\dots x_{n}^{i_{n}% }\,,italic_f = ∑ italic_A start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_i start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_i start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT … italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , (3)

where

Ai1,,ik+1,,inAi1,,ik,,in=Pk(i1,i2,,in)Pk(i1,i2,,in),subscript𝐴subscript𝑖1subscript𝑖𝑘1subscript𝑖𝑛subscript𝐴subscript𝑖1subscript𝑖𝑘subscript𝑖𝑛subscript𝑃𝑘subscript𝑖1subscript𝑖2subscript𝑖𝑛subscriptsuperscript𝑃𝑘subscript𝑖1subscript𝑖2subscript𝑖𝑛\frac{A_{i_{1},\dots,i_{k}+1,\dots,i_{n}}}{A_{i_{1},\dots,i_{k},\dots,i_{n}}}=% \frac{P_{k}(i_{1},i_{2},\dots,i_{n})}{P^{\prime}_{k}(i_{1},i_{2},\dots,i_{n})}\,,divide start_ARG italic_A start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT + 1 , … , italic_i start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_ARG start_ARG italic_A start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , … , italic_i start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_ARG = divide start_ARG italic_P start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_i start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_i start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_i start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_i start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_i start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_i start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) end_ARG , (4)

and Pksubscript𝑃𝑘P_{k}italic_P start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, Pksubscriptsuperscript𝑃𝑘P^{\prime}_{k}italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT are polynomials in their variables. The function f𝑓fitalic_f then satisfies the following system of partial differential equations:

[Pk(θx1,θx2,,θxn)1xkPk(θx1,θx2,,θxn)]f=0,k=1,,n,formulae-sequencedelimited-[]subscriptsuperscript𝑃𝑘subscript𝜃subscript𝑥1subscript𝜃subscript𝑥2subscript𝜃subscript𝑥𝑛1subscript𝑥𝑘subscript𝑃𝑘subscript𝜃subscript𝑥1subscript𝜃subscript𝑥2subscript𝜃subscript𝑥𝑛𝑓0𝑘1𝑛\left[P^{\prime}_{k}\left(\theta_{x_{1}},\theta_{x_{2}},\dots,\theta_{x_{n}}% \right)\frac{1}{x_{k}}-P_{k}\left(\theta_{x_{1}},\theta_{x_{2}},\dots,\theta_{% x_{n}}\right)\right]f=0\,,\qquad k=1,\dots,n\,,[ italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_θ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_θ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , … , italic_θ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT ) divide start_ARG 1 end_ARG start_ARG italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_ARG - italic_P start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_θ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_θ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , … , italic_θ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT ) ] italic_f = 0 , italic_k = 1 , … , italic_n , (5)

where θa=a/asubscript𝜃𝑎𝑎𝑎\theta_{a}=a\partial/\partial aitalic_θ start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT = italic_a ∂ / ∂ italic_a.

For example, for the function FB(2)(α1,α2;β1,β2;γ;x,y)=F3superscriptsubscript𝐹𝐵2subscript𝛼1subscript𝛼2subscript𝛽1subscript𝛽2𝛾𝑥𝑦subscript𝐹3F_{B}^{(2)}(\alpha_{1},\alpha_{2};\beta_{1},\beta_{2};\gamma;x,y)=F_{3}italic_F start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT ( italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ; italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ; italic_γ ; italic_x , italic_y ) = italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT, the partial differential equations are:

[x(1x)2x2+y2xy+(γ(α1+β1+1)x)xα1β1yyαβ1]F3delimited-[]𝑥1𝑥superscript2superscript𝑥2𝑦superscript2𝑥𝑦𝛾subscript𝛼1subscript𝛽11𝑥𝑥subscript𝛼1subscript𝛽1𝑦𝑦𝛼subscript𝛽1subscript𝐹3\displaystyle\small\left[x(1-x)\frac{\partial^{2}}{\partial x^{2}}+y\frac{% \partial^{2}}{\partial x\partial y}+\left(\gamma-(\alpha_{1}+\beta_{1}+1)x% \right)\frac{\partial}{\partial x}-\alpha_{1}\beta_{1}y\frac{\partial}{% \partial y}-\alpha\beta_{1}\right]F_{3}[ italic_x ( 1 - italic_x ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_y divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG + ( italic_γ - ( italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 1 ) italic_x ) divide start_ARG ∂ end_ARG start_ARG ∂ italic_x end_ARG - italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_y divide start_ARG ∂ end_ARG start_ARG ∂ italic_y end_ARG - italic_α italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT =\displaystyle== 0,0\displaystyle 0\,,0 ,
[y(1y)2y2+x2xy+(γ(α2+β2+1)y)yα2β2xxαβ2]F3delimited-[]𝑦1𝑦superscript2superscript𝑦2𝑥superscript2𝑥𝑦𝛾subscript𝛼2subscript𝛽21𝑦𝑦subscript𝛼2subscript𝛽2𝑥𝑥𝛼subscript𝛽2subscript𝐹3\displaystyle\left[y(1-y)\frac{\partial^{2}}{\partial y^{2}}+x\frac{\partial^{% 2}}{\partial x\partial y}+\left(\gamma-(\alpha_{2}+\beta_{2}+1)y\right)\frac{% \partial}{\partial y}-\alpha_{2}\beta_{2}x\frac{\partial}{\partial x}-\alpha% \beta_{2}\right]F_{3}[ italic_y ( 1 - italic_y ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_x divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG + ( italic_γ - ( italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT + italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT + 1 ) italic_y ) divide start_ARG ∂ end_ARG start_ARG ∂ italic_y end_ARG - italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_x divide start_ARG ∂ end_ARG start_ARG ∂ italic_x end_ARG - italic_α italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT =\displaystyle== 0.0\displaystyle 0\,.0 .

While obtaining such partial differential systems is straightforward, applying the Frobenius method to them can be challenging. To facilitate this, we require a complete system of equations in Pfaffian form:

dJ=(Mxdx+Mydy)J.𝑑𝐽subscript𝑀𝑥𝑑𝑥subscript𝑀𝑦𝑑𝑦𝐽dJ=\left(M_{x}\,dx+M_{y}\,dy\right)J\,.italic_d italic_J = ( italic_M start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_d italic_x + italic_M start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT italic_d italic_y ) italic_J . (7)

If we choose a basis as

J={F3,θxF3,θyF3,θxθyF3},𝐽subscript𝐹3subscript𝜃𝑥subscript𝐹3subscript𝜃𝑦subscript𝐹3subscript𝜃𝑥subscript𝜃𝑦subscript𝐹3J=\left\{F_{3},~{}\theta_{x}F_{3},~{}\theta_{y}F_{3},~{}\theta_{x}\theta_{y}F_% {3}\right\}\,,italic_J = { italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_θ start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_θ start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_θ start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_θ start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT } , (8)

then the matrices will have the form

Mxsubscript𝑀𝑥\displaystyle\scriptsize M_{x}italic_M start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT =\displaystyle== (01x00α1β1x1γ+α1x+β1x+1(x1)x01(x1)x0001x0α2β2yx(xyxy)α1β1(y1)xyxyα1xβ1x+α1xy+β1xy+α2y+β2yγy+yx(xyxy)),01𝑥00subscript𝛼1subscript𝛽1𝑥1𝛾subscript𝛼1𝑥subscript𝛽1𝑥1𝑥1𝑥01𝑥1𝑥0001𝑥0subscript𝛼2subscript𝛽2𝑦𝑥𝑥𝑦𝑥𝑦subscript𝛼1subscript𝛽1𝑦1𝑥𝑦𝑥𝑦subscript𝛼1𝑥subscript𝛽1𝑥subscript𝛼1𝑥𝑦subscript𝛽1𝑥𝑦subscript𝛼2𝑦subscript𝛽2𝑦𝛾𝑦𝑦𝑥𝑥𝑦𝑥𝑦\displaystyle\left(\begin{array}[]{cccc}0&\frac{1}{x}&0&0\\ -\frac{\alpha_{1}\beta_{1}}{x-1}&-\frac{-\gamma+\alpha_{1}x+\beta_{1}x+1}{(x-1% )x}&0&\frac{1}{(x-1)x}\\ 0&0&0&\frac{1}{x}\\ 0&-\frac{\alpha_{2}\beta_{2}y}{x(xy-x-y)}&-\frac{\alpha_{1}\beta_{1}(y-1)}{xy-% x-y}&-\frac{-\alpha_{1}x-\beta_{1}x+\alpha_{1}xy+\beta_{1}xy+\alpha_{2}y+\beta% _{2}y-\gamma y+y}{x(xy-x-y)}\\ \end{array}\right)\,,( start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG italic_x end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL - divide start_ARG italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_x - 1 end_ARG end_CELL start_CELL - divide start_ARG - italic_γ + italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x + italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x + 1 end_ARG start_ARG ( italic_x - 1 ) italic_x end_ARG end_CELL start_CELL 0 end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG ( italic_x - 1 ) italic_x end_ARG end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG italic_x end_ARG end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL - divide start_ARG italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y end_ARG start_ARG italic_x ( italic_x italic_y - italic_x - italic_y ) end_ARG end_CELL start_CELL - divide start_ARG italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_y - 1 ) end_ARG start_ARG italic_x italic_y - italic_x - italic_y end_ARG end_CELL start_CELL - divide start_ARG - italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x - italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x + italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x italic_y + italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x italic_y + italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y + italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y - italic_γ italic_y + italic_y end_ARG start_ARG italic_x ( italic_x italic_y - italic_x - italic_y ) end_ARG end_CELL end_ROW end_ARRAY ) , (13)
Mysubscript𝑀𝑦\displaystyle M_{y}italic_M start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT =\displaystyle== (001y00001yα2β2y10γ+α2y+β2y+1(y1)y1(y1)y0α2β2(x1)xyxyα1β1xy(xyxy)α1x+β1xγx+α2xy+β2xy+xα2yβ2yy(xyxy)).001𝑦00001𝑦subscript𝛼2subscript𝛽2𝑦10𝛾subscript𝛼2𝑦subscript𝛽2𝑦1𝑦1𝑦1𝑦1𝑦0subscript𝛼2subscript𝛽2𝑥1𝑥𝑦𝑥𝑦subscript𝛼1subscript𝛽1𝑥𝑦𝑥𝑦𝑥𝑦subscript𝛼1𝑥subscript𝛽1𝑥𝛾𝑥subscript𝛼2𝑥𝑦subscript𝛽2𝑥𝑦𝑥subscript𝛼2𝑦subscript𝛽2𝑦𝑦𝑥𝑦𝑥𝑦\displaystyle\left(\begin{array}[]{cccc}0&0&\frac{1}{y}&0\\ 0&0&0&\frac{1}{y}\\ -\frac{\alpha_{2}\beta_{2}}{y-1}&0&-\frac{-\gamma+\alpha_{2}y+\beta_{2}y+1}{(y% -1)y}&\frac{1}{(y-1)y}\\ 0&-\frac{\alpha_{2}\beta_{2}(x-1)}{xy-x-y}&-\frac{\alpha_{1}\beta_{1}x}{y(xy-x% -y)}&-\frac{\alpha_{1}x+\beta_{1}x-\gamma x+\alpha_{2}xy+\beta_{2}xy+x-\alpha_% {2}y-\beta_{2}y}{y(xy-x-y)}\\ \end{array}\right)\,.( start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG italic_y end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG italic_y end_ARG end_CELL end_ROW start_ROW start_CELL - divide start_ARG italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG italic_y - 1 end_ARG end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG - italic_γ + italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y + italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y + 1 end_ARG start_ARG ( italic_y - 1 ) italic_y end_ARG end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG ( italic_y - 1 ) italic_y end_ARG end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL - divide start_ARG italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_x - 1 ) end_ARG start_ARG italic_x italic_y - italic_x - italic_y end_ARG end_CELL start_CELL - divide start_ARG italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x end_ARG start_ARG italic_y ( italic_x italic_y - italic_x - italic_y ) end_ARG end_CELL start_CELL - divide start_ARG italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x + italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x - italic_γ italic_x + italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_x italic_y + italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_x italic_y + italic_x - italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y - italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y end_ARG start_ARG italic_y ( italic_x italic_y - italic_x - italic_y ) end_ARG end_CELL end_ROW end_ARRAY ) . (18)

In our work, for the functions under consideration, we utilize pre-derived Pfaffian systems from Ref. [39] with the following function bases:

{θxj1θxjkFN| 0kn,j1<j2<<jk},N=A,B,formulae-sequenceconditional-setsubscript𝜃subscript𝑥subscript𝑗1subscript𝜃subscript𝑥subscript𝑗𝑘subscript𝐹𝑁formulae-sequence 0𝑘𝑛subscript𝑗1subscript𝑗2subscript𝑗𝑘𝑁𝐴𝐵\displaystyle\left\{\theta_{x_{j_{1}}}\dots\theta_{x_{j_{k}}}F_{N}\,\Big{|}\,0% \leq k\leq n,\,j_{1}<j_{2}<\dots<j_{k}\right\}\,,\qquad N=A,B\,,{ italic_θ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_j start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_POSTSUBSCRIPT … italic_θ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_j start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_F start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT | 0 ≤ italic_k ≤ italic_n , italic_j start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT < italic_j start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT < ⋯ < italic_j start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT } , italic_N = italic_A , italic_B ,
{FD,θxjFD|j=1,,n}.conditional-setsubscript𝐹𝐷subscript𝜃subscript𝑥𝑗subscript𝐹𝐷𝑗1𝑛\displaystyle\left\{F_{D},\,\theta_{x_{j}}F_{D}\,\Big{|}\,j=1,\dots,n\right\}\,.{ italic_F start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT , italic_θ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_F start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT | italic_j = 1 , … , italic_n } . (20)

Our aim is to evaluate the value of a chosen Lauricella function at the point x𝑥\vec{x}over→ start_ARG italic_x end_ARG given its initial value at the point x0subscript𝑥0\vec{x}_{0}over→ start_ARG italic_x end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. This can be most easily done by considering the above differential equation system along some path connecting these two points. Suppose we want to get a solution along the path f𝑓fitalic_f parameterized by the parameter t𝑡titalic_t, such that

x1=f1(t),x2=f2(t),,xn=fn(t).formulae-sequencesubscript𝑥1subscript𝑓1𝑡formulae-sequencesubscript𝑥2subscript𝑓2𝑡subscript𝑥𝑛subscript𝑓𝑛𝑡x_{1}=f_{1}(t)\,,\quad x_{2}=f_{2}(t)\,,\quad\dots\,,\quad x_{n}=f_{n}(t)\,.italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_t ) , italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_f start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_t ) , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = italic_f start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_t ) . (21)

In this way, the differential equation system in Pfaffian form restricted to this path takes the form

dJdt=MtJ,Mt=x1tM1+x2tM2++xntMn.formulae-sequence𝑑𝐽𝑑𝑡subscript𝑀𝑡𝐽subscript𝑀𝑡subscript𝑥1𝑡subscript𝑀1subscript𝑥2𝑡subscript𝑀2subscript𝑥𝑛𝑡subscript𝑀𝑛\frac{dJ}{dt}=M_{t}J\,,\qquad M_{t}=\frac{\partial x_{1}}{\partial t}M_{1}+% \frac{\partial x_{2}}{\partial t}M_{2}+\dots+\frac{\partial x_{n}}{\partial t}% M_{n}\,.divide start_ARG italic_d italic_J end_ARG start_ARG italic_d italic_t end_ARG = italic_M start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT italic_J , italic_M start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = divide start_ARG ∂ italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG ∂ italic_t end_ARG italic_M start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + divide start_ARG ∂ italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG ∂ italic_t end_ARG italic_M start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT + ⋯ + divide start_ARG ∂ italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_ARG start_ARG ∂ italic_t end_ARG italic_M start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT . (22)

In our work, we choose the contour f𝑓fitalic_f as a line passing through the center of coordinates,

x1=κ1t,x2=κ2t,,xn=κnt.formulae-sequencesubscript𝑥1subscript𝜅1𝑡formulae-sequencesubscript𝑥2subscript𝜅2𝑡subscript𝑥𝑛subscript𝜅𝑛𝑡x_{1}=\kappa_{1}t\,,\quad x_{2}=\kappa_{2}t\,,\quad\dots\,,\quad x_{n}=\kappa_% {n}t\,.italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_κ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_t , italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_κ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_t , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = italic_κ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT italic_t . (23)

3 Algorithm overview

This block is responsible for finding the path of analytical continuation of the series beyond the convergence region This loop can run no more than four times This block can be efficiently parallelized Start Target function, precision and expansion data boundary conditions and ε𝜀\varepsilonitalic_ε-lattice Derive a system of differential equations in one variable System of differential equations in Pfaffian form Need an analytic continuation? generate a set of regions on a grid Constract intersection graph Find paths connecting start and end points in a graph Is there at least one path? increase the grid step and enlarge the generation area Derive recurrence relations for Frobenius series coefficients for all regions along the analytic continuation Evaluate the U matrix at each matching point along the analytical continuation path Have we reached the end point? Move the origin of the system to the current point Perform the reconstruction of Laurent series expansion in ε𝜀\varepsilonitalic_ε using Lagrange interpolation polynomials Output Stopyesnonoyesnoyes
Figure 1: Flowchart for the PrecisionLauricella package.

In this section, we provide a general overview of the algorithm and its main stages. The flowchart of the algorithm is presented in Fig. 1. The algorithm takes as input the target function, the required precision, and the desired number of terms in the ε𝜀\varepsilonitalic_ε expansion. One of the key features of the algorithm is its treatment of ε𝜀\varepsilonitalic_ε dependencies. Instead of directly expanding the system of equations as a series in ε𝜀\varepsilonitalic_ε, we evaluate the system for several numerical values of ε𝜀\varepsilonitalic_ε at specific grid points. The grid is constructed based on the required accuracy and the desired order of expansion in ε𝜀\varepsilonitalic_ε. All computations are then performed independently for each grid point, simplifying the calculations and enabling efficient parallelization. In the initial step, we determine the parameters of the grid along with other essential solution parameters, such as boundary conditions.

Next, we select a path in the multivariable space, as described in the previous section. During this step, we impose the condition that all κisubscript𝜅𝑖\kappa_{i}italic_κ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT values must be non-negative real numbers. As a result, this step may need to be repeated several times, albeit never more than four times. The rationale behind this condition is discussed in detail in Ref. [40]. The system of equations in Pfaffian form is preconfigured in the program for the considered Lauricella functions, which simplifies this process. This step ultimately reduces the problem to a system of differential equations in a single variable.

We then determine whether analytic continuation is required. If so, the analytic continuation is performed according to the following procedure. First, we generate circular regions within a rectangular area containing the starting and endpoint. The radii of these regions are determined by their distance from the nearest singularities. Next, we compute the intersection graph: each region is treated as a node, with special nodes representing the starting and end points. Nodes are connected if the minimum distance between regions is less than three quarters of the radius of the region. Branch cuts are also taken into account, with regions on opposite sides of a cut considered non-intersecting. The intersection graph is then used to reduce the continuation problem to a graph traversal between the starting and end nodes, which is solved using a built-in Wolfram Mathematica function. If no path is found, the grid is refined, and the process is repeated until a path is identified. Examples of this procedure are shown in Figs. 2 and 3.

Following this, we compute solutions to the systems of differential equations in each region along the analytic continuation path. These systems have the general form

dJdt=M(t)J.𝑑𝐽𝑑𝑡𝑀𝑡𝐽\frac{dJ}{dt}=M(t)J\,.divide start_ARG italic_d italic_J end_ARG start_ARG italic_d italic_t end_ARG = italic_M ( italic_t ) italic_J . (24)

Due to our choice of basis for the hypergeometric functions, we can always write the matrix of the differential equation in the form

M(t)=A0t+R(t),𝑀𝑡subscript𝐴0𝑡𝑅𝑡M(t)=\frac{A_{0}}{t}+R(t)\,,italic_M ( italic_t ) = divide start_ARG italic_A start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG start_ARG italic_t end_ARG + italic_R ( italic_t ) , (25)

where R(t)𝑅𝑡R(t)italic_R ( italic_t ) is a rational function which has no poles at the point t=0𝑡0t=0italic_t = 0. We are looking for the fundamental solution matrix for each of these equations in the form

U=λStλn=0k=0mλcn(λ,k)tnlogk(t),𝑈subscript𝜆𝑆superscript𝑡𝜆superscriptsubscript𝑛0superscriptsubscript𝑘0subscript𝑚𝜆subscript𝑐𝑛𝜆𝑘superscript𝑡𝑛superscript𝑘𝑡U=\sum\limits_{\lambda\in S}t^{\lambda}\sum\limits_{n=0}^{\infty}\sum_{k=0}^{m% _{\lambda}}c_{n}(\lambda,k)t^{n}\log^{k}(t)\,,italic_U = ∑ start_POSTSUBSCRIPT italic_λ ∈ italic_S end_POSTSUBSCRIPT italic_t start_POSTSUPERSCRIPT italic_λ end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_n = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_k = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT italic_λ end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_λ , italic_k ) italic_t start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT roman_log start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ( italic_t ) , (26)

where the set S𝑆Sitalic_S consists of the non-resonant A0subscript𝐴0A_{0}italic_A start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT matrix eigenvalues and mλsubscript𝑚𝜆m_{\lambda}italic_m start_POSTSUBSCRIPT italic_λ end_POSTSUBSCRIPT is the number of eigenvalues in resonance with eigenvalue λ𝜆\lambdaitalic_λ, that is their differences are integers. If several eigenvalues are in resonance, then the set S𝑆Sitalic_S will include only the smallest of them. Accordingly, the next two steps consist of deriving difference equations for the coefficients of the Frobenius series and solving these equations. From these solutions, one can obtain a numerical expression for the fundamental solution matrix for each of the regions of analytic continuation and each ε𝜀\varepsilonitalic_ε value from the lattice.

Finally, we check whether we have reached the end point in the multi-variable plane. If not, we shift the origin of the system to the current point and repeat the previous steps again. If we have reached the end point, we collect all the fundamental solution matrices together to obtain the answer for the end point. Finally, we reconstruct the Laurent series coefficients for the ε𝜀\varepsilonitalic_ε expansion using Lagrange interpolation polynomials.

We can estimate the numerical error of our method as

max(h2n2k/2,ΔFrob),maxsuperscript2𝑛2𝑘2subscriptΔFrob\text{max}\left(h^{2n-2\lfloor k/2\rfloor},\Delta_{\text{Frob}}\right)\,,max ( italic_h start_POSTSUPERSCRIPT 2 italic_n - 2 ⌊ italic_k / 2 ⌋ end_POSTSUPERSCRIPT , roman_Δ start_POSTSUBSCRIPT Frob end_POSTSUBSCRIPT ) , (27)

where hhitalic_h is the ε𝜀\varepsilonitalic_ε lattice step size, 2n2𝑛2n2 italic_n is the number of lattice elements, k𝑘kitalic_k is the number of terms in the ε𝜀\varepsilonitalic_ε expansion and ΔFrobsubscriptΔFrob\Delta_{\text{Frob}}roman_Δ start_POSTSUBSCRIPT Frob end_POSTSUBSCRIPT is the error arising from the truncation of the Frobenius generalized power series.

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 2: On the left, one of the possible paths with complex singular points is shown. The singular points are shown in red, the end point in green, the staring point is at the origin, and shaded circles represent convergence regions. Horizontal dotted lines indicate branch cuts of singular points. On the right, the intersection graph of the expansion regions is displayed. The nodes in the intersection graph include expansion regions at regular points. The nodes and edges highlighted in red show the found path of analytic continuation. Note also, that the intersection graph may have several connected components.
Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 3: On the left, one of the possible paths with complex singular points is shown. The singular points are shown in red, the end point in green, the staring point is at the origin, and shaded circles represent convergence regions. Horizontal dotted lines indicate branch cuts of singular points. On the right, the intersection graph of the expansion regions is displayed. The nodes in the intersection graph include expansion regions at regular points. The nodes and edges highlighted in red show the found path of analytic continuation. Note also, that the intersection graph may have several connected components.

4 PrecisionLauricella package

The PrecisionLauricella package can be freely downloaded from the bitbucket repository https://bitbucket.org/BezuglovMaxim/precisionlauricella-package/src/main/. The entire package consists of one file PrecisionLauricella.wl and, provided the path is set correctly, is loaded with the command

<< PrecisionLauricella

The universal function for the numerical expansion of Lauricella functions in Laurent series in parameter ε𝜀\varepsilonitalic_ε is NExpandHypergeometry. This function takes three arguments. The first is a hypergeometric function that needs to be expanded. The second is the list {ε,k}𝜀𝑘\{\varepsilon,k\}{ italic_ε , italic_k }, where the first argument ε𝜀\varepsilonitalic_ε is the variable with respect to which the expansion is performed, and the second is the required number of terms in the ε𝜀\varepsilonitalic_ε expansion. The last argument specifies the accuracy of the result with the desired number of decimal places. For those functions that are not included by default in Wolfram Mathematica, we introduce our own notations: AppellF2, AppellF3, LauricellaFA, LauricellaFB and LauricellaFD. The arguments of these functions are the same as in their definitions. In the case of Lauricella functions, numbered indices and variables are collected into lists. More details about the package functionality can be found in the Mathematica notebook with examples.

Refer to caption
Refer to caption
Figure 4: Analytical continuation with option DeltaPrescriptionIDeltaPrescription𝐼\texttt{DeltaPrescription}\rightarrow-IDeltaPrescription → - italic_I on the left and option DeltaPrescription+IDeltaPrescription𝐼\texttt{DeltaPrescription}\rightarrow+IDeltaPrescription → + italic_I on the right. The singular points are shown in red and the end point in green, the staring point is at the origin and shaded circles represent convergence regions. Horizontal dotted lines indicate branch cuts of singular points.

The NExpandHypergeometry function has the following set of additional options:

  • 1.

    SimpleAnalyticContinuation - can take the values True or False. The default value is False. If False, uses the more complex four-step analytic continuation scheme described in [40]. If True, uses a simpler two-step scheme in which we only require that κisubscript𝜅𝑖\kappa_{i}italic_κ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT in Eq. (23) be real numbers, rather than real non-negative numbers as in the four-step scheme. This scheme may be more useful in some cases and for comparing results with an answer from polylogarithms if the latter is possible.

  • 2.

    UseParallelComputing - can take the values True or False. The default value is True. If True, uses all available kernels for calculations. Parallelization is implemented using the built-in function ParallelTable. Otherwise, it will simply execute sequentially.

  • 3.

    FrobeniusNumberTerms - can take the values "Auto" or non-negative integer. The default value is "Auto". Specifies the number of elements of the Frobenius series that the program needs to calculate. In the case of "Auto", the program determines this number automatically based on the desired accuracy.

  • 4.

    InternalPrecision - can take the values "Auto" or non-negative integer. The default value is "Auto". Specifies the precision with which the individual coefficients in the Frobenius expansion must be calculated. This number must be significantly greater than the required precision in order to obtain a reliable final answer. In the case of "Auto", the program determines this number automatically based on the desired accuracy.

  • 5.

    DeltaPrescription - can take the values ±Iplus-or-minus𝐼\pm I± italic_I. The default value is I𝐼-I- italic_I. Determines on which side of the cut the end point is taken if its value pertains to the cut. The analytical continuation procedure in these two cases is different. The corresponding example is shown in Figure 4.

Refer to caption
Refer to caption
Figure 5: Average time in seconds required to expand F1(12;1,ε;32;43,74)subscript𝐹1121𝜀324374F_{1}\left(\frac{1}{2};1,\varepsilon;\frac{3}{2};\frac{4}{3},\frac{7}{4}\right)italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( divide start_ARG 1 end_ARG start_ARG 2 end_ARG ; 1 , italic_ε ; divide start_ARG 3 end_ARG start_ARG 2 end_ARG ; divide start_ARG 4 end_ARG start_ARG 3 end_ARG , divide start_ARG 7 end_ARG start_ARG 4 end_ARG ) using 16 parallel kernels on the left and 8 parallel kernels on the right. The horizontal axis shows the number of terms in ε𝜀\varepsilonitalic_ε, and the vertical axis shows the evaluation time in seconds. Solid lines represent the best linear fit.
Refer to caption
Refer to caption
Figure 6: Average time in seconds required to expand F2(1,23ε,1,1+32ε,1157ε;32,4)subscript𝐹2123𝜀1132𝜀1157𝜀324F_{2}\left(1,\frac{2}{3}\varepsilon,1,1+\frac{3}{2}\varepsilon,1-\frac{15}{7}% \varepsilon;\frac{3}{2},4\right)italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( 1 , divide start_ARG 2 end_ARG start_ARG 3 end_ARG italic_ε , 1 , 1 + divide start_ARG 3 end_ARG start_ARG 2 end_ARG italic_ε , 1 - divide start_ARG 15 end_ARG start_ARG 7 end_ARG italic_ε ; divide start_ARG 3 end_ARG start_ARG 2 end_ARG , 4 ) on the left and FD(3)(12ε;1,ε,ε;1+2ε;43,34,85)superscriptsubscript𝐹𝐷312𝜀1𝜀𝜀12𝜀433485F_{D}^{(3)}(\frac{1}{2}-\varepsilon;1,\varepsilon,\varepsilon;1+2\varepsilon;% \frac{4}{3},\frac{3}{4},\frac{8}{5})italic_F start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 3 ) end_POSTSUPERSCRIPT ( divide start_ARG 1 end_ARG start_ARG 2 end_ARG - italic_ε ; 1 , italic_ε , italic_ε ; 1 + 2 italic_ε ; divide start_ARG 4 end_ARG start_ARG 3 end_ARG , divide start_ARG 3 end_ARG start_ARG 4 end_ARG , divide start_ARG 8 end_ARG start_ARG 5 end_ARG ) on the right using 8 parallel kernels. The horizontal axis shows the number of terms in ε𝜀\varepsilonitalic_ε, and the vertical axis shows the evaluation time in seconds. Solid lines represent the best linear fit.

The computation time for certain functions is also of particular interest. Examples of these test calculations are provided in Figs. 5 and 6. The test calculations were performed on a standard laptop with a 12th Gen Intel® Core™ i7-12700H × 20 processor. The most obvious consequence is that, as the number of terms in the ε𝜀\varepsilonitalic_ε expansion increases, the program’s execution time grows linearly. This is a direct result of our approach to ε𝜀\varepsilonitalic_ε dependencies.

5 Conclusion

In this work, we presented PrecisionLauricella, a software package written in Wolfram Mathematica, for the high-precision numerical evaluation of Lauricella functions with indices linearly dependent on a parameter ε𝜀\varepsilonitalic_ε. The package automates the computation of Laurent series expansions of these functions about ε=0𝜀0\varepsilon=0italic_ε = 0, leveraging their analytical continuation in terms of Frobenius generalized power series. Unlike multi-dimensional series arising in other methods, these one-dimensional series offer significant advantages in terms of computational efficiency and precision, making them especially suitable for large-scale calculations.

Our approach includes a dedicated treatment of the ε𝜀\varepsilonitalic_ε dependences in these expansions, which not only accelerates computations but also facilitates parallelization, making the package scalable for high-performance applications. We validated the accuracy and efficiency of PrecisionLauricella by comparing its results, where applicable, with existing tools for hypergeometric functions, such as those presented in Refs. [62, 48] and Refs. [38, 39]. These comparisons demonstrated the robustness and reliability of the presented approach.

We hope that PrecisionLauricella will serve as a reliable and efficient tool for researchers working with Lauricella and similar hypergeometric functions. We also look forward to exploring further extensions of the package to other classes of hypergeometric functions and additional applications in both mathematics and physics.

Acknowledgments

We would like to thank V.V. Bytev, R.N. Lee and A.V. Kotikov for interesting and stimulating discussions. The work of A.I.O. was supported by the Russian Science Foundation through Grant No. 20-12-00205. The work of M.A.B. and B.A.K. was supported by the German Research Foundation DFG through Grant No. KN 365/16-1. The work of O.L.V. was supported by DFG Research Unit FOR 2926 through Grant No. KN 365/13-2.

References