Where do the maximum absolute $q$-series coefficients of $(1-q)(1-q^2)(1-q^3)\dots(1-q^{n-1})(1-q^n)$ occur?

We used the MACH2 supercomputer to study coefficients in the $q$-series expansion of $(1-q)(1-q^2)\dots(1-q^n)$, for all $n\leq 75000$. As a result, we were able to conjecture some periodic properties associated with the before unknown location of the maximum coefficient of these polynomials with odd $n$. Remarkably the observed period is 62,624.

From now on we will use maximum absolute coefficient in place of the wordy "the maximum of the absolute value of the coefficients" to simplify our language. In general, when the coefficients a n,i of (q; q) n are studied, we see tame coefficients at both ends of the polynomial (q; q) n and a bubble of oscillation involving enormous integers in the middle. We plot the ordered pairs (i, a 250,i ) in Figure 1, to show the shape of (q; q) 250 . This is to give an idea of the nature of the coefficients of (q; q) n . Note that "tame" coefficients are small only relative to the coefficients that appear at the oscillation. For example, in Figure 1, the 5000th coefficient of (q; q) 250 seems to be close to the x-axis, but its value a 250,5000 is −7,983,490.
Moreover, Sudler [6,7] showed that the maximum absolute coefficients' size grows exponentially with n: Sudler and A. Hurwitz calculated, K 0.19861. On top of that, Wright [5] proved that Although, research on the size of these coefficients existed [3,6,7], there has not been an extensive study of the location of the maximum absolute coefficients of (q; q) n in the literature. When one checks the sequence (1.3) in the Online Encyclopedia of Integer Sequences they are greeted with the open problem [8] (paraphrased): If n is even, then M n is the absolute value of the coefficients of q n(n+1)/4) and q n(n+1)/4) . If n is odd, it is an open question as for which i, |a n,i | = M n , where · and · are the classical floor and ceiling functions.
In this work we would like to give an experimental answer to the question regarding the location for the odd n. We have carefully calculated and verified the locations of the largest absolute value of the coefficients for all n as well as the maximum absolute coefficients for n ≤ 75000. This task had required painstaking attention to details, a lot of patience, and a grand computing power for today's standards. The supercomputer MACH2 was used for this task, which is the largest European installation of its kind with almost 2000 processor cores and 20 terabytes of shared memory. Even with this computing power, the computation was challenging due to the number and the size of the objects that needed to be stored and manipulated at full precision.

Multiplication algorithms used and some related data
The task of openly multiplying (q; q) n and locating the maximum of the absolute values of the coefficients started on a reasonably sized RISC server with Maple. One can compute up to a commendable n = 10000 by multiplying these objects using a modern desktop computer with 8Gb of RAM and a quad core processor of 2.30Ghz processing speed. In our experience, the Maple gives up around this point. With Mathematica, we were able to take our calculations to around 15000. This is more or less the upper limit of what computer algebra systems can handle on a normal computer. Once this natural boundary was reached we moved on to programming our own versions of the basic multiplication algorithm; first this was done with Python, later with C++. Python does arbitrary precision arithmetics automatically, and Gnu MultiPrecision Library [4] was used for handling large integers in C++.
To save computer memory in calculations, one needs to observe that a n,i , as defined in (1.1), satisfies the relation (2.1) a n,i = (−1) n a n,n(n+1)/2−i .
Using (2.1), one can reduce the storage to only half of the coefficients of (q; q) n . Another point is that the multiplication (1 − q n )(q; q) n−1 to get (q; q) n from (q; q) n−1 is the same as the addition (2.2) a n,i = a n−1,i − a n−1,i−n , for all i ≥ n, on the coefficient level. Finally, we note that the first n − 1 coefficients of (q; q) n−1 do not change when multiplied with (1 − q n ). Moreover, they coincide with the first n − 1 coefficients of (1.2). Since the maximum absolute coefficients grow (1.4), they would not appear in the first n − 1 coefficients that are ±1 or 0. The most memory efficient multiplication pseudo-algorithm, that we have come up with, is as follows: Read in the first half of (q; q) Start (a Start,i , with i ≤ Start(Start + 1)/4) in an array, for n = Start + 1 to F inish do M ax ← 0, M axLoc ← 0, for i = 1 to n/2 do Define and add a n, n(n−1)/4 +i by (2.1) and (2.2), if M ax < |a n,i | then M ax ← |a n,i |, M axLoc ← n(n − 1)/4 + i, end if end for for i = n(n − 1)/4 to n do a n,i ← a n−1,i − a n−1,i−n , if M ax < |a n,i | then M ax ← |a n,i |, M axLoc ← n(n − 1)/4 + i, end if end for Record M ax and M axLoc, end for Record the first half of (q; q) F inish (a F inish,i , with i ≤ F inish(F inish + 1)/4).
This algorithm uses a single array of integers and updates this array at each step. Finding the maximum absolute coefficient and its location is done simultaneously with the multiplications. At each step n, we add n/2 new integers to the end of the array. In Python, extending arrays can be done automatically, and in C++ a list is used in place of an array. We first calculate the coefficients a n,i for n(n − 1)/4 + 1 ≤ i ≤ n(n + 1)/4 , and calculate all the coefficients up to the half of the degree of the polynomial (q; q) n . This needs to be done using the symmetry of the coefficients (2.1). Then, we start updating the already existing integers a n−1,i with a n,i going backwards from a n, n(n−1)/4 , the half of the degree of (q; q) n−1 .
One important note here is that an intermediate node a n−1,k for some n ≤ k ≤ n(n − 1)/4 appears in the multiplication of two terms: a n,k and a n,k+n . Hence, this node should not be updated before these two multiplications are handled. This throws a ratchet in the gears of parallelization of this computation. Although this algorithm is memory efficient (as much as it can be), it is not programmed with parallel computations in mind. We can parallelize this algorithm by splitting the multiplications into residue classes modulo n for each multiplication, but since the number of residue classes changes at each step, this possibility did not look beneficial.
The above mentioned memory efficient algorithm is how we carried the calculations towards (q; q) 50000 . With 1.5 Terabytes of RAM, the largest server at RISC, qftquad8, was able to save an image of (q; q) 45000 for us to carry our calculations to MACH2. It also recorded the maximum absolute coefficients and their locations till about 49000. These calculations also allowed us to check and confirm their validity when we switched to the new algorithm for multiplication we used in MACH2. The supercomputer MACH2 is a shared computer with 1728 cores and 20 terabytes of accessible memory. Therefore, for speeding up the calculations we moved onto a version of the above described multiplication algorithm that lavishly uses the available memory.
Initialize two arrays Arr1 and Arr2, Read in the first half of (q; q) Start in Arr1, and the first Start amount of entries in Arr2, In parallel, define and add a n, n(n−1)/4 +i by (2.1) and Record M ax and M axLoc, Reverse the roles of Arr1 and Arr2, and repeat the multiplications, end for Record the first half of (q; q) F inish .
Since the reading is done in one array and the writing is done in another, the multiplication can easily be parallelized. The price paid is the double the amount of memory needed to keep two separate lists of huge integers. Moreover, to speed up the process ever so slightly, we can use arrays of the final needed sizes for Arr1 and Arr2 instead of lists. This small change reduces the complexities that pointers of C++ introduce greatly.
The calculations in the supercomputer MACH2 have been carried over using a 10 terabyte capsule with hundreds of cores working in parallel. In this phase of the calculation, the first half of the (q; q) n 's were recorded in increments of 5000 from 45000 till 75000. Some specifics of the MACH2 Supercomputer are as follows: CPU Type: Dodeka-Core Haswell CPU "Intel(R) Xeon(R) CPU E5-4650 v3 @ 2.10GHz"; Linux Kernel: 4.4.120; Platform: x86 64; GNU libc 2.22; GNU Multiprecision Library Version: GMP 5.1.3; GNU Compiler Collection: 4.8.5 1 .
Towards the of the calculations, the 100 consecutive multiplications with identification of the maximum absolute coefficient took around 1700 Mega-GMP-Operations per second computing time, on average. The actual calculations from start to finish with the recording of the checkpoint polynomials took around 6 months. With interruptions, designing/coding challenges, data migrations, and checks, this project took the authors around two full years.

The location of the maximum absolute coefficients
Let L(n) denote the lowest exponent i of q in the (q; q) n polynomial, where the coefficient of q i is the maximum absolute coefficient M n . When explicitly expanding the polynomials (q; q) n , the maximum of the absolute value of the coefficients starts to appear in one or two places consistently for n ≥ 34. We would like to start by acknowledging that, for all n ≥ 17, L(2n) = n(n+1)/4) or, in other words, the maximum absolute coefficients of (q; q) 2n appear as the coefficient(s) of q n(n+1)/4) and q n(n+1)/4) . Now with our explicit computations, this claim (which appears in the Online Encyclopedia of Integer Sequences A160089) extends to all even n ≤ 75000.
For 0 modulo 4 cases the maximum absolute coefficients are the absolute maximum, and for 2 modulo 4 cases the maximum absolute coefficients are the negative of the absolute minimum of (q; q) n . For the odd n, both the maximum of the absolute value of the coefficients and its negative appear in (q; q) n due to (2.1). Furthermore, we make the claim: , absolute maximum occurs only once as the coefficient of some q i , where i < n(n + 1)/4 and if n ≡ 3 (mod 4) the absolute maximum occurs only once as the coefficient of some q i , where i > n(n + 1)/4.
There are some initial cases where the maximum absolute coefficient appears as the polynomial coefficients of (q; q) n more than twice. For example, in the n = 33 case the absolute maximum coefficient 56 appears as the coefficients of q 270 and q 272 and the absolute minimum coefficient −56 appears as the coefficients of q 289 and q 291 , so the maximum absolute coefficient appears a total of 4 times as a coefficient of the polynomial (q; q) 33 . We see that for n ≥ 35, the maximum absolute coefficient appears as coefficients of only two terms in the q-series expansion of the rising factorial.
We will split the cases for the odd values of n in two groups modulo 4. Before doing so, we define the D n as the half difference between the two locations of the maximum absolute coefficients for a given odd n ≥ 35. This is the same as saying how far off the maximum absolute coefficient is from the half degree n(n + 1)/4 of the polynomial (q; q) n . Hence, knowing this value and n is enough to recover the location of the maximum absolute coefficients. Also we define the canonical difference for all odd n ≥ 35.
Let n ≥ 35 be an odd integer, and assume that all necessary E i and a D m value for some m ≤ n, with n ≡ m modulo 4 are given. Then, one can recover the location of the maximum absolute coefficients for (q; q) n as where a n,i is defined as in (1.1).
The first observation we have made and confirmed for n ≤ 75000 is: For all odd n ≥ 35, E n ∈ {0, 1, 2}. Furthermore, E n > 0 for all odd n ≥ 61.
By looking at the values n ≥ 57 and ≥ 87 for 1 and 3 modulo 4, we list E n 's. The patterns starting from these beginning points look highly periodic with period 19, although this is sadly not the case. The 19 length patterns of 1's and 2's that E n 's change slightly as the calculations are carried. We match the 19 length patterns that the calculations yield with letters and form an alphabet with 20 letters. The letters that we see in the calculations and their 19 consecutive E n value equivalents are given in Table 1. Note that each letter represents 19 consecutive E n values (1 or 2) written together without commas to keep the notation simple. The calculation of any letter requires the expansion of 19 × 4 = 76 consecutive (q; q) n polynomials and finding the location of the maximum absolute coefficient and its location of each odd index n. This alphabet makes it possible to find the individual E n values.
Furthermore, together with (3.1), this makes it possible to find the locations of the maximum absolute coefficients. Also note that a and k are symmetric with respect to their centers and a is also special that it is the only letter with six 2 values, whereas all the other words come with five 2 values. It is easy to see that the letters b, c, d, e, f, g, h, i, and j read from right to left are the letters t, s, r, q, p, o, n, m, and l, respectively.
These letters are observed to be generating almost periodic words starting from n ≥ 209 and ≥ 391 for 1 and 3 modulo 4 values, respectively. We will write exponents of the letters defined in Table 1 to indicate the number of times a letter has occurred consecutively. From the said starting point we see that the 1 modulo 4 differences give rise to the string  . We see that the letter a appears a single time in each word. This phenomenon is the same for the 3 modulo 4 case. We break this string into words for 1 and 3 mod 4 to start every line with an a and write the words in Table 2; 1 and 3 mod 4 cases on the left side and the right side, respectively. In Table 2, we also include a line to break period blocks of the size 11 × 20 box both odd residue classes mod 4. Table 2. The words for n ≡ 1 and 3 mod 4 cases associated with the alphabet of Table 1.  What one can observe from the encoding of Table 2 is that there is the base word in each line and an overlying, moving perturbation. It is observed that the first line of the 1 modulo 4 case does not fit any period block and stays as an outlier. We interpret this as the asymptotic behaviour of the perturbation kicking in action a little later than the 3 modulo 4 case. More importantly, this perturbation is observably periodic. To express the observed structure better, we represent the base word (3.2) as a vector, where we write the frequencies of the letters as a vector of 20 entries Then Table 2 can be expressed as adding some perturbation vectors to B. We define the perturbation vectors for the 1 and 3 modulo 4 classes side-by-side in Table 3.
Notice that u 11 and v 7 are the only two vectors that have two 1's and all the rest include three 1's. The first component is always 0. There is a clear pattern in the perturbations and how the motion of the perturbation is from one vector to the following. We have indicated the observed pattern of 1 or 2 repetitions of the perturbations using red and blue (resp.) in Table 3. Both in the 1 and 3 mod 4 cases, there are 6 red 1's which correspond to a letter's extra appearance as perturbance only a single time in the period. The blue 1's in the components indicate that the corresponding letter occurs as a part of the perturbation twice. After these observations, the periodicity of this perturbation becomes clearer in vector form.
We claim the following: Table 3. The perturbation vectors of a full observed period for 1 and 3 modulo 4 cases side-by-side.

Conjecture 3.3.
For any i > j ≥ 1, the i-th and j-th row that appears in Table 2 and beyond can be associated with the vectors B + u (i−1 (mod 11)) and B + v (j (mod 11)) for 1 and 3 modulo 4 words, respectively.
Moreover, we claim, with these two essential periods for the perturbation, that we can locate the maximum absolute coefficients' locations for any (q; q) n with odd n.
The base word associated with B has 72 letters, each letter representing 19 consecutive E n values, where each of these values are an additional 4 index n shifts of (q; q) n . There are 11 base words corresponding to both odd residue classes mod 4. This translates to shifts of the n of (q; q) n by 72 × 19 × 4 × 11 =60,192. On top of that, the total amount of perturbation is 32 letters, reflecting another 2,432 to the shifts of the subindex of (q; q) n , respectively. All together, the period of E n 's is conjectured to be 62,624. Lastly, the sum of E n 's is 19,787. Now we can start stating our conjectures for the maximum absolute coefficients' location, using (3.1). Note that D 5909 = 3735/2 and D 391 = 124. Although these formulas might seem limited, one can easily use these explicit values with E n 's as represented in Table 2 to find the location of the maximum coefficient of any odd value greater than 5909. The location calculations for the n ≤ 5000 already exist in the Online Encyclopedia of Integer Sequences, under the sequence number A160089 [8], and one can easily recover the gap between 5000 and 5909, by our above mentioned calculations.
We list similar conjectures that correspond to the start of each word of the periods of 1 and 3 modulo 4 cases: In Conjecture 3.5, A(k, r) and B(k, r) are used to move to the start of any word. The variable r is used to move within the periods, and k is used for going over full periods. Conjecture 3.5 reduces to Conjecture 3.4 for r = 0. One important note we need to make is the use of the correctional δ functions. The number 76, as explained after the introduction of the chosen alphabet, corresponds to the number of consecutive n's needed to expand (q; q) n for forming a single letter. We have already observed that two words in Table 2 (one for each case) in the period have one less letter than the others. The δ functions are introduced only to address this issue.

Future directions
We have handled the odd cases in two groups corresponding to residue classes modulo 4. We can also start with a uniform approach. For all odd n ≥ 35, let E n = 2(D n − D n−2 ).
It is clear that one can define a formula for L(N ), which would be an analog of (3.1), using theseẼ n values and the D n 's. The period in this unified approach seems to be larger much larger than 11. Nevertheless, one intriguing claim analogous to Conjecture 3.2 is: We also checked the possible fitting functions and their limits using our data to understand these constants better. Starting from n = 55000, and using increments of 1000, we have fitted the function M n /M n−1 and n √ M n to understand their aymptotic behaviour better. We assume that these functions asymptotically look like a series of form a 0 + a 1 n + a 2 n 2 + . . . , where the major contribution comes from the first three coefficients. With that the estimates for the limiting constants are as follows: We can compare these limits with the particular results we have calculated for n = 75000. This experimentally suggests that, we can trust at least 4 and 3 decimal digits of these last limits for the successive ratios and the successive roots, respectively.