Intent to package: wnlib
I plan to package a collection of C software written by Will Naylor
including functions for linear programming (with dense matrices),
linear algebra (including sparse matrices), transportation problem,
critical path problem, longest path problem, shortest path problem,
optimization (conjugate gradient and simulated annealing), hash
tables, single linked lists, binary trees, complex arithmetic, and
discrete Fourier transform (FFT and otherwise).
All these functions already have a prefix of "wn_", so they don't pose
a namespace pollution problem. There are man pages (70 of them). At
present they have no formatting - I'm adding that. I'm planning to
build a single library, which will be big (1 MB for the static
library, I assume the shared library will be similar).
I'm attaching the original pointer I found (in the LP FAQ, I think)
and a general description which includes a release into the public
domain. So far, he has not returned my email - but since the software
is in the public domain that is not necessary.
- Jim Van Zandt
Will Naylor (naylor@mti.sgi.com) has a collection of software he calls
WNLIB. Routines of interest include
- simplex method for linear programming: contains anti-cycling and
numerical stability hacks. No optimization for sparse matrix.
- transportation problem/assignment problem routine: optimization for
sparse matrix.
Read the INSTALL.txt file for further information. WNLIB also contains
routines pertaining to nonlinear optimization.
HOW TO INSTALL WNLIB
====================
LEGAL:
BY DOWNLOADING OR COMPILING THIS LIBRARY, YOU ACCEPT AND AGREE TO THE TERMS
AND CONDITIONS PRINTED BELOW. IF YOU DO NOT AGREE, DO NOT DOWNLOAD OR
COMPILE THIS LIBRARY.
The author and Spike Technologies provide this C code in the hope
that it will be helpful, however, we assume no responsibility
for the use of this code, nor any responsibility for its support.
The software is distributed on an "AS IS" basis, without warranty.
Neither the authors, the software developers, nor Spike Technologies
make any representation, or warranty, either express or implied, with
respect to the software programs and subroutines, their quality, accuracy,
or fitness for a specific purpose. Therefore, neither the authors, the
software developers, nor Spike Technologies shall have any liability to
you or any other person or entity with respect to any liability, loss,
or damage caused or alleged to have been caused directly or indirectly by
the programs and subroutines contained in this library. This includes, but
is not limited to, interruption of service, loss of data, loss of classroom
time, loss of consulting or anticipatory profits, or consequential damages
from the use of these programs.
COPYRIGHT NOTICE:
The source code in this directory is provided free of charge to anybody
who wants it. It is in the public domain and therefore may be used by
anybody for any purpose. This copyright notice and the above legal notice
may not be removed.
FEATURES:
WNLIB is an ANSI C subroutine library that contains numerous tools that
I have found to be useful in my programming practice.
The following are included:
miscellaneous:
improved memory allocator and memory debugger; parsing package
data structures and algorithms:
linked list; balanced binary tree; hash table - with common hash
functions; dd tree; sorting for lists and arrays;
high-quality pseudo-random number generator
numerical:
various matrix and vector operations, including matrix inverse,
least-squares inverse
linear programming:
simplex method; transportation problem; shortest path problem;
critical path problem
non-linear optimization:
conjugate directions and conjugate gradient methods for constrained
and unconstrained problems; simulated annealing
AUTHOR:
Will Naylor
Spike Technologies
500 E. Calaveras Blvd #206
Milpitas, CA 95035
Phone: (408)-945-9359
Spike Technologies provides algorithm and CAD software consulting
and contract programming and IC design services.
DOWNLOADING and INSTALLATION:
1) Create a directory called "wnlib" wherever you want this code to
reside and go into it. Type
$ cd <directory where wnlib is to reside>
$ mkdir wnlib
$ cd wnlib
2) Download using ftp or rftp or a web browser.
a) For a web browser, go to
http://www.spiketech.com/spike
Click over 'Spike Freeware' link. Read instructions and
click over <download now> to download. Your browser should throw a
dialog box; you can select a directory where you want to store it
and click ok. The browser will download it.
b) For ftp or rftp type
$ ftp ftp.rahul.net
Type 'anonymous' at login prompt.
Enter your e-mail address as password.
After you are logged in type
ftp> cd pub/spiketech/softlib/wnlib
ftp> bin
ftp> get INSTALL.txt
ftp> get wnlib.tar.Z
ftp> quit
3) Uncompress the install file. Type
$ uncompress < wnlib.tar.Z | tar xvf -
4) Make the code. Type
$ make all
5) If this fails, it may be necessary to modify variables in acc/makefile
to fit the platform you are running on.
6) When you believe you have compiled correctly, type
$ make selftest
to run the self-testing diagnostics. If selftest runs successfully
to completion with no error messages, you have successfully installed
wnlib.
USE:
1) Summary:
ARCHIVE is in: wnlib/acc/text.a
H FILES are in: wnlib/acc/h/*.h
MAN PAGES are in: wnlib/doc/man/*.man
2) Under wnlib, the directory "acc" contains .h files to include and archive
files to link to. The directory acc/h contains links to all of the
.h files. The directory acc contains an archive file called "text.a".
Use the -I switch
of cc to include the .h files. See the makefile's in acc for examples
of linking text.a files and including .h files.
3) man pages are to be found in doc/man. The script "wnman" in the
directory "command" is a convenient way to view these man pages.
Type "wnman <page_name>" to view a man page.
The command "wnman -k <keyword>" does a keyword search on all
the man pages.
The variable "wnlib" must point to your wnlib directory for
wnman to work. A csh command of the form
$ set wnlib = xxx/yyy/wnlib
sets this up. Include such a command in your .cshrc.
Reply to: