PCx Linear Programming Code

###

### 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.

The current release is 1.1. Numerous small changes have been made since the last major release on 6/10/98.

Version 1.1 contains no new algorithmic features; it differs from version 1.0 in that it provides hooks in the code that enable alternative linear solvers to be provided by the user.

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:

- Sun Sparcstations running SunOS,
- Sun UltraSparcs running Solaris,
- IBM RS/6000 workstations running AIX,
- SGI workstation running IRIX-5.3,
- SGI workstation running IRIX-6.4,
- HP workstations running HPUX,
- PC Linux,
- DEC Alpha workstation.

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

> `

> PCx afiro

> `

or

> `

> PCx 25fv47

> `

### AMPL and Java interfaces

An AMPL interface to PCx 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

- An all C version (useful for machines with no fortran compiler)
- Windows 95/NT version of PCx, which has now been updated to correspond to release 1.1
- DOS executable now also is consistent with version 1.1. You can also grab a tar file containing the source and project files for this version. The source code differs from the all-C version in only minor respects

### Parallel versions of PCx

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

Users with multiprocessor shared-memory IBM RS6000 platforms can use the WSSMP version of PCx; parallelism can be achieved by simply linking to the shared-memory version of WSSMP.

### Documentation

Postscript, dvi and pdf versions of the User Guide are available.

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

See here for some results obtained with the WSSMP and Ng-Peyton versions of PCx. Note that the nested-dissection algorithm as implemented in WSSMP is often much faster on the larger problems. Hans Mittelmann has compiled some comparative benchmarks in which various interior-point codes are compared. He reports mostly large problems that show up differences between the codes.

### 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.

### Authors

- Joe Czyzyk, Argonne and Poland;
- Sanjay Mehrotra, Northwestern;
- Michael Wagner, Cornell;
- Stephen Wright, Argonne.

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

Copyright Statement

### Comments?

We welcome suggestions and comments on PCx.

[ PCx Home Page | Optimization Technology Center | NEOS Server | NEOS Guide | NEOS Tools ]