Software for Linear Programming

PCx is an interior-point predictor-corrector linear programming package. The code has been developed at the Optimization Technology Center, which is a collaboration between Argonne National Laboratory and Northwestern University. 

PCx has nothing to do with the .pcx file format; it cannot be used to open files in this format. Download requests for this purpose will be terminated with extreme prejudice.

The current release is 1.1. Small changes have been made from time to time; see the change log for details. The latest updates were made on 1/10/06.

PCx is designed as a stand-alone solver. Because of its modular structure and fairly transparent data structures, it is not too difficult to integrate into your application. Together with some of our users, we have recently investigated new features such as a callable library and a MATLAB interface. Users who are interested in contributing other enhancements to PCx are encouraged to contact the authors.

Downloading and Installing PCx

PCx is freely available, but is not public domain software. Commercial users should obtain a license. For conditions of use of PCx, see the copyright statement.

To download PCx or its auxiliary tools (such as the AMPL interface and PCxGUI), go to the PCx Download Page (You must first fill out the request form for PCx to get a password.)

The main distribution file contains the full Unix distribution, containing source code, Makefiles, User Guide, benchmarks, and copyright statement. Executable files for the following Unix architectures are also available:

A sample specifications file and some test problems are included in the source distribution. A sample problems can be executed by typing

PCx 25fv47

Matlab, AMPL, and Java interfaces

A Matlab interface to PCx, an AMPL interface and a Java-coded graphical interface called PCxGUI are now available. These can also be obtained from the PCx Download Page. (Again, you need to fill out a request form first for your password.)

All-C, Windows 95/NT, and DOS versions

The Download Page also contains

Parallel versions of PCx

A parallel implementation of PCx was prepared by collaborators at Cornell. This version is based on release 1.0 of the Unix version.


Postscript and pdf versions of the User Guide are available.

Here's a NEOS web page that explains MPS format, the ugly but standard input format for LPs.

New Releases and Changes

See our log of changes to PCx since inception, including new release announcements, details of the latest bug fixes and new executables, and so on.


PCx uses the sparse Cholesky linear algebra routines of Esmond Ng and Barry Peyton.

Marc Wenzel programmed the dense-column-handling and conjugate gradient refinement features that were added for the beta-2.0 release of PCx. Doug Moore gave valuable advice and in particular pointed out and repaired many memory leaks in the beta-1.0 release. Hans Mittelmann prepared the executables for numerous architectures and ran many of the benchmark tests. Jean-Pierre Goux set up the request form and download system.


Copyright Statement


We welcome suggestions and comments on PCx.

[ PCx | Optimization Technology Center | NEOS Server | NEOS Guide ]