refineSolutions -- refines solutions of a system by increasing working precision

Synopsis

• Usage:
newSols = refineSolutions(f,sols,dp)
• Inputs:
• f, a list, a system of polynomials
• sols, a list, solutions of the system f, each of type Point (from a previous calculation)
• dp, an integer, the number of decimal places in working precision
• Optional inputs:
• Verbose => ..., default value false, option to specify whether additional output is wanted
• Outputs:
• newSols, a list, the solutions sols of f refined to increased precision of dp decimal places
• Consequences:
• writes a system to a temporary file,
• invokes the command phc -v (with option 3),
• stores phc output in a temporary file,
• parses and prints the refined solutions.

Description

The user can specify the number of decimal places desired to refine solutions.

Let us compute a square root with a working precision of 64 decimal places:

 i1 : R = CC[x,y]; S = {x^2 - 1/3, x*y - 1}; ourRoots = solveSystem(S); i4 : r0 = ourRoots#0#Coordinates#1 o4 = 1.73205080756888 o4 : CC (of precision 53) i5 : newRoots = refineSolutions(S,ourRoots,64) o5 = {{.57735, 1.73205}, {-.57735, -1.73205}} o5 : List i6 : newRoots#0 -- recall that solutions are of type Point o6 = {.57735, 1.73205} o6 : Point i7 : r1 = newRoots#0#Coordinates#1 o7 = 1.73205080756887735414922460641658082304678611432812598193257967 o7 : CC (of precision 213)

Ways to use refineSolutions :

• "refineSolutions(List,List,ZZ)"

For the programmer

The object refineSolutions is .