One Hat Cyber Team
Your IP :
216.73.216.135
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
Macaulay2
/
PHCpack
/
html
/
View File Name :
index.html
<!DOCTYPE html> <html lang="en"> <head> <title>PHCpack -- a package for Polynomial Homotopy Continuation</title> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <link type="text/css" rel="stylesheet" href="../../../../Macaulay2/Style/doc.css"> <link rel="stylesheet" href="../../../../Macaulay2/Style/katex/katex.min.css"> <script defer="defer" src="../../../../Macaulay2/Style/katex/katex.min.js"></script> <script defer="defer" src="../../../../Macaulay2/Style/katex/contrib/auto-render.min.js"></script> <script> var macros = { "\\break": "\\\\", "\\ZZ": "\\mathbb{Z}", "\\NN": "\\mathbb{N}", "\\QQ": "\\mathbb{Q}", "\\RR": "\\mathbb{R}", "\\CC": "\\mathbb{C}", "\\PP": "\\mathbb{P}" }, delimiters = [ { left: "$$", right: "$$", display: true}, { left: "\\[", right: "\\]", display: true}, { left: "$", right: "$", display: false}, { left: "\\(", right: "\\)", display: false} ], ignoredTags = [ "kbd", "var", "samp", "script", "noscript", "style", "textarea", "pre", "code", "option" ]; document.addEventListener("DOMContentLoaded", function() { renderMathInElement(document.body, { delimiters: delimiters, macros: macros, ignoredTags: ignoredTags, trust: true }); }); </script> <style>.katex { font-size: 1em; }</style> <script defer="defer" src="../../../../Macaulay2/Style/katex/contrib/copy-tex.min.js"></script> <script defer="defer" src="../../../../Macaulay2/Style/katex/contrib/render-a11y-string.min.js"></script> <script src="../../../../Macaulay2/Style/prism.js"></script> <script>var current_version = '1.25.06';</script> <script src="../../../../Macaulay2/Style/version-select.js"></script> <link type="image/x-icon" rel="icon" href="../../../../Macaulay2/Style/icon.gif"> </head> <body> <div id="buttons"> <div> <a href="https://macaulay2.com/">Macaulay2</a> <span id="version-select-container"></span> » <a title="Macaulay2 documentation" href="../../Macaulay2Doc/html/index.html">Documentation </a> <br><a href="../../Macaulay2Doc/html/_packages_spprovided_spwith_sp__Macaulay2.html">Packages</a> » <span><a title="a package for Polynomial Homotopy Continuation" href="index.html">PHCpack</a> :: <a title="a package for Polynomial Homotopy Continuation" href="index.html">PHCpack</a></span> </div> <div class="right"> <form method="get" action="https://www.google.com/search"> <input placeholder="Search" type="text" name="q" value=""> <input type="hidden" name="q" value="site:macaulay2.com/doc"> </form> <a href="_cascade.html">next</a> | previous | <a href="_cascade.html">forward</a> | backward | up | <a href="master.html">index</a> | <a href="toc.html">toc</a> </div> </div> <hr> <div> <h1>PHCpack -- a package for Polynomial Homotopy Continuation</h1> <div> <h2>Description</h2> <div> <p>This package provides an interface to the software <span class="tt">PHCpack</span>, a general-purpose polynomial system solver that uses homotopy continuation. The main method is a numerical blackbox solver, implemented for Laurent systems. The package also provides a fast mixed volume computation, the ability to filter solutions, extract real solutions, or track solution paths defined by a polynomial homotopy. For positive dimensional solution sets, we can compute a numerical irreducible decomposition.</p> <p>The software <span class="tt">PHCpack</span> itself is available at <a href="http://www.math.uic.edu/~jan/download.html">http://www.math.uic.edu/~jan/download.html</a>. This site provides source code and its executable version <span class="tt">phc</span>. To use the methods from this package, the user must have the executable program <span class="tt">phc</span> available, preferably in the execution path. The functions in this package call the <span class="tt">phc</span> executable, behind the scenes, with appropriate input options, and save intermediate output to temporary files. For convenience, the file names are displayed, and the commands that are invoked are documented under "Consequences" for each function.</p> <p>Below is a simple example using the most popular function, the numerical blackbox solver.</p> <p></p> </div> <table class="examples"> <tr> <td> <pre><code class="language-macaulay2">i1 : R = CC[x,y,z] o1 = R o1 : PolynomialRing</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i2 : system = {y-x^2,z-x^3,x+y+z-1} 2 3 o2 = {- x + y, - x + z, x + y + z - 1} o2 : List</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i3 : solns = solveSystem(system) o3 = {{-.771845-1.11514*ii, -.647799+1.72143*ii, 2.41964-.606291*ii}, ------------------------------------------------------------------------ {.543689, .295598, .160713}, {-.771845+1.11514*ii, -.647799-1.72143*ii, ------------------------------------------------------------------------ 2.41964+.606291*ii}} o3 : List</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i4 : numSolns = #solns o4 = 3</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i5 : solns/print {-.771845-1.11514*ii, -.647799+1.72143*ii, 2.41964-.606291*ii} {.543689, .295598, .160713} {-.771845+1.11514*ii, -.647799-1.72143*ii, 2.41964+.606291*ii} o5 = {, , } o5 : List</code></pre> </td> </tr> </table> <div> <p>We see that there are three solutions to the above system. Each solution is of type <a title="a type used to store a point in complex space" href="../../NAGtypes/html/___Abstract__Point.html">Point</a> and contains diagnostic information about the quality of the solution.</p> <p></p> </div> <table class="examples"> <tr> <td> <pre><code class="language-macaulay2">i6 : oneSoln = solns_0 o6 = oneSoln o6 : Point</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i7 : peek oneSoln o7 = Point{cache => CacheTable{...3...} Coordinates => {-.771845-1.11514*ii, -.647799+1.72143*ii, ------------------------------------------------------------------------ } 2.41964-.606291*ii}</code></pre> </td> </tr> </table> <div> <p></p> <p>The value of <span class="tt">LastT</span> is the end value of the continuation parameter: if it equals 1, then the solver reached the end of the path properly.</p> </div> </div> <div> <h2>Contributors</h2> <div> <ul> <li><a href="http://www.math.gatech.edu/~leykin">Anton Leykin</a></li> <li><a href="http://www.math.uic.edu/~sommars">Jeff Sommars</a></li> <li><a href="http://www.math.tamu.edu/~tbrysiewicz/">Taylor Brysiewicz</a></li> <li><a href="http://www.coreyharris.name/">Corey Harris</a></li> <li><a href="http://www.mit.edu/~diegcif/">Diego Cifuentes</a></li> <li><a href="http://www.kaiekubjas.com/">Kaie Kubjas</a></li> <li><a href="https://math.berkeley.edu/~seigal/">Anna Seigal</a></li> </ul> </div> </div> <div> <h2>Caveat</h2> <div> <p><b>1.</b> If you are having trouble installing the package, check whether the path to your PHCpack executable was set correctly. You can check this by typing the following command:</p> <p>options PHCpack</p> <p>If it is wrong, you can update it by putting the absolute path into the <span class="tt">init-PHCpack.m2</span> file, For example, if the executable <span class="tt">phc</span> is located in C:/cygwin/PHC, then the line inside the <span class="tt">init-PHCpack.m2</span> file will look like this:</p> <p>"path" => "C:/cygwin/PHC/" .</p> <p>Alternately, the path could be set when loading the package using the following command:</p> <p>loadPackage ("PHCpack", Configuration=>{"path"=>"C:/cygwin/PHC/","PHCexe"=>"./phc"})</p> <p><b>2.</b> The current version 1.8 of PHCpack.m2 was developed with version 1.9 of Macaulay2 and with version 2.4.17 of phc.</p> </div> </div> <div> <div> <div> <h2>Authors</h2> <ul> <li><a href="http://www.math.uic.edu/~lizgross">Elizabeth Gross</a><span> <<a href="mailto:egross7%40uic.edu">egross7@uic.edu</a>></span></li> <li><a href="http://mypages.iit.edu/~spetrov1/">Sonja Petrovic</a><span> <<a href="mailto:Sonja.Petrovic%40iit.edu">Sonja.Petrovic@iit.edu</a>></span></li> <li><a href="http://www.math.uic.edu/~jan">Jan Verschelde</a><span> <<a href="mailto:jan%40math.uic.edu">jan@math.uic.edu</a>></span></li> </ul> </div> <div> <h2>Certification <img src="../../../../Macaulay2/Style/GoldStar.png" alt="a gold star"> </h2> <p>Version <b>1.6</b> of this package was accepted for publication in <a href="https://msp.org/jsag/2013/5-1/">volume 5</a> of <a href="https://msp.org/jsag/">The Journal of Software for Algebra and Geometry</a> on 2013-07-11, in the article <a href="https://msp.org/jsag/2013/5-1/p04.xhtml">Interfacing with PHCpack</a> (DOI: <a href="https://doi.org/10.2140/jsag.2013.5.20">10.2140/jsag.2013.5.20</a>). That version can be obtained from <a href="https://msp.org/jsag/2013/5-1/jsag-v5-n1-x04-code.zip">the journal</a>.</p> </div> <div> <h2>Version</h2> <p>This documentation describes version <b>1.8</b> of PHCpack, released <b>25 May 2016</b>.</p> </div> <div> <h2>Citation</h2> <p>If you have used this package in your research, please cite it as follows:</p> <table class="examples"> <tr> <td> <pre><code class="language-bib">@misc{PHCpackSource, title = {{PHCpack: interface to PHCpack. Version~1.8}}, author = {Elizabeth Gross and Sonja Petrovic and Jan Verschelde}, howpublished = {A \emph{Macaulay2} package available at \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}} } @article{PHCpackArticle, title = {{Interfacing with PHCpack}}, author = {Elizabeth Gross and Sonja Petrovic and Jan Verschelde}, journal = {The Journal of Software for Algebra and Geometry}, volume = {5}, year = {2013}, } </code></pre> </td> </tr> </table> </div> <div> <h2>Exports</h2> <div class="exports"> <ul> <li>Functions and commands <ul> <li><span><a title="runs a cascade of homotopies to get witness sets for the variety" href="_cascade.html">cascade</a> -- runs a cascade of homotopies to get witness sets for the variety</span></li> <li><span><a title="constructs an embedding of a polynomial system" href="_construct__Embedding.html">constructEmbedding</a> -- constructs an embedding of a polynomial system</span></li> <li><span><a title="applies monodromy to factor a witness set into irreducible components" href="_factor__Witness__Set.html">factorWitnessSet</a> -- applies monodromy to factor a witness set into irreducible components</span></li> <li><span><a title="intersects a witness set by a slice" href="_intersect__Slice.html">intersectSlice</a> -- intersects a witness set by a slice</span></li> <li><span><a title="checks if coordinate has absolute value less than a given tolerance" href="_is__Coordinate__Zero.html">isCoordinateZero</a> -- checks if coordinate has absolute value less than a given tolerance</span></li> <li><span><a title="tests whether a point belongs to a solution set" href="_is__Witness__Set__Member.html">isWitnessSetMember</a> -- tests whether a point belongs to a solution set</span></li> <li><span><a title="computes mixed volume of a polynomial system" href="_mixed__Volume.html">mixedVolume</a> -- computes mixed volume of a polynomial system</span></li> <li><span><a title="returns solutions with coordinate larger than given tolerance" href="_non__Zero__Filter.html">nonZeroFilter</a> -- returns solutions with coordinate larger than given tolerance</span></li> <li><span><a title="finds the irreducible components of the zero set of a system of polynomials" href="_numerical__Irreducible__Decomposition.html">numericalIrreducibleDecomposition</a> -- finds the irreducible components of the zero set of a system of polynomials</span></li> <li><span><a title="computes a real slice for a one dimensional witness set" href="_real__Slice1__D.html">realSlice1D</a> -- computes a real slice for a one dimensional witness set</span></li> <li><span><a title="computes a real slice for a two dimensional witness set" href="_real__Slice2__D.html">realSlice2D</a> -- computes a real slice for a two dimensional witness set</span></li> <li><span><a title="refines solutions of a system by increasing working precision" href="_refine__Solutions.html">refineSolutions</a> -- refines solutions of a system by increasing working precision</span></li> <li><span><a title="approximates solutions to a rational system of equations" href="_solve__Rational__System.html">solveRationalSystem</a> -- approximates solutions to a rational system of equations</span></li> <li><span><a title="a numerical blackbox solver" href="_solve__System.html">solveSystem</a> -- a numerical blackbox solver</span></li> <li><span><a title="converts a list of rational polynomials into Laurent polynomials" href="_to__Laurent__Polynomial.html">toLaurentPolynomial</a> -- converts a list of rational polynomials into Laurent polynomials</span></li> <li><span><a title="returns a witness set and nonsolutions for the top dimensional solution set" href="_top__Witness__Set.html">topWitnessSet</a> -- returns a witness set and nonsolutions for the top dimensional solution set</span></li> <li><span><a title="tracks paths defined by a typical homotopy between start and end systems" href="_track__Paths.html">trackPaths</a> -- tracks paths defined by a typical homotopy between start and end systems</span></li> <li><span><a title="returns the version number and release date of phc" href="_version__Number.html">versionNumber</a> -- returns the version number and release date of phc</span></li> <li><span><a title="returns solutions with k-th coordinate less than the given tolerance" href="_zero__Filter.html">zeroFilter</a> -- returns solutions with k-th coordinate less than the given tolerance</span></li> </ul> </li> <li>Methods <ul> <li><span><kbd>cascade(List)</kbd> -- see <span><a title="runs a cascade of homotopies to get witness sets for the variety" href="_cascade.html">cascade</a> -- runs a cascade of homotopies to get witness sets for the variety</span></span></li> <li><span><kbd>constructEmbedding(List,ZZ)</kbd> -- see <span><a title="constructs an embedding of a polynomial system" href="_construct__Embedding.html">constructEmbedding</a> -- constructs an embedding of a polynomial system</span></span></li> <li><span><kbd>factorWitnessSet(WitnessSet)</kbd> -- see <span><a title="applies monodromy to factor a witness set into irreducible components" href="_factor__Witness__Set.html">factorWitnessSet</a> -- applies monodromy to factor a witness set into irreducible components</span></span></li> <li><span><kbd>intersectSlice(WitnessSet,List)</kbd> -- see <span><a title="intersects a witness set by a slice" href="_intersect__Slice.html">intersectSlice</a> -- intersects a witness set by a slice</span></span></li> <li><span><kbd>isCoordinateZero(AbstractPoint,ZZ,RR)</kbd> -- see <span><a title="checks if coordinate has absolute value less than a given tolerance" href="_is__Coordinate__Zero.html">isCoordinateZero</a> -- checks if coordinate has absolute value less than a given tolerance</span></span></li> <li><span><kbd>isWitnessSetMember(WitnessSet,AbstractPoint)</kbd> -- see <span><a title="tests whether a point belongs to a solution set" href="_is__Witness__Set__Member.html">isWitnessSetMember</a> -- tests whether a point belongs to a solution set</span></span></li> <li><span><kbd>mixedVolume(List)</kbd> -- see <span><a title="computes mixed volume of a polynomial system" href="_mixed__Volume.html">mixedVolume</a> -- computes mixed volume of a polynomial system</span></span></li> <li><span><kbd>nonZeroFilter(List,ZZ,RR)</kbd> -- see <span><a title="returns solutions with coordinate larger than given tolerance" href="_non__Zero__Filter.html">nonZeroFilter</a> -- returns solutions with coordinate larger than given tolerance</span></span></li> <li><span><kbd>numericalIrreducibleDecomposition(List)</kbd> -- see <span><a title="finds the irreducible components of the zero set of a system of polynomials" href="_numerical__Irreducible__Decomposition.html">numericalIrreducibleDecomposition</a> -- finds the irreducible components of the zero set of a system of polynomials</span></span></li> <li><span><kbd>realSlice1D(WitnessSet)</kbd> -- see <span><a title="computes a real slice for a one dimensional witness set" href="_real__Slice1__D.html">realSlice1D</a> -- computes a real slice for a one dimensional witness set</span></span></li> <li><span><kbd>realSlice2D(WitnessSet)</kbd> -- see <span><a title="computes a real slice for a two dimensional witness set" href="_real__Slice2__D.html">realSlice2D</a> -- computes a real slice for a two dimensional witness set</span></span></li> <li><span><kbd>refineSolutions(List,List,ZZ)</kbd> -- see <span><a title="refines solutions of a system by increasing working precision" href="_refine__Solutions.html">refineSolutions</a> -- refines solutions of a system by increasing working precision</span></span></li> <li><span><kbd>solveRationalSystem(List)</kbd> -- see <span><a title="approximates solutions to a rational system of equations" href="_solve__Rational__System.html">solveRationalSystem</a> -- approximates solutions to a rational system of equations</span></span></li> <li><span><kbd>solveSystem(List)</kbd> -- see <span><a title="a numerical blackbox solver" href="_solve__System.html">solveSystem</a> -- a numerical blackbox solver</span></span></li> <li><span><kbd>toLaurentPolynomial(List,Symbol)</kbd> -- see <span><a title="converts a list of rational polynomials into Laurent polynomials" href="_to__Laurent__Polynomial.html">toLaurentPolynomial</a> -- converts a list of rational polynomials into Laurent polynomials</span></span></li> <li><span><kbd>topWitnessSet(List,ZZ)</kbd> -- see <span><a title="returns a witness set and nonsolutions for the top dimensional solution set" href="_top__Witness__Set.html">topWitnessSet</a> -- returns a witness set and nonsolutions for the top dimensional solution set</span></span></li> <li><span><kbd>trackPaths(List,List,List)</kbd> -- see <span><a title="tracks paths defined by a typical homotopy between start and end systems" href="_track__Paths.html">trackPaths</a> -- tracks paths defined by a typical homotopy between start and end systems</span></span></li> <li><span><kbd>versionNumber(Nothing)</kbd> -- see <span><a title="returns the version number and release date of phc" href="_version__Number.html">versionNumber</a> -- returns the version number and release date of phc</span></span></li> <li><span><kbd>zeroFilter(List,ZZ,RR)</kbd> -- see <span><a title="returns solutions with k-th coordinate less than the given tolerance" href="_zero__Filter.html">zeroFilter</a> -- returns solutions with k-th coordinate less than the given tolerance</span></span></li> </ul> </li> <li>Symbols <ul> <li><span><a title="flag to switch to double double or quad double precision" href="_computing__Precision.html">computingPrecision</a> -- flag to switch to double double or quad double precision</span></li> <li><span><a title="the constant in the gamma trick, optional input for trackPaths" href="_gamma.html">gamma</a> -- the constant in the gamma trick, optional input for trackPaths</span></li> <li><span><a title="flag to run phc -p or phc -m in interactive mode" href="_interactive.html">interactive</a> -- flag to run phc -p or phc -m in interactive mode</span></li> <li><span><a title="option of trackPaths to get all intermediate solutions on a path" href="_intermediate__Solutions.html">intermediateSolutions</a> -- option of trackPaths to get all intermediate solutions on a path</span></li> <li><span><a title="option of trackPaths to load the settings for a reproducible rerun" href="_load__Settings__Path.html">loadSettingsPath</a> -- option of trackPaths to load the settings for a reproducible rerun</span></li> <li><span><a title="the number of threads in the path tracker" href="_num__Threads.html">numThreads</a> -- the number of threads in the path tracker</span></li> <li><span><a title="seed for the random number generators" href="_random__Seed.html">randomSeed</a> -- seed for the random number generators</span></li> <li><span><a title="option of trackPaths to save the settings for a reproducible rerun" href="_save__Settings__Path.html">saveSettingsPath</a> -- option of trackPaths to save the settings for a reproducible rerun</span></li> <li><span><a title="option of realSlice1D" href="_search__Delta.html">searchDelta</a> -- option of realSlice1D</span></li> <li><span><a title="option of realSlice1D" href="_search__Npoints.html">searchNpoints</a> -- option of realSlice1D</span></li> <li><span><a title="option of realSlice1D" href="_search__Tolerance.html">searchTolerance</a> -- option of realSlice1D</span></li> <li><span><a title="flag to monitor the progress of the multithreaded path tracker" href="_see__Progress.html">seeProgress</a> -- flag to monitor the progress of the multithreaded path tracker</span></li> <li><span><a title="optional input for computation of the stable mixed volume" href="___Stable__Mixed__Volume.html">StableMixedVolume</a> -- optional input for computation of the stable mixed volume</span></li> <li><span><a title="optional input for cascade and numericalIrreducibleDecomposition" href="___Start__Dimension.html">StartDimension</a> -- optional input for cascade and numericalIrreducibleDecomposition</span></li> <li><span><a title="optional input to construct and solve a random coefficient system" href="___Start__System.html">StartSystem</a> -- optional input to construct and solve a random coefficient system</span></li> <li><span><a title="the degree of the continuation parameter" href="_t__Degree.html">tDegree</a> -- the degree of the continuation parameter</span></li> </ul> </li> </ul> </div> </div> </div> <div class="waystouse"> <h2>For the programmer</h2> <p>The object <a title="a package for Polynomial Homotopy Continuation" href="index.html">PHCpack</a> is <span>a <a title="the class of all packages" href="../../Macaulay2Doc/html/___Package.html">package</a></span>, defined in <span class="tt">PHCpack.m2</span>, with auxiliary files in <span class="tt">PHCpack/</span>.</p> </div> <hr> <div class="waystouse"> <p>The source of this document is in <span class="tt">PHCpack/PHCpackDoc.m2:84:0</span>.</p> </div> </div> </div> </body> </html>