You are not logged in.
BeginPackage["KleinInvariantJ`"];
Unprotect[InverseKleinInvariantJ];
ClearAll[InverseKleinInvariantJ];
Begin["`Private`"];
InverseKleinInvariantJ[j_] :=
Module[{a},
Which[
PossibleZeroQ[j],
Return[(I*Sqrt[3] - 1)/2 + 4*I*(-j)^(1/3)*(Pi/(Gamma[1/3]^2))^3, Module],
PossibleZeroQ[a = j - 1],
Return[I + 8*I*Pi^2*Sqrt[a/3]/Gamma[1/4]^4, Module],
InexactNumberQ[j],
a = Tan[ArcCsc[Sqrt[j]]/3];
a *= 2/(a + Sqrt[3]);
a = I*ArithmeticGeometricMean[1, Sqrt[1 - a]]/ArithmeticGeometricMean[1, Sqrt[a]];
If[InexactNumberQ[a], Return[a, Module]],
Head[j] === DirectedInfinity,
Return[I*Infinity, Module]
];
Null /; False
];
InverseKleinInvariantJ /:
HoldPattern[KleinInvariantJ[InverseKleinInvariantJ[j_]]] := j;
InverseKleinInvariantJ /:
HoldPattern[Derivative[1][InverseKleinInvariantJ]] :=
I/(4*Sqrt[3]*Pi*DedekindEta[InverseKleinInvariantJ[#]]^4*#^(2/3)*Sqrt[# - 1]) &
InverseKleinInvariantJ /:
MakeBoxes[InverseKleinInvariantJ[j_], TraditionalForm] :=
RowBox[{InterpretationBox[SuperscriptBox["J", RowBox[{"-", "1"}]], InverseKleinInvariantJ, Editable -> False, Selectable -> False, Tooltip -> "InverseKleinInvariantJ"], "(", ToBoxes[j], ")"}];
End[];
SetAttributes[InverseKleinInvariantJ, {Listable, NumericFunction, ReadProtected}];
Protect[InverseKleinInvariantJ];
EndPackage[];
Last edited by lanxiyu (2025-03-18 04:47:37)
Offline