|\^/| Maple 18 (X86 64 LINUX) ._|\| |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2014 \ MAPLE / All rights reserved. Maple is a trademark of <____ ____> Waterloo Maple Inc. | Type ? for help. [&x, *, +, -, ., <,>, <|>, About, AddCoordinates, ArcLength, BasisFormat, Binormal, Compatibility, ConvertVector, CrossProduct, Curl, Curvature, D, Del, DirectionalDiff, Divergence, DotProduct, Flux, GetCoordinateParameters, GetCoordinates, GetNames, GetPVDescription, GetRootPoint, GetSpace, Gradient, Hessian, IsPositionVector, IsRootedVector, IsVectorField, Jacobian, Laplacian, LineInt, MapToBasis, Nabla, Norm, Normalize, PathInt, PlotPositionVector, PlotVector, PositionVector, PrincipalNormal, RadiusOfCurvature, RootedVector, ScalarPotential, SetCoordinateParameters, SetCoordinates, SpaceCurve, SurfaceInt, TNBFrame, Tangent, TangentLine, TangentPlane, TangentVector, Torsion, Vector, VectorField, VectorPotential, VectorSpace, Wronskian, diff, eval, evalVF, int, limit, series] Path set to /dsk/l1/fgb/13379/FGblib/../libfgbunid.so FGb/Maple interface package Version 1.63 JC Faugere (Jean-Charles.Faugere@inria.fr) Type ?FGb for documentation Warning, `n` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `EQUS` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `linear` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `var` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `S` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `par` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `ls` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `myrand1` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `myrand` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `myprime` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `gb` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `rr1` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `DEG` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `boo` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `i` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `NEWVARS` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `LS` is implicitly declared local to procedure `FGbRationalParametrization` Warning, `param` is implicitly declared local to procedure `FGbRationalParametrization` FGbRationalParametrization := proc(EQUATIONS, VARS) local n, EQUS, linear, var, S, par, ls, myrand1, myrand, myprime, gb, rr1, DEG, boo, i, NEWVARS, LS, param; n := nops(VARS); EQUS := expand(EQUATIONS); if indets(VARS) <> indets(EQUS) then print(indets(EQUS) <> indets(VARS)); error "Variables do not match" end if; if n = 1 then error "Univariate Case" end if; if member(1, map(degree, EQUS)) then linear := map(_pol -> if degree(_pol) = 1 then _pol end if, EQUS); var := indets(linear[1])[1]; S := solve(linear[1], var); par, ls := FGbRationalParametrization(subs(var = S, EQUATIONS), remove(member, VARS, [var])); return par, {op(ls), var = S} end if; myrand1 := rand(1 .. 10); myrand := rand(9000 .. 65519); myprime := nextprime(myrand()); gb := FGb:-fgb_gbasis_lm([VectorCalculus:-`+`( add(VectorCalculus:-`*`(myrand(), VARS[i]), i = 1 .. n), myrand()), op(EQUS)], myprime, [], VARS, {"index" = 99886600, "verb" = 0}); if gb[1] <> [1] then printf("\t\n\n Positive dimension \n\n"); error "Positive dimension" end if; gb := FGb:-fgb_gbasis(EQUS, myprime, [], VARS, {"index" = 99886600, "verb" = 0}); if member(1, map(degree, gb)) then FGb:-fgb_gbasis(EQUS, 0, [], VARS, {"index" = 99886600, "verb" = 0}) ; return [1], {}; error "There is a linear polynomial in the Gb" end if; if gb = [1] then return [seq(1, i = 1 .. nops(vars))], {} end if; rr1 := FGb:-fgb_matrixn(subs(VARS[n] = VectorCalculus:-`+`(add( VectorCalculus:-`*`(myrand(), VARS[i]), i = 1 .. VectorCalculus:-`+`(n, -1)), VARS[n]), gb), myprime, VARS, {"index" = 99886600, "verb" = 0}); if 1 <= nops(map(_sqr -> if 1 < _sqr[2] then _sqr[2] end if, (Sqrfree(rr1[nops(rr1)]) mod myprime)[2])) then printf("Non radical case\n", degree(rr1[nops(rr1)]), add( degree(_pol[1]), _pol in (Sqrfree(rr1[nops(rr1)]) mod myprime)[2])); error "Non radical case" end if; DEG := degree(rr1[nops(rr1)]); printf("\n\nDegree is %d\n\n", DEG); boo := false; for i from nops(VARS) by -1 to 1 do NEWVARS := [op(remove(member, VARS, VARS[i .. i])), VARS[i]]; try rr1 := FGb:-fgb_matrixn(gb, myprime, NEWVARS, {"index" = 99886600, "verb" = 0}); if 0 < nops(rr1) then boo := true; break end if catch: end try end do; if boo then LS := {}; if 0 = 0 then param := FGb:-fgb_matrixn(EQUS, 0, NEWVARS, {"index" = 99886600, "verb" = 0}) else param := FGb:-fgb_matrixn(EQUS, 65521, NEWVARS, {"index" = 99886600, "verb" = 0}) end if else printf("\n\nChange of variables requested\n\n"); LS := {VARS[n] = VectorCalculus:-`+`(VARS[n], add(VectorCalculus:-`*`(myrand1(), VARS[i]), i = 1 .. n))}; if 0 = 0 then param := FGb:-fgb_matrixn( map(expand, subs(LS, EQUS)), 0, VARS, {"index" = 99886600, "verb" = 0}) else param := FGb:-fgb_matrixn(map(expand, subs(LS, EQUS)), 65521, VARS, {"index" = 99886600, "verb" = 0}) end if end if; return param, LS end proc MyIsolation := proc(rrform) local newrr, elimvars, othervars, reg, SOLS, vars, DEG; elimvars := indets(rrform[1])[1]; othervars := map(_eqs -> indets(_eqs) minus {elimvars}, rrform[2 .. nops(rrform)]); othervars := map(_v -> _v[1], othervars); DEG := degree(rrform[1]); newrr := [rrform[1], VectorCalculus:-diff(rrform[1], elimvars), [rem( VectorCalculus:-`*`(VectorCalculus:-diff(rrform[1], elimvars), elimvars), rrform[1], elimvars), seq(VectorCalculus:-`-`( VectorCalculus:-`*`( coeff(rrform[i], othervars[VectorCalculus:-`+`(i, -1)], 0), DEG)), i = 2 .. nops(rrform))]]; reg := lcm(op(map(denom, newrr[3])), denom(newrr[2])); newrr := [numer(newrr[1]), expand(VectorCalculus:-`*`(reg, newrr[2])), map(_eqs -> expand(VectorCalculus:-`*`(_eqs, reg)), newrr[3])]; SOLS := fgbrs:-rs_isolate_rur(newrr[1], newrr[2], newrr[3], elimvars, verbose = 0); vars := [elimvars, op(othervars)]; SOLS := map(_point -> [seq(vars[i] = VectorCalculus:-`*`( VectorCalculus:-`+`(_point[i][1], _point[i][2]), 1/2), i = 1 .. nops(vars))], SOLS); return SOLS end proc my_rs_rur_sys := proc( sys::depends(list(polynom(integer, vars))), vars::list(name), v::name := _Z , {constraints := [], fulloutput::boolean := false, noresult::boolean := false, sepvector::list(integer) := [], useblockingerror::boolean := FAIL, verbose::nonnegint := 0}, $) fgbrs:-rs_rur_gb( fgbrs:-rs_gbasis(sys, vars, ':-useblockingerror' = useblockingerror), vars, v, ':-constraints' = constraints, ':-verbose' = verbose, ':-noresult' = noresult, ':-sepvector' = sepvector, ':-fulloutput' = fulloutput, ':-useblockingerror' = useblockingerror) end proc > with(RAG): RAGlib release 3.23 (April 2014) Mohab Safey El Din (Mohab.Safey@lip6.fr) > > st:=time():PointsPerComponents(map(_pol->_pol=0, [5719078*X1^3+8980796*X1^2*X2-4250477*X1*X2^2-310434*X2^3-4996779*X1^2+5260185*X1*X2-3559189*X2^2-4816236*X1+54186*X2+2385041, -2645018*X1^3+644805*X1^2*X2+4166289*X1*X2^2-3083594*X2^3-390763*X1^2-7145724*X1*X2-2358377*X2^2-2393482*X1+931336*X2+1206730, -4857868*X1^3-7180666*X1^2*X2-1193009*X1*X2^2+2724498*X2^3-996550*X1^2-44204*X1*X2+4576719*X2^2+4125164*X1+95352*X2-1183593, 3279714*X1^3-3517374*X1^2*X2-9756107*X1*X2^2+4691710*X2^3-4719067*X1^2+4605647*X1*X2+681767*X2^2+2235977*X1-5291993*X2-348421, 1766764*X1^3+10167108*X1^2*X2+8512938*X1*X2^2-1473998*X2^3+4428250*X1^2+15265730*X1*X2+10120651*X2^2-4477815*X1+1948386*X2-4769501, -2911880*X1^3-3623914*X1^2*X2+7573172*X1*X2^2+9442882*X2^3-4235407*X1^2-4779759*X1*X2-244693*X2^2+49281*X1-6063478*X2+374682, -1998010*X1^3-6970310*X1^2*X2-8450877*X1*X2^2-4156736*X2^3-6224297*X1^2-14682010*X1*X2-10821223*X2^2-1631624*X1-2161050*X2+3109793, 155154*X1^3+2175754*X1^2*X2-3652173*X1*X2^2-5332324*X2^3+1130953*X1^2-4666547*X1*X2-4987973*X2^2-1448261*X1+920503*X2+3510445, 325784*X1^3-11875886*X1^2*X2-5258954*X1*X2^2+2177606*X2^3+1163156*X1^2-13197624*X1*X2-3668043*X2^2-2850182*X1-6256040*X2-1803155, 2143400*X1^3+2460089*X1^2*X2-7235268*X1*X2^2-2564982*X2^3+3823570*X1^2+1362972*X1*X2-670925*X2^2+2203223*X1-1166926*X2-1892882, 2939404*X1^3+4741646*X1^2*X2+2593797*X1*X2^2+1680128*X2^3+3066112*X1^2+6256488*X1*X2+4593683*X2^2+1495675*X1+1782604*X2-679449, -631086*X1^3-2263410*X1^2*X2+8019613*X1*X2^2+54244*X2^3-1070423*X1^2+4532685*X1*X2+2435901*X2^2-1570805*X1+5995041*X2+2343823, 1986138*X1^3+7900750*X1^2*X2+5523698*X1*X2^2-2576972*X2^3-1803826*X1^2+407381*X1*X2+4033382*X2^2+485052*X1+2764948*X2-1526336, -493887*X1^3-2231842*X1^2*X2+228410*X1*X2^2+2205612*X2^3-1503605*X1^2-3174557*X1*X2-3376226*X2^2-2630817*X1-2203450*X2+1214852, -2728662*X1^3-6087089*X1^2*X2-3096722*X1*X2^2+617288*X2^3-335164*X1^2-1483071*X1*X2-1086666*X2^2+480008*X1-654244*X2+379472, -954336*X1^3+1333018*X1^2*X2+743450*X1*X2^2-1481252*X2^3-613612*X1^2-1844858*X1*X2+2084460*X2^2+4683980*X1+1840528*X2-918784])):lprint(time()-st): .232 > quit memory used=7.6MB, alloc=40.3MB, time=0.28