cash-0.1.0.0: misc/sgp_client.g
#
# -----------------------------------------------------------------------------
# basic packages needed
LoadPackage("scscp");
Read("sumEuler.g");
# -----------------------------------------------------------------------------
# global constants
SCSCPclientHost := "localhost";
SCSCPclientPort := 12321;
# -----------------------------------------------------------------------------
# some worker functions
QuillenSeriesByIdGroup := function( id )
local G, qs, latt, msl, ccs, ccs_repr, i, x, n;
G := SmallGroup( id );
latt := LatticeSubgroups(G);
msl := MinimalSupergroupsLattice(latt);
ccs := ConjugacyClassesSubgroups(latt);
ccs_repr := List(ccs, Representative);
qs := [];
for i in [ 1 .. LogInt( Size(G), PrimePGroup(G) ) ] do
qs[i]:=0;
od;
for i in [ 1 .. Length(ccs_repr) ] do
if IsElementaryAbelian( ccs_repr[i] ) then
if ForAll( msl[i],
x -> IsElementaryAbelian( ccs[x[1]][x[2]] ) = false ) then
n := LogInt( Size(ccs_repr[i]), PrimePGroup(G) );
qs[n] := qs[n] + 1;
fi;
fi;
od;
return [ id, qs ];
end;
PointImages:=function( G, n )
local g;
return Set( List( GeneratorsOfGroup(G), g -> n^g ) );
end;
# -----------------------------------------------------------------------------
# Useful shortcuts
RandomPolynomial:=function(n)
local fam, f;
fam:=FamilyObj(1);
f:=LaurentPolynomialByCoefficients( fam, List([1..n],i->Random(Integers)), 0, 1 );
return f;
end;
RandomPolynomialAsString:=function(n)
return String(RandomPolynomial(n));
end;
Run1:=function( fct, args )
local res;
res:=EvaluateBySCSCP("CS_parProcesses1", [fct, args], SCSCPclientHost, SCSCPclientPort);
return res.object;
end;
Run2:=function( fct1, fct2, args1, args2 )
local res;
res:=EvaluateBySCSCP("CS_parProcesses2", [fct1, fct2, args1, args2], SCSCPclientHost, SCSCPclientPort);
return res.object;
end;
ParMap:=function( map_fct, list )
local res;
res:=EvaluateBySCSCP("CS_parMap", [ map_fct, list ], SCSCPclientHost, SCSCPclientPort);
return res.object;
end;
ParMapFold:=function( map_fct, fold_fct, neutral, list )
local res;
res:=EvaluateBySCSCP("CS_parMapFold", [ map_fct, fold_fct, neutral, list ], SCSCPclientHost, SCSCPclientPort);
return res.object;
end;
ParMapFold1:=function( map_fct, fold_fct, neutral, list )
local res;
res:=EvaluateBySCSCP("CS_parMapFold1", [ map_fct, fold_fct, neutral, list ], SCSCPclientHost, SCSCPclientPort);
return res.object;
end;
ParZipWith:=function( zip_fct, list1, list2 )
local res;
res:=EvaluateBySCSCP("CS_parZipWith", [ zip_fct, list1, list2 ], SCSCPclientHost, SCSCPclientPort);
return res.object;
end;
# -----------------------------------------------------------------------------
ys:=[10,9,8,7,6,5,4,3,2,1];
xs:=[1,2,3,4,5,6,7,8,9,10];
zs:=[87,88,89];
fam:=FamilyObj(1);
n:=20;
x_1:=Indeterminate(Rationals,"x_1");
x_2:=Indeterminate(Rationals,"x_2");
x_3:=Indeterminate(Rationals,"x_3");
x:=Indeterminate(Rationals,"x");
y:=Indeterminate(Rationals,"y");
z:=Indeterminate(Rationals,"z");
# ./testClient 12321 karaPar0 20
p1:=RandomPolynomial(n);
p2:=RandomPolynomial(n);
p3:=RandomPolynomial(n);
p4:=RandomPolynomial(n);
s1:=String(p1);
s2:=String(p2);
s3:=String(p3);
s4:=String(p4);
# EvaluateBySCSCP("CS_karatsubaParSCSCP", [s1,s2,s3,s4], SCSCPclientHost, SCSCPclientPort);
# GroebnerBasis (experimental)
p01:=x_1^2+x_2^2+x_3^2-1;
p02:=x_1^2+x_3^2-x_2;
p03:=x_1-x_2;
s01:=String(p01);
s02:=String(p02);
s03:=String(p03);
# EvaluateBySCSCP("CS_GroebnerBasis", [3, [s01,s02,s03]], SCSCPclientHost, SCSCPclientPort);
# l00:=[p01,p02,p03];
# GroebnerBasis(l00,MonomialLexOrdering());
q1:=RandomPolynomial(3);
q2:=RandomPolynomial(3);
q3:=RandomPolynomial(3);
qs1:=String(q1);
qs2:=String(q2);
qs3:=String(q3);
# EvaluateBySCSCP("CS_GroebnerBasis", [3, [qs1,qs2,qs3]], SCSCPclientHost, SCSCPclientPort);