FUNCTION :  qseries[findhom] - finds a set of potential homogeneous
                               relations among a list of q-series.

CALLING SEQUENCE :  findhom(L,q,n,topshift)
    
PARAMETERS :   L   - list of q-series
               q   - variable           
               n   - positive integer
               topshift - integer greater than -20      

GLOBAL VARIABLE : X

SYNOPSIS :   
   
 findhom(L,q,n,topshift) returns a set of potential homogenous relations
 of order n among the q-series in the list L.
 The value of topshift is usually taken to be zero. Howeverm if
 it appears that spurious relations are being generated then a higher
 value of topshift should be taken.

 This program converts the list of q-series into a list of polynomials
 of a certain degree and then converts these into a matrix. The entries
 in a given row correspond to coefficients of the corrresponding the
 polynomial. The set of relations is then found by computing
 the kernel of the transpose of this matrix.

NOTE: There is a global variable X that is reassigned each time the
function is called. This variable is used to display the relations.

EXAMPLES :   

> findhom([theta3(q,100),theta4(q,100),theta3(q^2,100),
  theta4(q^2,100)],q,1,0);

                                # of terms , 25

                        -----RELATIONS----of order---, 1

                                      {{}}

> findhom([theta3(q,100),theta4(q,100),theta3(q^2,100),
  theta4(q^2,100)],q,2,0);

                                # of terms , 31

                        -----RELATIONS----of order---, 2

                      2       2         2                    2
                 {X[1]  + X[2]  - 2 X[3] , - X[1] X[2] + X[4] }

> 

DISCUSSION :

From the session above we see that there is no linear relation between
the functions

theta3(q), theta4(q), theta3(q^2) and theta4(q^2).

However, it appears that there are two quadratic relations.

                                /         2            2\1/2
                           2    |theta3(q)  + theta4(q) |
                   theta3(q ) = |-----------------------|
                                \           2           /

and
                             2                         1/2
                     theta4(q ) = (theta3(q) theta4(q)).

SEE  ALSO :  findnonhom