David R. Kohel on Sat, 21 Aug 1999 16:19:17 +1000 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: bnfclgp bug |
> ??quadclassunit > quadclassunit(D,{flag = 0},{tech = []}): > > Buchmann-McCurley's sub-exponential algorithm for computing the > class group of a quadratic field of discriminant D. If D is not > fundamental, the result is undefined, but usually correct (a > warning is issued). The more general function bnrinit should be used > to compute the class group of an order. > > So the result is undefined for non-fundamental discriminants, and > that's why you're hitting infinite loop. > > I usually do it something like this: > > for(k=2,N,if(isfundamental(k),print(k," ",quadclassunit(k)),)) > > Igor But that throws away the interesting nonfundamental discriminants! I'm not sure what is meant by "the result is undefined" -- I'd call that a bug in the documentation. It should read something like: "the funciion may or may not be defined, but usually is, and often gives the right answer". In the case D = -288, the function is obviously not defined. The fact that it doesn't recognize that it isn't defined should be considered a bug. I believe there are small examples where the wrong answer is reported. In this particular case, the class number is four and the reduced forms are: [ <1, 0, 72>, <4, 4, 19>, <8, 0, 9>, <8, 8, 11> ]. The class group structure is indeed Z/2Z x Z/2Z and gives an example of the behavior Kevin was checking. --David