[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: