File: classno.gp

package info (click to toggle)
pari 2.17.3-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 24,508 kB
  • sloc: ansic: 281,184; sh: 861; perl: 420; yacc: 214; makefile: 162; f90: 88
file content (34 lines) | stat: -rw-r--r-- 939 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
\\ ---------------  GP code  ---------------------------------------
\\
\\ Time-stamp: <Fri, Mar 26, 1999 - 14:13:17 - villegas@linux47>
\\
\\ Description: Compute class number of imaginary quadratic field
\\ analytically
\\
\\ File: classno.gp
\\
\\ Original Author: Fernando Rodriguez-Villegas
\\                  villegas@math.utexas.edu
\\                  University of Texas at Austin
\\
\\ Created:         Fri Mar 26 1999
\\-----------------------------------------------------------------

\\ Class number h(-d), -d fundamental.
\\ Adjust constant cc for accuracy, default at least 9 decimal places.

cl(d, cc = 5) =
{ my(q0,sd,c, s = 0, q = 1);

  if (!isfundamental(-d), error("Discriminant not fundamental"));
  sd = sqrt(d);
  q0 = exp(-2*Pi/sd); c = -4*Pi/sd;
  for (n=1, ceil(sd*cc),
    my(t);
    q *= q0; t = 1/(1-q);
    s += kronecker(-d,n) * q * t * (1 + c*t*n)
  );
  if (d==3, s *= 3,
      d==4, s *= 2);
  -2*s;
}