You are not logged in.
BeginPackage["DedekindEta`"];
Unprotect[DedekindEta, LogDedekindEta];
ClearAll[LogDedekindEta]
Begin["`Private`"];
DedekindEta /: HoldPattern[Derivative[1][DedekindEta]] :=
DedekindEta[#]*LogDedekindEta'[#] &;
LogDedekindEta[z_] /; InexactNumberQ[z] && Im[z] > 0 :=
Block[{t = z, n, pr, f},
n = Round[Re[t]]; t -= n; pr = Precision[t];
f = If[7*Im[z] < 6,
n*Pi*I/12 + LogDedekindEta[SetPrecision[-1/t, pr]] - Log[-I*t]/2,
t = z*Pi*I;
t/12 + Log[QPochhammer[Exp[2*t]]],
Null
];
f /; NumberQ[f]
];
LogDedekindEta /: HoldPattern[Derivative[1][LogDedekindEta]] :=
With[{m = ModularLambda[#]},
With[{t = EllipticK[m]},
I*t*(EllipticE[m] + t*(m - 2)/3)/Pi
]
] &;
LogDedekindEta /: HoldPattern[E^LogDedekindEta[z_]] := DedekindEta[z];
LogDedekindEta /: MakeBoxes[LogDedekindEta[z_], TraditionalForm] :=
RowBox[{InterpretationBox["log\[Eta]", LogDedekindEta, Editable -> False, Selectable -> False, Tooltip -> "LogDedekindEta"], "(", ToBoxes[z], ")"}];
End[];
SetAttributes[LogDedekindEta, {Listable, NumericFunction, ReadProtected}];
Protect[DedekindEta, LogDedekindEta];
EndPackage[];
Offline