The module `quad' is for computations of imaginary quadratic fields.
Compute the class number of quadratic forms of discriminant 'disc' and return (a, b). 'a' is the class number and 'b' is the list of representative reduced forms of classes; the forms are instances of the class ReducedQuadraticForm.
computePDF(f_1 ,f_2) returns the composite of f_1 and f_2.
Return the unique reduced form equivalent to a, 'a' is a positive definite quadratic form.
bsgs(group, lowerbound, upperbound) returns the order of the group, using Shanks's Baby-Step Giant-Step Method. 'group' is an object that returns an element of the group, when it is called. 'lowerboud' is a lowerbound of the order of the group. 'upperbound' is an upperbound of the order of the group. ' lowerbound' and 'upperbound' have to keep a condition:
upperbound / 2 < lowerbound <= the order <= upperbound
sqrPDF returns a positive definite quadratic form that is a squar power of frm.