QAuxiliaryTools¶
qetatool.spad line 149 [edit on github]
Miscellaneous tools to deal with polynomials.
- clearDenominator: Polynomial Fraction Integer -> Polynomial Integer
clearDenominator(p)
multiplies the polynomialp
over rational numbers with the least common multiple of the denominator of all its coefficients and returns the result as a polynomial over the integers.
- fromEtaToQPochhammer: (NonNegativeInteger, Fraction Polynomial Integer, String, String) -> Record(frf: Fraction Polynomial Integer, texpo: Integer)
fromEtaToQPochhammer(m,rf,e,u)
returns [np/dp, ne-de] where [np
,ne]:=fromEtaToQPochhammer(m
,numer(rf
),e
,u
), [dp
,de]:=fromEtaToQPochhammer(m
,denom(rf
),e
,u
).
- fromEtaToQPochhammer: (NonNegativeInteger, Polynomial Integer, String, String) -> Record(fpol: Polynomial Integer, texpo: Integer)
fromEtaToQPochhammer(m,p,e,u)
is like the inverse of fromQPochhammerToEta. The variablet
corresponds to exp(pi*i*tau/12
) andq=t^24
. fromEtaToPochhammer(m
,p
,e
,u
) returns [r
,n
] wherer
is a polynomial inq
and theui
such thatp
and r*t^n correspond to the sameq
-series expansion.r
is 0 ifp
cannot be expressed in such a way.
- fromQPochhammerToEta: (NonNegativeInteger, Fraction Polynomial Integer, String, String) -> Record(frf: Fraction Polynomial Integer, texpo: Integer)
fromQPochhammerToEta(m,rf,u,e)
returns [np/dp, ne-de] where [np
,ne]:=fromQPochhammerToEta(m
,numer(rf
),u
,e
), [dp
,de]:=fromQPochhammerToEta(m
,denom(rf
),u
,e
).
- fromQPochhammerToEta: (NonNegativeInteger, Polynomial Integer, String, String) -> Record(fpol: Polynomial Integer, texpo: Integer)
fromQPochhammerToEta(m,p,u,e)
expressesp
(given as a polynomial in variablesui
andq
where theui
correspond to the Euler functions of levelm
https://en.wikipedia.org/wiki/Euler_function) into an expression in variablesei
(corresponding to eta(i*tau)). The result [r
,n
] is expressed as a polynomialr
in theei
and an exponentn
oft
(corresponding to exp(pi*i*tau/12
)) such thatp
and r*t^n correspond to the sameq
-series expansion (withq=t^24
).r
is 0 ifp
cannot be expressed in such a way. This function mainly helps to translate the representation of Somos at url{https://web.archive.org/web/20190709153133/http://eta.math.georgetown.edu/eta07
.gp
} in terms of Euler functions to our representation in terms of eta functions. The variableq
corresponds to exp(2*pi*i*tau).
- index: (String, String) -> List Integer
index(s,i)
returns the list integers encoded in the strings
(and separated by one underscore) when the initial stringi
is removed. The function returns the empty list if the string does not start with the initial or has not the right format. It can be considered as the inverse of indexedSymbol.
- indexedSymbol: (String, List Integer) -> Symbol
indexedSymbol(s, l)
returns a symbol with a name that starts with the strings
and is directly followed by the numbers ofl
separated by underscores (“__”).
- indexedSymbols: (String, List Integer) -> List Symbol
indexedSymbols(s, l)
returns indexedSymbols(s
, [[n
] forn
inl
]).
- indexedSymbols: (String, List List Integer) -> List Symbol
indexedSymbols(s, ll)
returns [indexedSymbol(s
,l
) forl
inll
].
- indexedSymbols: (String, NonNegativeInteger) -> List Symbol
indexedSymbols(s, n)
returns indexedSymbols(s
, [i
fori
in 1..n
])
- integerPrimitivePart: Polynomial Fraction Integer -> Polynomial Integer
integerPrimitivePart(p)
returns primitivePart(clearDenominator(p
)).