| #### D.12.4.11 double Procedure from library `hyperel.lib` (see hyperel_lib). Usage: double(D,h,f); Return: list Q=2*D Note: important: Divisor D has to be semireduced! Special case of Cantor's algorithm. Computes reduced divisor div(Q[1],Q[2])= 2*div(D[1],D[2]). The divisors are defined over the basering. Curve C:y^2+h(x)y=f(x) is defined over the basering. Example:
    LIB "hyperel.lib";
    ring R=7,x,dp;
    // hyperelliptic curve y^2 + h*y = f
    poly h=x;
    poly f=x5+5x4+6x2+x+3;
    // reduced divisor
    list D=x2-1,2x-1;
    double(D,h,f);
    ==> [1]:
    ==>    x2-2x+1
    ==> [2]:
    ==>    3x-2

User manual for Singular version 4-0-2, 2015, generated by texi2html.