You are not logged in.
Module[{w1, w2, w3, g2, g3, Δ, case},
On[Assert];
w1 = RandomReal[WorkingPrecision -> 50];
case[t_] := (w3 = t*w1; w2 = -w1 - w3; {g2, g3} = WeierstrassInvariants[{w1, w3}]; Δ = g2^3 - 27*g3^2);
case[I]; (* Lemniscatic cases *)
Assert[WeierstrassZeta[w1, {g2, g3}] == Pi/(4*w1)];
Assert[WeierstrassZeta[w3, {g2, g3}] == -I*Pi/(4*w1)];
Assert[WeierstrassP[w1, {g2, g3}] == Gamma[1/4]^4/(32*Pi*w1^2)];
Assert[WeierstrassP[w2, {g2, g3}] == 0];
Assert[WeierstrassP[w3, {g2, g3}] == -Gamma[1/4]^4/(32*Pi*w1^2)];
Assert[g2 == Gamma[1/4]^8/(16*Pi*w1^2)^2];
Assert[g3 == 0];
Assert[Δ == Gamma[1/4]^24/(16*Pi*w1^2)^6];
Assert[g2^3/Δ == 1];
case[Exp[2*Pi*I/3]]; (* Equianharmonic cases *)
Assert[WeierstrassZeta[w1, {g2, g3}] == Pi/(2*Sqrt[3]*w1)];
Assert[WeierstrassZeta[w2, {g2, g3}] == Exp[2*Pi*I/3]*Pi/(2*Sqrt[3]*w1)];
Assert[WeierstrassZeta[w3, {g2, g3}] == Exp[-2*Pi*I/3]*Pi/(2*Sqrt[3]*w1)];
Assert[WeierstrassP[w1, {g2, g3}] == Gamma[1/3]^6/(2^(14/3)*(Pi*w1)^2)];
Assert[WeierstrassP[w2, {g2, g3}] == Exp[-2*Pi*I/3]*Gamma[1/3]^6/(2^(14/3)*(Pi*w1)^2)];
Assert[WeierstrassP[w3, {g2, g3}] == Exp[2*Pi*I/3]*Gamma[1/3]^6/(2^(14/3)*(Pi*w1)^2)];
Assert[g2 == 0];
Assert[g3 == Gamma[1/3]^18/(4*Pi*w1)^6];
Assert[Δ == -27*Gamma[1/3]^36/(4*Pi*w1)^12];
Assert[g2^3/Δ == 0];
case[I*Sqrt[2]];
Assert[WeierstrassZeta[w1, {g2, g3}] == (Gamma[1/8]*Gamma[3/8])^2/(384*Pi*w1) + Pi/(2^(5/2)*w1)];
Assert[WeierstrassZeta[w3, {g2, g3}] == I*(Sqrt[2]*(Gamma[1/8]*Gamma[3/8])^2/(384*Pi*w1) - Pi/(4*w1))];
Assert[WeierstrassP[w1, {g2, g3}] == (3 + Sqrt[2])*(Gamma[1/8]*Gamma[3/8])^2/(2^(13/2)*3*Pi*w1^2)];
Assert[WeierstrassP[w2, {g2, g3}] == -(3 - Sqrt[2])*(Gamma[1/8]*Gamma[3/8])^2/(2^(13/2)*3*Pi*w1^2)];
Assert[WeierstrassP[w3, {g2, g3}] == -(Gamma[1/8]*Gamma[3/8])^2/(2^5*3*Pi*w1^2)];
Assert[g2 == 5*(Gamma[1/8]*Gamma[3/8])^4/(2^11*3*(Pi*w1^2)^2)];
Assert[g3 == 7*(Gamma[1/8]*Gamma[3/8])^6/(2^16*(3*Pi*w1^2)^3)];
Assert[Δ == (Gamma[1/8]*Gamma[3/8])^12/(2^33*(Pi*w1^2)^6)];
Assert[g2^3/Δ == 125/27];
case[I*Sqrt[3]];
Assert[WeierstrassZeta[w1, {g2, g3}] == Gamma[1/3]^6/(2^(20/3)*Pi^2*w1) + Pi/(4*Sqrt[3]*w1)];
Assert[WeierstrassZeta[w3, {g2, g3}] == I*(Sqrt[3]*Gamma[1/3]^6/(2^(20/3)*Pi^2*w1) - Pi/(4*w1))];
Assert[WeierstrassP[w1, {g2, g3}] == (2*Sqrt[3] + 1)*Gamma[1/3]^6/(2^(20/3)*(Pi*w1)^2)];
Assert[WeierstrassP[w2, {g2, g3}] == -Gamma[1/3]^6/(2^(17/3)*(Pi*w1)^2)];
Assert[WeierstrassP[w3, {g2, g3}] == -(2*Sqrt[3] - 1)*Gamma[1/3]^6/(2^(20/3)*(Pi*w1)^2)];
Assert[g2 == 15*Gamma[1/3]^12/(2^(34/3)*(Pi*w1)^4)];
Assert[g3 == 11*Gamma[1/3]^18/(2^17*(Pi*w1)^6)];
Assert[Δ == 27*Gamma[1/3]^36/(2^32*(Pi*w1)^12)];
Assert[g2^3/Δ == 125/4];
];
Last edited by lanxiyu (Yesterday 19:01:40)
Offline