FUNCTION :  vinf - 2*ORD(G,oo)                          
                
CALLING SEQUENCE :  vinf(L,N)                                                

PARAMETERS :      L - (geta)-list produced by GETAP2getalist 
                      and corresponds to a generalized eta-quotient
                      on Gamma[1](N).
                  N - positive integer

SYNOPSIS :   Returns 2*ORD(G,oo) where G is the generalized eta-quotient
             corresponding to the (geta)-list L with respect to the
             group GAMMA[1](N).

EXAMPLES :   

>  with(thetaids):

>  vinf();
-------------------------------------------------------------
vinf(L,N)                                               
   L is a getalist; i.e. L=[[b1,a1,c1],....]
   Let G be the corresponding generalized eta-function.
   vinf(L,N) returns ord(G,oo)
-------------------------------------------------------------

>  JJ0:= -q/JAC(1,40,infinity)*JAC(2,40,infinity)^2/JAC(4,40,infinity)^3
>         *JAC(5,40,infinity)^2*JAC(8,40,infinity)^2/JAC(9,40,infinity)
>         /JAC(11,40,infinity)*JAC(15,40,infinity)^2/JAC(16,40,infinity)^2
>         *JAC(18,40,infinity)^2/JAC(19,40,infinity)/JAC(20,40,infinity);
                               2                     2                     2
JJ0 := - q JAC(2, 40, infinity)  JAC(5, 40, infinity)  JAC(8, 40, infinity)

                         2                      2   /
    JAC(15, 40, infinity)  JAC(18, 40, infinity)   /  (JAC(1, 40, infinity)
                                                  /

                        3
    JAC(4, 40, infinity)  JAC(9, 40, infinity) JAC(11, 40, infinity)

                         2
    JAC(16, 40, infinity)  JAC(19, 40, infinity) JAC(20, 40, infinity))

>  JJ1:=rmcofnotqjac(JJ0);
                             2                     2                     2
JJ1 := q JAC(2, 40, infinity)  JAC(5, 40, infinity)  JAC(8, 40, infinity)

                         2                      2   /
    JAC(15, 40, infinity)  JAC(18, 40, infinity)   /  (JAC(1, 40, infinity)
                                                  /

                        3
    JAC(4, 40, infinity)  JAC(9, 40, infinity) JAC(11, 40, infinity)

                         2
    JAC(16, 40, infinity)  JAC(19, 40, infinity) JAC(20, 40, infinity))

>  GEP1:=jac2eprod(JJ1);
                   2            2            2             2             2   /
GEP1 := GETA(40, 2)  GETA(40, 5)  GETA(40, 8)  GETA(40, 15)  GETA(40, 18)   /
                                                                           /

                            3                                      2
    (GETA(40, 1) GETA(40, 4)  GETA(40, 9) GETA(40, 11) GETA(40, 16)

    GETA(40, 19) GETA(40, 20))

>  L1:=GETAP2getalist(GEP1);
L1 := [[40, 1, -1], [40, 2, 2], [40, 4, -3], [40, 5, 2], [40, 8, 2],

    [40, 9, -1], [40, 11, -1], [40, 15, 2], [40, 16, -2], [40, 18, 2],

    [40, 19, -1], [40, 20, -1]]

>  vinf(L1,40);
                                       2


DISCUSSION : We see that vinf(JJ0,40) = 2
             which is twice power q in JJ0.

SEE ALSO :  jac2eprod, GETAP2getalist, rmcofjac, v0, getaprodcuspord