OEIS/Eta products: Difference between revisions

From tehowiki
Jump to navigation Jump to search
imported>Gfis
Normalization, Exponentiation, Multiplication
imported>Gfis
a, b, c
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
===Eta product signatures (EPS)===
===Eta product signatures (EPSIG)===
The coefficient sequences for generating functions that are products of the eta function can be computed conveniently by an Euler transform of some periodic integer sequence.  
The coefficient sequences for generating functions that are products of the eta function can be computed conveniently by an Euler transform of some periodic integer sequence.  
Following Michael Somos, we describe an eta product by a matrix resp. a list of pairs ''(q<sub>i</sub>, e<sub>i</sub>)'' of the form
Following Michael Somos, we describe an eta product by a matrix resp. a list of pairs ''(q<sub>i</sub>, e<sub>i</sub>)'' of the form
  [q1,e1;q2,e2;q3,e3;...]
  [q1,e1;q2,e2;q3,e3;...]
The ''q<sub>i</sub>'' are the powers of ''q'' and the ''e<sub>i</sub>'' are the powers of the eta functions. The latter can be negative.
The pairs are separated by ";".
* The ''q<sub>i</sub>'' are the powers of the argument ''q'' inside the eta function , and  
* the ''e<sub>i</sub>'' are the powers of the eta functions. Only these can be negative.
The following sections contain a number of examples.
 
The order of the pairs is irrelevant for the computation of the period, but see the section about normalization, below.
Once they are normalized, these signatures can be sorted and stored in a database table.
The original expression of eta functions can be reconstructed from them, while in the generated periods the original structure is lost.
 
The generation of a period from an EPSIG, the following Euler transform and the generation of the coefficients is implemented in
[https://github.com/archmageirvine/joeis/blob/master/src/irvine/oeis/transform/EtaProductSequence.java transform/EtaProductSequence.java]
as part of project [https://github.com/archmageirvine/joeis jOEIS] of Sean A. Irvine.
===Common generating functions===
===Common generating functions===
====Partition numbers====
====Partition numbers====
Line 10: Line 21:
====Dedkind eta &eta; (without the q^(1/24) factor)====
====Dedkind eta &eta; (without the q^(1/24) factor)====
  [https://oeis.org/A010815 A010815] 1, -1, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1
  [https://oeis.org/A010815 A010815] 1, -1, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1
  eta(q)
  G.f.: eta(q)
  Euler transform of period 1: [-1]
  Euler transform of period 1: [-1]
  eps P="[1,1]"
  EPSIG="[1,1]"
====Jacobi theta_2 &theta;_2====
====Jacobi theta_2 &theta;_2====
  [https://oeis.org/A089800 A089800] 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2 ... = theta_2(q)/q^(1/4)
  [https://oeis.org/A089800 A089800] 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2 ... = theta_2(q)/q^(1/4)
Line 18: Line 29:
  [https://oeis.org/A000122 A000122] 1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2
  [https://oeis.org/A000122 A000122] 1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2
  a(0) = 1, for n >= 1: a(n) = 2 if n is a square, otherwise 0.
  a(0) = 1, for n >= 1: a(n) = 2 if n is a square, otherwise 0.
  eta(q^2)^5 / (eta(q)*eta(q^4))^2
  G.f.: eta(q^2)^5 / (eta(q)*eta(q^4))^2
  Euler transform of period 4: [2,-3,2,-1]
  Euler transform of period 4: [2,-3,2,-1]
  eps P="[2,5;1,-2;4,-2]"
  EPSIG="[2,5;4,-2;1,-2]"
====Jacobi theta_4 &theta;_4====
====Jacobi theta_4 &theta;_4====
  [https://oeis.org/A002448 A002448] 1, -2, 0, 0, 2, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 2
  [https://oeis.org/A002448 A002448] 1, -2, 0, 0, 2, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 2
  a(0) = 1, for n >= 1: a(n) = 2 * (-1)^sqrt(n) if n is a square, otherwise 0.
  a(0) = 1, for n >= 1: a(n) = 2 * (-1)^sqrt(n) if n is a square, otherwise 0.
  eta(q)^2 / eta(q^2)
  G.f.: eta(q)^2 / eta(q^2)
  Euler transform of period 2: [2,-1]
  Euler transform of period 2: [2,-1]
  eps P="[1,2;2,-1]"
  EPSIG="[1,2;2,-1]"
====Ramanujan psi &psi;====
====Ramanujan psi &psi;====
  [https://oeis.org/A010054 A010054] 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0
  [https://oeis.org/A010054 A010054] 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0
  a(n) = 1 if n is a triangular number, otherwise 0.
  a(n) = 1 if n is a triangular number, otherwise 0.
  q^(-1/8) * eta(q^2)^2 / eta(q)
  G.f.: q^(-1/8) * eta(q^2)^2 / eta(q)
  Euler transform of period 2: [1,-1]
  Euler transform of period 2: [1,-1]
  eps P="[2,2;1,-1]"
  EPSIG="[2,2;1,-1]"
====Ramanujan chi &chi;====
====Ramanujan chi &chi;====
  [https://oeis.org/A000700 A000700] 1, 1, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 5
  [https://oeis.org/A000700 A000700] 1, 1, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 5
  q^(1/24) * eta(q^2)^2 /(eta(q) * eta(q^4))
  G.f.: q^(1/24) * eta(q^2)^2 /(eta(q) * eta(q^4))
  Euler transform of period 4: [1,-1,1,0]
  Euler transform of period 4: [1,-1,1,0]
  eps P="[2,2;1,-1;4,-1]"
  EPSIG="[2,2;4,-1;1,-1]"
====Ramanujan f====
====Ramanujan f====
  [https://oeis.org/A121373 A121373] 1, 1, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1
  [https://oeis.org/A121373 A121373] 1, 1, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1
  a(n) = (-1)^n * [https://oeis.org/A010815 A010815](n)
  a(n) = (-1)^n * [https://oeis.org/A010815 A010815](n)
  q^(-1/24) * eta(q^2)^3 / (eta(q) * eta(q^4))
  G.f.: q^(-1/24) * eta(q^2)^3 / (eta(q) * eta(q^4))
  Euler transform of period 4: [[1,-2,1,-1]
  Euler transform of period 4: [1,-2,1,-1]
  eps P="[2,3;1,-1;4,-1]"
  EPSIG="[2,3;4,-1;1,-1]"
====Ramanujan a cubic AGM theta====
[https://oeis.org/A004016 A004016] 1, 6, 0, 6, 6, 0, 0, 12, 0, 6, 0, 0, 6, 12, 0, 0, 6
G.f.: theta_3(q) * theta_3(q^3) + theta_2(q) * theta_2(q^3)
(no EPSIG)
====Ramanujan b cubic AGM theta====
[https://oeis.org/A005928 A005928] 1, -3, 0, 6, -3, 0, 0, -6, 0, 6, 0, 0, 6, -6, 0, 0, -3
G.f.: eta(q)^3 / (eta(q^3)
Euler transform of period 3: [-3,-3,-2]
EPSIG="[1,3;3,-1]"
====Ramanujan c cubic AGM theta====
[https://oeis.org/A005882 A005882] 3, 3, 6, 0, 6, 3, 6, 0, 3, 6, 6, 0, 6, 0, 6, 0, 9, 6, 0
G.f.: 3 * eta(q^3)^3 / eta(q)
3 * (Euler transform of period 3: [-3,-3,-2])
EPSIG="[3,3;1,-1]" Q="-1/3" F=3
===Leading power of q factor (pqf) ===
===Leading power of q factor (pqf) ===
Some of the generating functions have an additional power of q factor, in order to normalize the leading coefficient to <code>q^0</code>.  
Some of the generating functions have an additional power of q factor, in order to normalize the leading coefficient to <code>q^0</code>.  
* Example [https://oeis.org/A226862 A226862]:
* Example [https://oeis.org/A226862 A226862]:
  Expansion of q^(-1/6) * eta(q^4) * eta(q^6)^5 / (eta(q^3) * eta(q^12))^2
  G.f.: q^(-1/6) * eta(q^4) * eta(q^6)^5 / (eta(q^3) * eta(q^12))^2
  eps P="[4,1;6,5;3,-2;12,-2]"
  EPSIG="[4,1;6,5;3,-2;12,-2]"
For all pairs we multiply the q power with the eta power and add the results, giving 4*1 + 6*5 - 3*2 - 12*2 = 4 + 30 - 6 - 24 = 4. This is the negative numerator of the pqf (expanded for denominator 24).
For all pairs we multiply the q power with the eta power and add the results, giving 4*1 + 6*5 - 3*2 - 12*2 = 4 + 30 - 6 - 24 = 4. This is the negative numerator of the pqf (expanded for denominator 24).
* Example [https://oeis.org/A286813 A286813]:
* Example [https://oeis.org/A286813 A286813]:
  q^(-9/8) * (eta(q^2) * eta(q^16))^2 / (eta(q) * eta(q^8))
  G.f.: q^(-9/8) * (eta(q^2) * eta(q^16))^2 / (eta(q) * eta(q^8))
  eps P="[2,2;16,2;1,-1;8,-1]" gives 2*2 * 16*2  - 1*1 - 8*1 = 36 - 9 = 27 and pqf = q^(-27/24)
  EPSIG="[2,2;16,2;1,-1;8,-1]" gives 2*2 * 16*2  - 1*1 - 8*1 = 36 - 9 = 27 and pqf = q^(-27/24)
* Example [https://oeis.org/A286134 A286134] 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, -1
* Example [https://oeis.org/A286134 A286134] 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, -1
  q^(-1/2) * eta(q^5) * eta(q^6) * eta(q^7) * eta(q^210)
  G.f.: q^(-1/2) * eta(q^5) * eta(q^6) * eta(q^7) * eta(q^210)
  eps P="[5,1;6,1;7,1;210,1]" gives 18 + 210 = 228 and pqf = q^(-228/24) = -9 -1/2.  
  EPSIG="[5,1;6,1;7,1;210,1]" gives 18 + 210 = 228 and pqf = q^(-228/24) = -9 -1/2.  
The sequence is shifted right by 9 positions in this case.
The sequence is shifted right by 9 positions in this case.
===Normalization of an EPS===
===Computation of the period from an EPSIG===
For long lists of generating functions it is convenient to require all EPSs to be normalized, such that they can be tested for equality and can be sorted.
This algorithm is rather straightforward. It uses an array of integers that are usually rather small. The length of the array is the least common multiply (LCM) of all ''q<sub>i</sub>''. The array with indexes [0..lcm-1] is initialized with zeros.
# For all pairs ''(q<sub>i</sub>, e<sub>i</sub>)''
## Build a block of '' q<sub>i</sub> - 1'' zeros, followed by ''-1 * e<sub>i</sub>''.
## Add a sufficient concatenation of such blocks onto the whole array.
# The resulting array is the period for the Euler transform.
As an example, we derive the period of the theta_3 function above from its EPSIG <code>[2,5;4,-2;1,-2]</code>. The period length is LCM(2,1,4) = 4.
  pair 2,5  ->  0 -5  0 -5
  pair 4,-2  ->  0  0  0  2
  pair 1,-2  ->  2  2  2  2
  --------------------------
  sum = period = [2,-3, 2,-1]
This algorithm for expanding a list of powers of theta_3 functions is realized in <code>[https://github.com/gfis/joeis-lite/blob/master/internal/fischer/theta3_epsig.pl theta3_epsig.pl]</code>.
===Normalization of an EPSIG===
For long lists of generating functions it is convenient to require all EPSIGs to be normalized, such that they can be tested for equality and can be sorted.
We use the following rules:
We use the following rules:
* The sublist of pairs with positive ''e<sub>i</sub>'' comes before the sublist with negative ''e<sub>i</sub>''.
# The sublist of pairs with positive ''e<sub>i</sub>'' comes before the sublist with negative ''e<sub>i</sub>''.
* Inside a sublist the first components ''q<sub>i</sub>'' are in descending order.
# Inside a sublist the first components ''q<sub>i</sub>'' are in descending order.
* Successive pairs with the same ''q<sub>i</sub>'' are combined into a single pair with the sum of the ''e<sub>i</sub>'' as second component.
# Successive pairs with the same ''q<sub>i</sub>'' are combined into a single pair with the sum of the ''e<sub>i</sub>'' as second component.
===Exponentiation of an EPS===
The normalization rules are implemented in <code>[https://github.com/gfis/OEIS-mat/blob/master/eta/norm_epsig.pl norm_epsig.pl]</code>.
An EPS is taken to a power ''m'' by simply multiplying all ''q<sub>i</sub>'' (the first components in the pairs) by ''m''. The exponent may be ''1/2'' for the square root, or any other fraction ''m<sub>n</sub>/m</sub>d<sub>'' as long as the ''q<sub>i</sub>'' are all divisible by ''m</sub>d<sub>''.
===Multiplication of two EPSIGs===
===Multiplication of two EPSs===
Two EPSIGs could be multiplied by concatenating their list of pairs. It is convenient, however, to combine all occurrences of specific ''q<sub>i</sub>''  
Two EPSs could be multiplied by simply concatenating their list of pairs. It is convenient, howver, to combine all occurrences of specific ''q<sub>i</sub>''  
by adding the corresponding eta exponents ''e''.
by adding the corresponding eta exponents ''e''.
===Exponentiation of an EPSIG===
An EPSIG is taken to a power ''m'' by multiplying all ''e<sub>i</sub>'' (the second components in the pairs) by ''m''. The exponent may be ''1/2'' for the square root, or any other fraction ''m<sub>n</sub>/m<sub>d</sub>'' as long as the ''q<sub>i</sub>'' are all divisible by ''m<sub>d</sub>''.

Latest revision as of 09:49, 26 January 2023

Eta product signatures (EPSIG)

The coefficient sequences for generating functions that are products of the eta function can be computed conveniently by an Euler transform of some periodic integer sequence. Following Michael Somos, we describe an eta product by a matrix resp. a list of pairs (qi, ei) of the form

[q1,e1;q2,e2;q3,e3;...]

The pairs are separated by ";".

  • The qi are the powers of the argument q inside the eta function , and
  • the ei are the powers of the eta functions. Only these can be negative.

The following sections contain a number of examples.

The order of the pairs is irrelevant for the computation of the period, but see the section about normalization, below. Once they are normalized, these signatures can be sorted and stored in a database table. The original expression of eta functions can be reconstructed from them, while in the generated periods the original structure is lost.

The generation of a period from an EPSIG, the following Euler transform and the generation of the coefficients is implemented in transform/EtaProductSequence.java as part of project jOEIS of Sean A. Irvine.

Common generating functions

Partition numbers

A000041 1, 1, 2, 3, 5, 7, 11, 15, 22, 30, 42, 56, 77, 101, 135, 176, 231
Euler transform of period 1: [1]

Dedkind eta η (without the q^(1/24) factor)

A010815 1, -1, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1
G.f.: eta(q)
Euler transform of period 1: [-1]
EPSIG="[1,1]"

Jacobi theta_2 θ_2

A089800 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2 ... = theta_2(q)/q^(1/4)

Jacobi theta_3 θ_3, Ramanujan phi φ

A000122 1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2
a(0) = 1, for n >= 1: a(n) = 2 if n is a square, otherwise 0.
G.f.: eta(q^2)^5 / (eta(q)*eta(q^4))^2
Euler transform of period 4: [2,-3,2,-1]
EPSIG="[2,5;4,-2;1,-2]"

Jacobi theta_4 θ_4

A002448 1, -2, 0, 0, 2, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 2
a(0) = 1, for n >= 1: a(n) = 2 * (-1)^sqrt(n) if n is a square, otherwise 0.
G.f.: eta(q)^2 / eta(q^2)
Euler transform of period 2: [2,-1]
EPSIG="[1,2;2,-1]"

Ramanujan psi ψ

A010054 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0
a(n) = 1 if n is a triangular number, otherwise 0.
G.f.: q^(-1/8) * eta(q^2)^2 / eta(q)
Euler transform of period 2: [1,-1]
EPSIG="[2,2;1,-1]"

Ramanujan chi χ

A000700 1, 1, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 5
G.f.: q^(1/24) * eta(q^2)^2 /(eta(q) * eta(q^4))
Euler transform of period 4: [1,-1,1,0]
EPSIG="[2,2;4,-1;1,-1]"

Ramanujan f

A121373 1, 1, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1
a(n) = (-1)^n * A010815(n)
G.f.: q^(-1/24) * eta(q^2)^3 / (eta(q) * eta(q^4))
Euler transform of period 4: [1,-2,1,-1]
EPSIG="[2,3;4,-1;1,-1]"

Ramanujan a cubic AGM theta

A004016 1, 6, 0, 6, 6, 0, 0, 12, 0, 6, 0, 0, 6, 12, 0, 0, 6
G.f.: theta_3(q) * theta_3(q^3) + theta_2(q) * theta_2(q^3)
(no EPSIG)

Ramanujan b cubic AGM theta

A005928 1, -3, 0, 6, -3, 0, 0, -6, 0, 6, 0, 0, 6, -6, 0, 0, -3
G.f.: eta(q)^3 / (eta(q^3)
Euler transform of period 3: [-3,-3,-2]
EPSIG="[1,3;3,-1]"

Ramanujan c cubic AGM theta

A005882 3, 3, 6, 0, 6, 3, 6, 0, 3, 6, 6, 0, 6, 0, 6, 0, 9, 6, 0
G.f.: 3 * eta(q^3)^3 / eta(q)
3 * (Euler transform of period 3: [-3,-3,-2])
EPSIG="[3,3;1,-1]" Q="-1/3" F=3

Leading power of q factor (pqf)

Some of the generating functions have an additional power of q factor, in order to normalize the leading coefficient to q^0.

G.f.: q^(-1/6) * eta(q^4) * eta(q^6)^5 / (eta(q^3) * eta(q^12))^2
EPSIG="[4,1;6,5;3,-2;12,-2]"

For all pairs we multiply the q power with the eta power and add the results, giving 4*1 + 6*5 - 3*2 - 12*2 = 4 + 30 - 6 - 24 = 4. This is the negative numerator of the pqf (expanded for denominator 24).

G.f.: q^(-9/8) * (eta(q^2) * eta(q^16))^2 / (eta(q) * eta(q^8))
EPSIG="[2,2;16,2;1,-1;8,-1]" gives 2*2 * 16*2  - 1*1 - 8*1 = 36 - 9 = 27 and pqf = q^(-27/24)
  • Example A286134 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, -1
G.f.: q^(-1/2) * eta(q^5) * eta(q^6) * eta(q^7) * eta(q^210)
EPSIG="[5,1;6,1;7,1;210,1]" gives 18 + 210 = 228 and pqf = q^(-228/24) = -9 -1/2. 

The sequence is shifted right by 9 positions in this case.

Computation of the period from an EPSIG

This algorithm is rather straightforward. It uses an array of integers that are usually rather small. The length of the array is the least common multiply (LCM) of all qi. The array with indexes [0..lcm-1] is initialized with zeros.

  1. For all pairs (qi, ei)
    1. Build a block of qi - 1 zeros, followed by -1 * ei.
    2. Add a sufficient concatenation of such blocks onto the whole array.
  2. The resulting array is the period for the Euler transform.

As an example, we derive the period of the theta_3 function above from its EPSIG [2,5;4,-2;1,-2]. The period length is LCM(2,1,4) = 4.

 pair 2,5   ->   0 -5  0 -5 
 pair 4,-2  ->   0  0  0  2
 pair 1,-2  ->   2  2  2  2
 --------------------------
 sum = period = [2,-3, 2,-1] 

This algorithm for expanding a list of powers of theta_3 functions is realized in theta3_epsig.pl.

Normalization of an EPSIG

For long lists of generating functions it is convenient to require all EPSIGs to be normalized, such that they can be tested for equality and can be sorted. We use the following rules:

  1. The sublist of pairs with positive ei comes before the sublist with negative ei.
  2. Inside a sublist the first components qi are in descending order.
  3. Successive pairs with the same qi are combined into a single pair with the sum of the ei as second component.

The normalization rules are implemented in norm_epsig.pl.

Multiplication of two EPSIGs

Two EPSIGs could be multiplied by concatenating their list of pairs. It is convenient, however, to combine all occurrences of specific qi by adding the corresponding eta exponents e.

Exponentiation of an EPSIG

An EPSIG is taken to a power m by multiplying all ei (the second components in the pairs) by m. The exponent may be 1/2 for the square root, or any other fraction mn/md as long as the qi are all divisible by md.