Update to version 4.1.2.

Changes include:

* New try/catch mechanism for control of exception handling.
* Fixed memory leaks in solve and svd.
* Builtin `tril' and `triu' functions -- sparse arrays stay sparse.
* Fixed integer overflow problems in `band' and `cram'.
* Incorporated the SuperLU package for solving sparse linear
  systems.  Previously, sparse systems were converted to dense and
  solved with LAPACK (unless configured with BCSLIB-EXT).
* Included support for memory allocation debugging with dmalloc.
* Improved the logical operations to do a much better job at
  maintaining sparsity.
* New standard function `select'.
* Changes to the matrix bandwidth minimization code.  The old `band'
  function is now called `gpskca' and can do either profile or
  bandwidth minimization of symmetric or hermitian matrices.  Matrix
  statistics are computed by the new `band' function.
* New standard functions `linspace' and `logspace'.
* New standard function `equilibrate' computes scale factors to
  improve the condition of a matrix.  However, sparse code has not
  yet been included.
* Fixed several deficiencies in the `transform' function.
* Removed old get_ascii and put_ascii functions.  I doubt if anyone
  has used these in the last decade.  To read and write matrices in
  text files, use the algae MatrixMarket package.
* Fixed several errors with hermitian symmetry.
* Fixed mishandling of sparse matrix multiplication case where
  non-zero factors give a zero result.
* Added "short-circuit" logical operators && and ||.
* Added the `cram' builtin function -- it's the same as `form'
  except the output array is sparse when that makes sense.
* Added the `product' user function -- product of array elements.
* Added `mksparse' and `exsparse' functions for converting matrices
  to and from coordinate form.
* Switched to LAPACK's DGGEV now that DGEGV is deprecated.  Also use
  the new workspace size query feature in LAPACK, rather than
  working it out ourselves.
* Use LAPACK's ZHEGV and ZGGEV for complex generalized eigenvalue
  problems.
* Use floating point exception support from glibc 2.2 on Linux.
* Improved accuracy and behavior for complex arguments in functions
  `log', `asin', and `acos'.
* Added inverse hyperbolic trig functions `asinh', `acosh', and `atanh'.
* Various minor bug fixes.
This commit is contained in:
jtb 2003-04-29 22:15:27 +00:00
parent b062c0585e
commit cb2c71fbac
7 changed files with 180 additions and 147 deletions

View file

@ -1,6 +1,6 @@
# $NetBSD: Makefile,v 1.2 2002/10/25 18:42:28 wiz Exp $
# $NetBSD: Makefile,v 1.3 2003/04/29 22:15:27 jtb Exp $
DISTNAME= algae-3.6.2
DISTNAME= algae-4.1.2
CATEGORIES= math
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=algae/}

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.1.1.1 2002/05/04 01:10:03 jtb Exp $
@comment $NetBSD: PLIST,v 1.2 2003/04/29 22:15:27 jtb Exp $
bin/algae
bin/${PKGNAME}
@unexec ${INSTALL_INFO} --delete --info-dir=%D/info %D/info/algae.info
@ -11,88 +11,92 @@ info/algae.info-5
info/algae.info-6
@exec ${INSTALL_INFO} --info-dir=%D/info %D/info/algae.info
lib/algae/${PKGVERSION}/algae.A
lib/algae/${PKGVERSION}/tools/all.A
lib/algae/${PKGVERSION}/tools/arg.A
lib/algae/${PKGVERSION}/tools/autosrc.A
lib/algae/${PKGVERSION}/tools/brent.A
lib/algae/${PKGVERSION}/tools/combine.A
lib/algae/${PKGVERSION}/tools/diff.A
lib/algae/${PKGVERSION}/tools/equal.A
lib/algae/${PKGVERSION}/tools/eval.A
lib/algae/${PKGVERSION}/tools/first.A
lib/algae/${PKGVERSION}/tools/grep.A
lib/algae/${PKGVERSION}/tools/help.A
lib/algae/${PKGVERSION}/tools/ident.A
lib/algae/${PKGVERSION}/tools/info.A
lib/algae/${PKGVERSION}/tools/inv.A
lib/algae/${PKGVERSION}/tools/label.A
lib/algae/${PKGVERSION}/tools/last.A
lib/algae/${PKGVERSION}/tools/load.A
lib/algae/${PKGVERSION}/tools/log10.A
lib/algae/${PKGVERSION}/tools/logspace.A
lib/algae/${PKGVERSION}/tools/magic.A
lib/algae/${PKGVERSION}/tools/max.A
lib/algae/${PKGVERSION}/tools/merge.A
lib/algae/${PKGVERSION}/tools/message.A
lib/algae/${PKGVERSION}/tools/monte.A
lib/algae/${PKGVERSION}/tools/ode4.A
lib/algae/${PKGVERSION}/tools/pick.A
lib/algae/${PKGVERSION}/tools/plot.A
lib/algae/${PKGVERSION}/tools/product.A
lib/algae/${PKGVERSION}/tools/prof.A
lib/algae/${PKGVERSION}/tools/provide.A
lib/algae/${PKGVERSION}/tools/randn.A
lib/algae/${PKGVERSION}/tools/require.A
lib/algae/${PKGVERSION}/tools/reverse.A
lib/algae/${PKGVERSION}/tools/roots.A
lib/algae/${PKGVERSION}/tools/save.A
lib/algae/${PKGVERSION}/tools/select.A
lib/algae/${PKGVERSION}/tools/seq.A
lib/algae/${PKGVERSION}/tools/shape.A
lib/algae/${PKGVERSION}/tools/show.A
lib/algae/${PKGVERSION}/tools/sign.A
lib/algae/${PKGVERSION}/tools/solve.A
lib/algae/${PKGVERSION}/tools/sources.A
lib/algae/${PKGVERSION}/tools/spline.A
lib/algae/${PKGVERSION}/tools/src.A
lib/algae/${PKGVERSION}/tools/ssi.A
lib/algae/${PKGVERSION}/tools/string.A
lib/algae/${PKGVERSION}/tools/sum.A
lib/algae/${PKGVERSION}/tools/surprise.A
lib/algae/${PKGVERSION}/tools/tmp_file.A
lib/algae/${PKGVERSION}/tools/tools.algae
lib/algae/${PKGVERSION}/tools/tri.A
lib/algae/${PKGVERSION}/tools/umin.A
lib/algae/${PKGVERSION}/tools/unlabel.A
lib/algae/${PKGVERSION}/tools/what.A
lib/algae/${PKGVERSION}/tools/who.A
lib/algae/html
man/man1/algae.1
share/doc/algae/COPYING
share/doc/algae/LICENSE
share/doc/algae/algae.html
share/doc/algae/algae_1.html
share/doc/algae/algae_10.html
share/doc/algae/algae_11.html
share/doc/algae/algae_12.html
share/doc/algae/algae_13.html
share/doc/algae/algae_14.html
share/doc/algae/algae_15.html
share/doc/algae/algae_16.html
share/doc/algae/algae_2.html
share/doc/algae/algae_3.html
share/doc/algae/algae_4.html
share/doc/algae/algae_5.html
share/doc/algae/algae_6.html
share/doc/algae/algae_7.html
share/doc/algae/algae_8.html
share/doc/algae/algae_9.html
share/doc/algae/algae_abt.html
share/doc/algae/algae_toc.html
share/doc/algae/icon.gif
share/doc/algae/index.html
share/doc/algae/info.db
share/algae/html
share/algae/${PKGVERSION}/tools/all.A
share/algae/${PKGVERSION}/tools/arg.A
share/algae/${PKGVERSION}/tools/autosrc.A
share/algae/${PKGVERSION}/tools/brent.A
share/algae/${PKGVERSION}/tools/combine.A
share/algae/${PKGVERSION}/tools/diff.A
share/algae/${PKGVERSION}/tools/equal.A
share/algae/${PKGVERSION}/tools/eval.A
share/algae/${PKGVERSION}/tools/first.A
share/algae/${PKGVERSION}/tools/grep.A
share/algae/${PKGVERSION}/tools/help.A
share/algae/${PKGVERSION}/tools/ident.A
share/algae/${PKGVERSION}/tools/info.A
share/algae/${PKGVERSION}/tools/inv.A
share/algae/${PKGVERSION}/tools/label.A
share/algae/${PKGVERSION}/tools/last.A
share/algae/${PKGVERSION}/tools/load.A
share/algae/${PKGVERSION}/tools/log10.A
share/algae/${PKGVERSION}/tools/logspace.A
share/algae/${PKGVERSION}/tools/magic.A
share/algae/${PKGVERSION}/tools/max.A
share/algae/${PKGVERSION}/tools/merge.A
share/algae/${PKGVERSION}/tools/message.A
share/algae/${PKGVERSION}/tools/monte.A
share/algae/${PKGVERSION}/tools/mult.A
share/algae/${PKGVERSION}/tools/ode4.A
share/algae/${PKGVERSION}/tools/pick.A
share/algae/${PKGVERSION}/tools/plot.A
share/algae/${PKGVERSION}/tools/product.A
share/algae/${PKGVERSION}/tools/prof.A
share/algae/${PKGVERSION}/tools/provide.A
share/algae/${PKGVERSION}/tools/randn.A
share/algae/${PKGVERSION}/tools/require.A
share/algae/${PKGVERSION}/tools/reverse.A
share/algae/${PKGVERSION}/tools/roots.A
share/algae/${PKGVERSION}/tools/save.A
share/algae/${PKGVERSION}/tools/select.A
share/algae/${PKGVERSION}/tools/seq.A
share/algae/${PKGVERSION}/tools/shape.A
share/algae/${PKGVERSION}/tools/show.A
share/algae/${PKGVERSION}/tools/sign.A
share/algae/${PKGVERSION}/tools/solve.A
share/algae/${PKGVERSION}/tools/sources.A
share/algae/${PKGVERSION}/tools/spline.A
share/algae/${PKGVERSION}/tools/src.A
share/algae/${PKGVERSION}/tools/ssi.A
share/algae/${PKGVERSION}/tools/string.A
share/algae/${PKGVERSION}/tools/sum.A
share/algae/${PKGVERSION}/tools/surprise.A
share/algae/${PKGVERSION}/tools/tmp_file.A
share/algae/${PKGVERSION}/tools/umin.A
share/algae/${PKGVERSION}/tools/unlabel.A
share/algae/${PKGVERSION}/tools/what.A
share/algae/${PKGVERSION}/tools/who.A
share/algae/${PKGVERSION}/tools/tools.algae
share/doc/algae/algae.ps
share/doc/html/algae/COPYING
share/doc/html/algae/LICENSE
share/doc/html/algae/index.html
share/doc/html/algae/algae.html
share/doc/html/algae/algae_1.html
share/doc/html/algae/algae_10.html
share/doc/html/algae/algae_11.html
share/doc/html/algae/algae_12.html
share/doc/html/algae/algae_13.html
share/doc/html/algae/algae_14.html
share/doc/html/algae/algae_15.html
share/doc/html/algae/algae_16.html
share/doc/html/algae/algae_2.html
share/doc/html/algae/algae_3.html
share/doc/html/algae/algae_4.html
share/doc/html/algae/algae_5.html
share/doc/html/algae/algae_6.html
share/doc/html/algae/algae_7.html
share/doc/html/algae/algae_8.html
share/doc/html/algae/algae_9.html
share/doc/html/algae/algae_abt.html
share/doc/html/algae/algae_toc.html
share/doc/html/algae/icon.gif
share/doc/html/algae/info.db
@dirrm share/doc/html/algae
@dirrm share/doc/algae
@dirrm lib/algae/3.6.2/tools
@dirrm lib/algae/3.6.2
@dirrm share/algae/${PKGVERSION}/tools
@dirrm share/algae/${PKGVERSION}
@dirrm share/algae
@dirrm lib/algae/${PKGVERSION}
@dirrm lib/algae

View file

@ -1,9 +1,10 @@
$NetBSD: distinfo,v 1.1.1.1 2002/05/04 01:10:02 jtb Exp $
$NetBSD: distinfo,v 1.2 2003/04/29 22:15:27 jtb Exp $
SHA1 (algae-3.6.2.tar.gz) = 3a346630431316a04d407feaa79145e344c1bcf6
Size (algae-3.6.2.tar.gz) = 1335329 bytes
SHA1 (algae-4.1.2.tar.gz) = 44d8e903e9e5b71b424dc00c787c24f9a52981d3
Size (algae-4.1.2.tar.gz) = 1680969 bytes
SHA1 (patch-aa) = c9808abd82f27eb9b41358d8b962553446b473b8
SHA1 (patch-ab) = b6810598837288df7519a775c026a8283c273b1d
SHA1 (patch-ac) = 3f276084ea91fe9df8fa457744fada0f43f67359
SHA1 (patch-ab) = ef334a5af01ba292049c69b1a40e4bb29c953e1a
SHA1 (patch-ac) = 5f638e253bef7cb53b56d645d8ab9a2fe873e96f
SHA1 (patch-ad) = 07a2ef16a2b69530b99f2492ca97044dc1514ce9
SHA1 (patch-ae) = b215290525a6ac7d51d0c80f1bf009165ffb826a
SHA1 (patch-ae) = 2684611feb396d0b987278c4484707e5e7c0e64b
SHA1 (patch-af) = c70e919a048992058fa1305d7a2ab3435f38a026

View file

@ -1,8 +1,8 @@
$NetBSD: patch-ab,v 1.1.1.1 2002/05/04 01:10:04 jtb Exp $
$NetBSD: patch-ab,v 1.2 2003/04/29 22:15:28 jtb Exp $
--- configure.orig Wed Apr 17 02:47:02 2002
+++ configure Wed Apr 17 02:51:35 2002
@@ -597,7 +597,7 @@
--- configure.orig
+++ configure
@@ -608,7 +608,7 @@
LIBS="$LIBS -lm"
f77_compile='${F77-f77} $FFLAGS -c conftest.f 1>&5 2>&5'
f77_make='make F77="${F77-f77}" FFLAGS="$FFLAGS" -f conftest.mak conftest.o 1>&5 2>&5'
@ -11,7 +11,7 @@ $NetBSD: patch-ab,v 1.1.1.1 2002/05/04 01:10:04 jtb Exp $
# The next two don't include LDFLAGS, because some loser f77 compilers
# (like on hp) do their own thing with the -L option.
@@ -2344,24 +2344,24 @@
@@ -2349,24 +2349,24 @@
#---------------------------------------------------------------------
# Check whether --with-fortran-libs or --without-fortran-libs was given.
@ -33,28 +33,28 @@ $NetBSD: patch-ab,v 1.1.1.1 2002/05/04 01:10:04 jtb Exp $
- fortran_libs="" ;;
- esac
-fi
+# if test "${with_fortran_libs+set}" = set; then
+# withval="$with_fortran_libs"
+# fortran_libs="${withval}"
+# else
+# # The patterns are not necessarily exclusive, so their order is important.
+# case "$host" in
+# sparc-sun-sunos4* )
+# fortran_libs="/usr/lang/SC1.0" ;;
+# sparc-sun-solaris2* )
+# fortran_libs=`/bin/ls -d /opt/SUNWspro/SC* | head -1`/lib ;;
+# alpha*-*-osf* )
+# fortran_libs="/usr/lib" ;;
+# *-hp-hpux1* )
+# fortran_libs="/opt/fortran/lib" ;;
+# * )
+# fortran_libs="" ;;
+# esac
+# fi
+# if test "${with_fortran_libs+set}" = set; then
+# withval="$with_fortran_libs"
+# fortran_libs="${withval}"
+# else
+# # The patterns are not necessarily exclusive, so their order is important.
+# case "$host" in
+# sparc-sun-sunos4* )
+# fortran_libs="/usr/lang/SC1.0" ;;
+# sparc-sun-solaris2* )
+# fortran_libs=`/bin/ls -d /opt/SUNWspro/SC* | head -1`/lib ;;
+# alpha*-*-osf* )
+# fortran_libs="/usr/lib" ;;
+# *-hp-hpux1* )
+# fortran_libs="/opt/fortran/lib" ;;
+# * )
+# fortran_libs="" ;;
+# esac
+# fi
#---------------------------------------------------------------------
@@ -2369,23 +2369,23 @@
@@ -2374,23 +2374,23 @@
# are not necessarily exclusive, so their order is important.
#---------------------------------------------------------------------
@ -65,7 +65,7 @@ $NetBSD: patch-ab,v 1.1.1.1 2002/05/04 01:10:04 jtb Exp $
- *-hpux9* ) f77_lib_names="f U77" ;;
- *-hpux* ) f77_lib_names="F77 I77 IO77" ;;
- *-dec-ultrix* ) f77_lib_names="for i util ots I77 U77 F77" ;;
- mips-sgi-irix*) f77_lib_names="F77 I77 U77 isam fpe" ;;
- mips-sgi-irix*) f77_lib_names="F77 I77 U77 isam fpe ftn" ;;
- mips-* ) f77_lib_names="F77 I77 U77 isam" ;;
- *-solaris2* ) f77_lib_names="F77 M77 sunmath" ;;
- *-sunos4* ) f77_lib_names="F77 V77" ;;
@ -75,32 +75,32 @@ $NetBSD: patch-ab,v 1.1.1.1 2002/05/04 01:10:04 jtb Exp $
-esac
-f77_lib_names="$f77_lib_names g2c f2c"
-for f in $f77_lib_names; do reversed_names="$f $reversed_names"; done
+# case "$host" in
+# alpha* ) f77_lib_names="Futil ots for Ufor" ;;
+# *-aix* ) f77_lib_names="xlf xlf90" ;;
+# *-hpux1* ) f77_lib_names="cl U77" ;;
+# *-hpux9* ) f77_lib_names="f U77" ;;
+# *-hpux* ) f77_lib_names="F77 I77 IO77" ;;
+# *-dec-ultrix* ) f77_lib_names="for i util ots I77 U77 F77" ;;
+# mips-sgi-irix*) f77_lib_names="F77 I77 U77 isam fpe" ;;
+# mips-* ) f77_lib_names="F77 I77 U77 isam" ;;
+# *-solaris2* ) f77_lib_names="F77 M77 sunmath" ;;
+# *-sunos4* ) f77_lib_names="F77 V77" ;;
+# titan-* ) f77_lib_names="iF77 uF77 mF77" ;;
+# *-unicos* ) f77_lib_names="F77 I77 sci f" ;;
+# * ) f77_lib_names="F77 I77" ;;
+# esac
+# f77_lib_names="$f77_lib_names g2c f2c"
+# for f in $f77_lib_names; do reversed_names="$f $reversed_names"; done
+# case "$host" in
+# alpha* ) f77_lib_names="Futil ots for Ufor" ;;
+# *-aix* ) f77_lib_names="xlf xlf90" ;;
+# *-hpux1* ) f77_lib_names="cl U77" ;;
+# *-hpux9* ) f77_lib_names="f U77" ;;
+# *-hpux* ) f77_lib_names="F77 I77 IO77" ;;
+# *-dec-ultrix* ) f77_lib_names="for i util ots I77 U77 F77" ;;
+# mips-sgi-irix*) f77_lib_names="F77 I77 U77 isam fpe ftn" ;;
+# mips-* ) f77_lib_names="F77 I77 U77 isam" ;;
+# *-solaris2* ) f77_lib_names="F77 M77 sunmath" ;;
+# *-sunos4* ) f77_lib_names="F77 V77" ;;
+# titan-* ) f77_lib_names="iF77 uF77 mF77" ;;
+# *-unicos* ) f77_lib_names="F77 I77 sci f" ;;
+# * ) f77_lib_names="F77 I77" ;;
+# esac
+# f77_lib_names="$f77_lib_names g2c f2c"
+# for f in $f77_lib_names; do reversed_names="$f $reversed_names"; done
#---------------------------------------------------------------------
# On linux (and perhaps other GNU systems), the linker has trouble
@@ -2393,7 +2393,7 @@
@@ -2398,7 +2398,7 @@
#---------------------------------------------------------------------
cat >> confdefs.h <<\EOF
-#if linux
+#if defined (linux) || defined (__NetBSD__)
+#if linux || defined (__NetBSD__)
void MAIN__ (void) {abort();}
void etime_ (void) {abort();}
#endif
EOF

View file

@ -1,11 +1,11 @@
$NetBSD: patch-ac,v 1.1.1.1 2002/05/04 01:10:03 jtb Exp $
$NetBSD: patch-ac,v 1.2 2003/04/29 22:15:28 jtb Exp $
--- src/Makefile.in.orig Wed Apr 17 02:53:08 2002
+++ src/Makefile.in Wed Apr 17 02:53:32 2002
@@ -126,7 +126,7 @@
--- src/Makefile.in.orig
+++ src/Makefile.in
@@ -129,7 +129,7 @@
# <<<< This section is deleted in the "binary" distribution.
algae: $(OBJECTS)
algae: $(OBJECTS) ../superlu/libsuperlu.a ../arpack/libarpack.a
- $(CC) $(CFLAGS) $(LDFLAGS) -o algae $(OBJECTS) $(LIBS)
+ $(FC) $(CFLAGS) $(LDFLAGS) -o algae $(OBJECTS) $(LIBS)

View file

@ -1,12 +1,18 @@
$NetBSD: patch-ae,v 1.1.1.1 2002/05/04 01:10:03 jtb Exp $
$NetBSD: patch-ae,v 1.2 2003/04/29 22:15:28 jtb Exp $
--- Makefile.in.orig Wed Apr 17 03:57:06 2002
+++ Makefile.in Wed Apr 17 03:57:30 2002
@@ -78,13 +78,13 @@
--- Makefile.in.orig
+++ Makefile.in
@@ -78,18 +78,18 @@
libdir = $(prefix)/lib
# Directory in which to install the man page.
-mandir = $(datadir)/man/man$(manext)
+mandir = $(prefix)/man/man$(manext)
# The manpage extension
manext = 1
# Directory in which to install the Info files.
-infodir = $(prefix)/share/info
-infodir = $(datadir)/info
+infodir = $(prefix)/info
# Directory in which to install the algae tools.
@ -14,7 +20,16 @@ $NetBSD: patch-ae,v 1.1.1.1 2002/05/04 01:10:03 jtb Exp $
# Directory in which to install the algae html files.
-htmldir = $(datadir)/algae/$(VERSION_NUMBER)/html
+htmldir = $(prefix)/share/doc/algae
+htmldir = $(prefix)/share/doc/html/algae
# Directory and name of the startup file. This is compiled into the
# executable, so don't change either assignment if you have a binary
@@ -308,7 +308,7 @@
cd tools; \
$(MAKE) tooldir=$(tooldir) install
cd doc; \
- $(MAKE) mandir=$(mandir) datadir=$(datadir) \
+ $(MAKE) prefix=$(prefix) mandir=$(mandir) datadir=$(datadir) \
manext=$(manext) infodir=$(infodir) htmldir=$(htmldir) install
.PHONY: install

View file

@ -0,0 +1,13 @@
$NetBSD: patch-af,v 1.1 2003/04/29 22:15:28 jtb Exp $
--- doc/Makefile.in.orig
+++ doc/Makefile.in
@@ -181,6 +181,8 @@
for f in $$d/index.html $$d/algae*.html $$d/icon.gif $$d/info.db; do \
$(INSTALL_DATA) $$f $(htmldir); done
-rm -f $(datadir)/algae/html; ln -s $(htmldir) $(datadir)/algae/html
+ -mkdir -p $(prefix)/share/doc/algae
+ -$(INSTALL_DATA) algae.ps $(prefix)/share/doc/algae
-$(INSTALL_DATA) algae.1 $(mandir)/algae.$(manext)
uninstall: