teste

SEARCHC

  • Given a polynomial this routine produces a list of  summands which are substitutable from a list of relations.


ORD:=function(l1, l2) return l1[2] < l2[2];end;

FREL:=function(lrel)
local siz, nlrel, laux, x, ulrel, laux_par;

siz:=Size(lrel);
nlrel:=List([1..siz], i -> [lrel[i], i]);
ulrel:= List([1..siz], i -> lrel[i][1]);
ulrel:=Union(ulrel, ulrel);

laux:=[];
for x in ulrel do
    laux_par:=Filtered(nlrel, i -> i[1][1] = x);
    Add(laux, laux_par[Size(laux_par)]);
od;
Sort(laux, ORD);
return laux;
end;
    


SEARCHC:=function(pol, lrel)
local frel, x;

frel:=FREL(lrel);



for x in frel do
    if SUBSC( pol, x[1]) <> pol then
        Print("Coincident relation ", x[2], " :   ", x[1][1] , " = ??","\n");
    fi;
od;
end;