package proposal

523 views
Skip to first unread message

Andrei Berceanu

unread,
Jun 4, 2014, 4:28:31 AM6/4/14
to julia...@googlegroups.com
I do now know how many of you are familiar with the PHCpack (http://homepages.math.uic.edu/~jan/phcpack_doc_html/index.html) code for solving (very large) polynomial systems without the need for initial guessing, by using homotopy continuation methods. They have a github repository as well at
https://github.com/janverschelde/PHCpack
The purpose of this email is to propose implementing an interface to PHCpack from julia as a separate package.

Hans W Borchers

unread,
Jun 4, 2014, 7:28:55 AM6/4/14
to julia...@googlegroups.com
As I once thought about writing an R package rPHCpack, I would be *very* interested 
in having access to PHCpack in Julia.

What I did not understand: (1) do you suggest someone else writes such a package, 
(2) is this a kind of poll for such a package, (3) are you going to code such a 
wrapper yourself, or (4) are you asking for help or support?

Andrei Berceanu

unread,
Jun 4, 2014, 9:56:34 AM6/4/14
to julia...@googlegroups.com
It is basically a call for collaborators on such a package. I am willing to contribute although I am quite new to Julia.

Tony Kelman

unread,
Jun 4, 2014, 10:45:06 AM6/4/14
to julia...@googlegroups.com
Sounds interesting, I'd certainly play with it. This is probably the first piece of code I've seen in public that's written in Ada though - having never built an Ada library before, getting it set up to easily install through Julia's package manager sounds like it would be the hardest part.

Andrei Berceanu

unread,
Jun 5, 2014, 2:01:12 PM6/5/14
to julia...@googlegroups.com
OK, so that makes two of us so far. Hans, are you also in?
I think we might also get support from the PHCpack creator.
Perhaps a good place to start would be to contact the NLsolve developers (https://github.com/EconForge/NLsolve.jl), because they mention Homotopy Methods on their TODO list, what do you guys reckon?

Hans W Borchers

unread,
Jun 6, 2014, 6:43:25 AM6/6/14
to julia...@googlegroups.com
I would certainly be interested to apply it to systems of polynomials in 
design and engineering, but I will not be in a position to support you in 
developing such a package.

Please notice that PHCpack is distributed under GPL license, so your first
step should be to contact the author and ask for his approval to distribute 
it under a lesser license such as MIT.

Then think about it: what are you going to do with the ADA sources?

May I propose to you to look at HOMPACK <http://www.netlib.org/hompack/> or 
HOMPACK90. HOMPACK is a suite of FORTRAN 77 subroutines for solving nonlinear 
systems of equations by homotopy methods (trying to find all the roots).

This is available in Netlib, and since it is written in Fortran, it should 
be relatively easily interfaceable with Julia -- though it might be under AMS 
license which is even stricter than GPL. 

Andrei Berceanu

unread,
Jun 6, 2014, 7:59:08 AM6/6/14
to julia...@googlegroups.com
I just wrote the PHCpack author to ask about the licensing issue.
About the Ada sources, I don't really see the problem vs Fortran sources
 - I mean, they both need to be compiled, and gcc has Ada support. It compiles
just fine on my system (Debian Wheezy)

Milan Bouchet-Valat

unread,
Jun 6, 2014, 8:18:33 AM6/6/14
to julia...@googlegroups.com
Le vendredi 06 juin 2014 à 03:43 -0700, Hans W Borchers a écrit :
Please notice that PHCpack is distributed under GPL license, so your first
step should be to contact the author and ask for his approval to distribute 
it under a lesser license such as MIT.

Though since it's a package rather than code to be included in Julia Base, GPL is fine too.


Regards

Andrei Berceanu

unread,
Jun 20, 2014, 5:14:18 PM6/20/14
to julia...@googlegroups.com
I have contacted the author (https://github.com/janverschelde/PHCpack/issues/3) and it seems redistribution under a different license is not really an option.
However, if what Milan says is correct, then we should be able to include it 'as-is'.
Now for the interface, I was thinking that, since there already exists a comprehensive C API to the Ada code, we could call that from Julia, what do you guys reckon?

Tony Kelman

unread,
Jun 20, 2014, 5:36:01 PM6/20/14
to julia...@googlegroups.com
That sounds like the best plan for the PHCpack code. Have you looked at or are you familiar with whether HOMPACK as Hans mentioned would be able to provide similar functionality? I say that just because more of us are used to building Fortran code than Ada. Ada should be reasonable to work with on Linux, and maybe even in MinGW or Cygwin, but it doesn't look like it's set up in Homebrew for Mac users. If you know of a standard way to install GNAT and can get the library building on at least your platform of choice, go for it.

Andrei Berceanu

unread,
Jun 23, 2014, 7:06:03 AM6/23/14
to julia...@googlegroups.com
Free binary versions for Mac and Windows of the gnu-ada compiler are available at http://libre.adacore.com/ and are very easy to install.
As for HOMPACK, the main difference is that PHCpack is specifically targeted for polynomial systems. HOMPACK provides continuation methods for general nonlinear systems and has extra drivers for polynomial systems. Another main difference is that PHCpack offers polyhedral homotopies, which are absent from HOMPACK. So I guess it depends on what we want really, personally I am interested in polynomial systems. Please let me know if you succeed in installing the ada compiler for Mac from the above link.

Andrei Berceanu

unread,
Jun 23, 2014, 8:26:34 AM6/23/14
to julia...@googlegroups.com
By the way I recently stumbled upon NLSolve.jl, and asked them if they would be interested in PHCpack
https://github.com/EconForge/NLsolve.jl/issues/12

Still no reply on their part yet though.

Evan Pu

unread,
Dec 26, 2014, 7:11:09 PM12/26/14
to julia...@googlegroups.com
is this thread still alive? a phc package would be good...

Andrei Berceanu

unread,
Dec 29, 2014, 6:31:58 AM12/29/14
to julia...@googlegroups.com
Well the status of this is that NLSolve people are not interested, because PHCpack can only solve polynomial systems, while they target arbitrary nonlinear functions.
The remaining alternative is to make a stand-alone phc package for Julia, distributing the Ada code under GPL and including a suitable version of the gnu-ada compiler from http://libre.adacore.com. See details at https://github.com/janverschelde/PHCpack/issues/3.
Reply all
Reply to author
Forward
0 new messages