Skip to content

Commit

Permalink
added polsys_glp code
Browse files Browse the repository at this point in the history
  • Loading branch information
thchang committed May 28, 2022
0 parents commit f81a34e
Show file tree
Hide file tree
Showing 16 changed files with 47,613 additions and 0 deletions.
72 changes: 72 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
Copyright © 2000 Association for Computing Machinery, Inc. Permission to
include in application software or to make digital or hard copies of part or
all of this work is subject to the following licensing agreement.

ACM Software License Agreement

All software, both binary and source published by the Association for Computing
Machinery (hereafter, Software) is copyrighted by the Association (hereafter,
ACM) and ownership of all right, title and interest in and to the Software
remains with ACM. By using or copying the Software, User agrees to abide by
the terms of this Agreement.

Noncommercial Use

The ACM grants to you (hereafter, User) a royalty-free, nonexclusive right to
execute, copy, modify and distribute both the binary and source code solely for
academic, research and other similar noncommercial uses, subject to the
following conditions:

1. User acknowledges that the Software is still in the development stage and
that it is being supplied "as is," without any support services from ACM.
Neither ACM nor the author makes any representations or warranties, express
or implied, including, without limitation, any representations or
warranties of the merchantability or fitness for any particular purpose,
or that the application of the software, will not infringe on any patents
or other proprietary rights of others.

2. ACM shall not be held liable for direct, indirect, incidental or
consequential damages arising from any claim by User or any third party
with respect to uses allowed under this Agreement, or from any use of the
Software.

3. User agrees to fully indemnify and hold harmless ACM and/or the author(s)
of the original work from and against any and all claims, demands, suits,
losses, damages, costs and expenses arising out of the User's use of the
Software, including, without limitation, arising out of the User's
modification of the Software.

4. User may modify the Software and distribute that modified work to third
parties provided that: (a) if posted separately, it clearly acknowledges
that it contains material copyrighted by ACM (b) no charge is associated
with such copies, (c) User agrees to notify ACM and the Author(s) of the
distribution, and (d) User clearly notifies secondary users that such
modified work is not the original Software.

5. User agrees that ACM, the authors of the original work and others may
enjoy a royalty-free, non-exclusive license to use, copy, modify and
redistribute these modifications to the Software made by the User and
distributed to third parties as a derivative work under this agreement.

6. This agreement will terminate immediately upon User's breach of, or
non-compliance with, any of its terms. User may be held liable for any
copyright infringement or the infringement of any other proprietary rights
in the Software that is caused or facilitated by the User's failure to
abide by the terms of this agreement.

7. This agreement will be construed and enforced in accordance with the law
of the state of New York applicable to contracts performed entirely within
the State. The parties irrevocably consent to the exclusive jurisdiction
of the state or federal courts located in the City of New York for all
disputes concerning this agreement.

Commercial Use

Any User wishing to make a commercial use of the Software must contact ACM at
[email protected] to arrange an appropriate license. Commercial use includes
(1) integrating or incorporating all or part of the source code into a product
for sale or license by, or on behalf of, User to third parties, or (2)
distribution of the binary or source code to third parties for use with a
commercial product sold or licensed by, or on behalf of, User.

Revised 6/98
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# ACM TOMS Algorithm 857: POLSYS_GLP: a parallel general linear product homotopy code for solving polynomial systems of equations

POLSYS_GLP consists of Fortran 95 modules for finding all isolated solutions of a complex coefficient polynomial system of equations. The package is intended to be used on a distributed memory multiprocessor in conjunction with HOMPACK90 (Algorithm 777), and makes extensive use of Fortran 95-derived data types and MPI to support a general linear product (GLP) polynomial system structure. GLP structure is intermediate between the partitioned linear product structure used by POLSYS_PLP (Algorithm 801) and the BKK-based structure used by PHCPACK. The code requires a GLP structure as input, and although finding the optimal GLP structure is a difficult combinatorial problem, generally physical or engineering intuition about a problem yields a very good GLP structure. POLSYS_GLP employs a sophisticated power series end game for handling singular solutions, and provides support for problem definition both at a high level and via hand-crafted code. Different GLP structures and their corresponding Bezout numbers can be systematically explored before committing to root finding.

- This code has been re-uploaded with the permission of Dr. Layne Watson.
All comments and questions should be directed to him (see contact info at
the bottom of this file).

## Structure and Usage

The original source code, exactly as distributed by ACM TOMS, is included in
the ``src`` directory.
The ``src`` directory also contains its own ``README``, build instructions,
and a test case.
Comments at the top of each subroutine document their proper usage.

## Reference and Contact

To cite this work, use:

```
@article{algorithm857,
author = {Su, Hai-Jun and McCarthy, J. Michael and Sosonkina, Masha and Watson, Layne T.},
title = {Algorithm 857: POLSYS_GLP—a Parallel General Linear Product Homotopy Code for Solving Polynomial Systems of Equations},
year = {2006},
volume = {32},
number = {4},
journal = {ACM Trans. Math. Softw.},
pages = {561–579},
doi = {10.1145/1186785.1186789}
}
```

Inquiries should be directed to

Layne T. Watson,
Department of Computer Science, VPI&SU,
Blacksburg, VA 24061-0106;
(540) 231-7540;
[email protected]

3 changes: 3 additions & 0 deletions src/857.head
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
C ALGORITHM 857, COLLECTED ALGORITHMS FROM ACM.
C THIS WORK PUBLISHED IN TRANSACTIONS ON MATHEMATICAL SOFTWARE,
C VOL. 32, NO. 4, December, 2006, P. 561--579.
Loading

0 comments on commit f81a34e

Please sign in to comment.