PHC Functions
*************

This chapter describes  interface functions for PHC pack ox server ox_sm1_phc. These interface functions are defined in the file phc. The file phc is

at $(OpenXM_HOME)/lib/asir-contrib.

          [file opening.texi not included]
     [255] phc.start();
     0
     [257] phc.phc([x^2+y^2-4,x*y-1]);
     The detailed output is in the file tmp.output.*
     The answer is in the variable Phc.
     0
     [260] Phc ;
     [[[-0.517638,0],[-1.93185,0]],
     [[1.93185,0],[0.517638,0]],
     [[-1.93185,0],[-0.517638,0]],
     [[0.517638,0],[1.93185,0]]]
     [261]

Author of PHC pack: Jan Verschelde.

Reference 1: Jan Verschelde, PHCpack: A general-purpose solver for polynomial systems by homotopy continuation".  ACM Transaction on Mathematical Softwares, 25(2): 251-276, 1999.

Reference 2: Cox, D., O'Shea, Little, J.,  Using Algebraic Geometry, Springer. See the chapter on mixed volumes.

Functions
=========

phc.start
---------

phc.start()
     ::  Start  ox_sm1_phc on the localhost.

return
     Integer

  * Start ox_sm1_phc on the localhost. It returns the descriptor of ox_sm1_phc.

  * Set Xm_noX = 1 to start ox_sm1_phc without a debug window.

  * The descriptor is stored in Phc_proc.

     P = phc.start()

Reference
     ox_launch, phc

phc.phc
-------

phc.phc(S|proc=P)
     ::  Ask PHC pack to find all the roots in the complex torus of the given systems of polynomials S

return
     Void

p
     Number

s
     List

  * The server calls PHC pack to solve a system of algebraic equations S by homotopy methods. PHC pack has been developed by Jan Verschelde. See www.mth.msu.edu/~jan for the original distribution. The original PHC pack can choose several strategies to solve, but our phc interface uses only black-box solver, which is general and automatic but is not efficient. So, if you fails by our interface, try the other strategies via the original user interface.

  * phc generates working files  tmp.phc.out.pid, tmp.input.*, tmp.output.*. Here, pid the process number of the server. The file tmp.output.* contains details informations on how PCH pack solves the system.

  * The number of variables and the number of equations length(S) must agree.

Algorithm: Jan Verschelde, PHCpack: A general-purpose solver for polynomial systems by homotopy continuation".  ACM Transaction on Mathematical Softwares, 25(2): 251-276, 1999.

     [232] P = phc.start();
     0
     [233] phc.phc([x^2+y^2-4,x*y-1]|proc=P);
     The detailed output is in the file tmp.output.*
     The answer is in the variable Phc.
     0
     [234] Phc;
     [[[-1.93185,0],[-0.517638,0]],
      [[0.517638,0],[1.93185,0]],
      [[-0.517638,0],[-1.93185,0]],
      [[1.93185,0],[0.517638,0]]]

      [[x=[real, imaginary], y=[real,imaginary]],  the first solution
       [x=[real, imaginary], y=[real,imaginary]],  the second solution
       ...

Reference
     ox_launch, phc.start, $(OpenXM_HOME)/bin/lin_phcv2(original PHC pack binary for linux)