︠86591533-e867-43d0-8363-ff1c16e10bf8i︠ %md From: Yun Cheng I'm a Ph.D student from UChicago, studying with Prof. Emerton. Currently I'm trying to understand the cuspidal subgroup, especially the order of $(0)-(\infty)$, for $J_0(pq)$, where $p$ and $q$ are distinct primes. I found in the page of Prof. Stein http://wstein.org/Tables/cuspgroup/index.html where it's mentioned that prof. Ogg has done calculation for the cuspidal subgroup for this case, but I tried to search online and couldn't find any reference for that. ︡c95c4df8-75f7-4399-9961-7746574ac067︡{"done":true,"md":"\nFrom: Yun Cheng \n\nI'm a Ph.D student from UChicago, studying with Prof. Emerton. Currently I'm trying to understand the cuspidal subgroup, especially the order of $(0)-(\\infty)$, for $J_0(pq)$, where $p$ and $q$ are distinct primes. \n\nI found in the page of Prof. Stein http://wstein.org/Tables/cuspgroup/index.html where it's mentioned that prof. Ogg has done calculation for the cuspidal subgroup for this case, but I tried to search online and couldn't find any reference for that."} ︠a0085e85-db9a-4c64-9d51-c09e61ee5986s︠ def ord0oo(N, sign=0): """ Compute the order of $(0)-(\infty)$ in $J_0(N)$. INPUT: - N - positive integer - sign - 0 or 1; if 0 gives correct answer. - if 1, then code may be 10x faster, but power of 2 that divides the order may be WRONG. OUTPUT: - an integer, the order of the class of 0-oo. """ M = ModularSymbols(N, sign=sign) z = M([0,oo]) S = M.cuspidal_subspace() phi = S.integral_period_mapping() return phi(z).denominator() ︡410faa84-8404-463a-9a7a-74c155d51bc8︡{"done":true}︡ ︠5bc84c4f-355e-4fd7-97a4-70f80b627401s︠ for N in [11..100]: print N, ord0oo(N) ︡afb9d62f-4c8c-424b-a067-50f125ec39c1︡{"stdout":"11 "}︡{"stdout":"5\n12 1\n13 1\n14 "}︡{"stdout":"6\n15 4\n16 1\n17 "}︡{"stdout":"4\n18 1\n19 3\n20 "}︡{"stdout":"6\n21 4\n22 "}︡{"stdout":"5\n23 11\n24 "}︡{"stdout":"4\n25 1\n26 21\n27 "}︡{"stdout":"3\n28 "}︡{"stdout":"6\n29 7\n30 "}︡{"stdout":"24\n31 5\n32 "}︡{"stdout":"4\n33 10\n34 "}︡{"stdout":"12\n35 24\n36 "}︡{"stdout":"6\n37 3\n38 "}︡{"stdout":"45\n39 "}︡{"stdout":"28\n40 "}︡{"stdout":"12\n41 10\n42 "}︡{"stdout":"48\n43 7\n44 "}︡{"stdout":"15\n45 "}︡{"stdout":"8\n46 "}︡{"stdout":"22\n47 "}︡{"stdout":"23\n48 "}︡{"stdout":"8\n49 2\n50 "}︡{"stdout":"15\n51 48\n52 "}︡{"stdout":"42\n53 13\n54 "}︡{"stdout":"9\n55 "}︡{"stdout":"20\n56 "}︡{"stdout":"24\n57 "}︡{"stdout":"30\n58 "}︡{"stdout":"35\n59 "}︡{"stdout":"29\n60 "}︡{"stdout":"24\n61 5\n62 "}︡{"stdout":"120\n63 "}︡{"stdout":"48\n64 4\n65 "}︡{"stdout":"42\n66 "}︡{"stdout":"120\n67 11\n68 "}︡{"stdout":"72\n69 "}︡{"stdout":"44\n70 "}︡{"stdout":"144\n71 "}︡{"stdout":"35\n72 "}︡{"stdout":"12\n73 6\n74 "}︡{"stdout":"171\n75 "}︡{"stdout":"40\n76 "}︡{"stdout":"45\n77 60\n78 "}︡{"stdout":"168\n79 13\n80 "}︡{"stdout":"24\n81 "}︡{"stdout":"9\n82 "}︡{"stdout":"70\n83 "}︡{"stdout":"41\n84 "}︡{"stdout":"48\n85 "}︡{"stdout":"24\n86 "}︡{"stdout":"231\n87 "}︡{"stdout":"140\n88 "}︡{"stdout":"60\n89 "}︡{"stdout":"22\n90 "}︡{"stdout":"24\n91 "}︡{"stdout":"56\n92 "}︡{"stdout":"66\n93 "}︡{"stdout":"80\n94 "}︡{"stdout":"92\n95 "}︡{"stdout":"180\n96 "}︡{"stdout":"16\n97 "}︡{"stdout":"8\n98 "}︡{"stdout":"42\n99 "}︡{"stdout":"40\n100 "}︡{"stdout":"30\n"}︡{"done":true}︡ ︠98fd3e73-0e57-4905-94fb-0bb6c89cb0f1s︠ %time ord0oo(389) ︡e098c466-518b-4689-b9dd-b6754f7a31ee︡{"stdout":"97"}︡{"stdout":"\n"}︡{"stdout":"\nCPU time: 1.31 s, Wall time: 1.36 s\n"}︡{"done":true}︡ ︠645d14a5-9068-433e-be88-dbb19104d614︠