FUNCTION :  qseries[findlincombo] - tries to express a q-series as a 
                                    linear combination of 
                                    a given list of q-series.

CALLING SEQUENCE :  findlincombo(f,L,SL,q,topshift)


PARAMETERS :   L   - list of q-series
               SL  - list of names
               q   - variable           
               topshift - integer greater than -20      

GLOBAL VARIABLES : ct, gooo

SYNOPSIS :   
   
findlincombo(f,L,SL,q,topshift) returns a set of potential 
set of linear combinations from L for the given q-series f.
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.

SL is a list of names used in printing the linear combinbations.

NOTE: The global var ct is tranpose of matrix of coeffs.
      The global var gooo is its kernel. These used for debugging
      purposes.

EXAMPLES :   

>    f1:=1+q+q^3;
>    f2:=1+q-q^3-q^5-q^7;
>    f3:=12*f1+13*f2;
> qseries[findlincombo](f3,[f1,f2],[F1,F2],q,0);
                                    nx = , 2

                                # of terms , 23

                                 12 F1 + 13 F2

> qseries[findlincombo](f3,[f1,f2+q],[F1,F2],q,0);
                                    nx = , 2

                                # of terms , 23

                             WARNING: dim ker =, 0

                             %NOT A LINEAR COMBO.%



DISCUSSION :

We see that f3 is a linear combination of f1 and f2; namely
f3 = 12*f1 + 13*f2. We also see that f3 is not a linear
combination of f1 and (f2+q).

SEE  ALSO :  findhom, findhomcombo 

Last update made Sat Feb 14 14:09:43 EST 2009.