summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--math/spooles/Makefile2
-rw-r--r--math/spooles/files/patch-I2Ohash-large-input99
-rw-r--r--math/spooles/pkg-descr2
3 files changed, 101 insertions, 2 deletions
diff --git a/math/spooles/Makefile b/math/spooles/Makefile
index fd8716d915a0..9145aa1965da 100644
--- a/math/spooles/Makefile
+++ b/math/spooles/Makefile
@@ -7,7 +7,7 @@
PORTNAME= spooles
PORTVERSION= 2.2
-PORTREVISION= 9
+PORTREVISION= 10
CATEGORIES= math
MASTER_SITES= http://www.netlib.org/linalg/spooles/
.ifdef WITH_MPI
diff --git a/math/spooles/files/patch-I2Ohash-large-input b/math/spooles/files/patch-I2Ohash-large-input
new file mode 100644
index 000000000000..90192e047cef
--- /dev/null
+++ b/math/spooles/files/patch-I2Ohash-large-input
@@ -0,0 +1,99 @@
+$FreeBSD$
+--- I2Ohash/src/util.c.orig 2013-03-04 21:21:54.000000000 -0500
++++ I2Ohash/src/util.c 2012-10-06 08:28:37.000000000 -0500
+@@ -39,8 +39,9 @@
+ */
+ loc1 = (key1 + 1) % hashtable->nlist ;
+ loc2 = (key2 + 1) % hashtable->nlist ;
+-long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
+-loc =(int) loc3;
++/*loc = (loc1*loc2) % hashtable->nlist ;*/
++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
++loc=(int)loc3;
+ #if MYDEBUG > 0
+ fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ;
+ fflush(stdout) ;
+@@ -51,7 +52,7 @@
+ --------------------------------------------------------
+ */
+ #if MYDEBUG > 0
+-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ;
++fprintf(stdout, "\n hashtable->freeI2OP = %p", hashtable->freeI2OP) ;
+ fflush(stdout) ;
+ #endif
+ if ( (i2op = hashtable->freeI2OP) == NULL ) {
+@@ -159,10 +160,11 @@
+ #endif
+ loc1 = (key1 + 1) % hashtable->nlist ;
+ loc2 = (key2 + 1) % hashtable->nlist ;
+-long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
+-loc =(int) loc3;
++/*loc = (loc1*loc2) % hashtable->nlist ;*/
++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
++loc=(int)loc3;
+ #if MYDEBUG > 0
+-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ;
++fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ;
+ fflush(stdout) ;
+ #endif
+ /*
+@@ -231,7 +233,9 @@
+ }
+ loc1 = (key1 + 1) % hashtable->nlist ;
+ loc2 = (key2 + 1) % hashtable->nlist ;
+-loc = (loc1*loc2) % hashtable->nlist ;
++/*loc = (loc1*loc2) % hashtable->nlist ;*/
++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
++loc=(int)loc3;
+ /*
+ ---------------------------------------------------
+ find the location of the first (key1,key2,*) triple
+--- I2Ohash/src/util.c.orig 2013-03-04 21:21:54.000000000 -0500
++++ I2Ohash/src/util.c 2012-10-06 08:28:37.000000000 -0500
+@@ -39,8 +39,9 @@
+ */
+ loc1 = (key1 + 1) % hashtable->nlist ;
+ loc2 = (key2 + 1) % hashtable->nlist ;
+-long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
+-loc =(int) loc3;
++/*loc = (loc1*loc2) % hashtable->nlist ;*/
++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
++loc=(int)loc3;
+ #if MYDEBUG > 0
+ fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ;
+ fflush(stdout) ;
+@@ -51,7 +52,7 @@
+ --------------------------------------------------------
+ */
+ #if MYDEBUG > 0
+-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ;
++fprintf(stdout, "\n hashtable->freeI2OP = %p", hashtable->freeI2OP) ;
+ fflush(stdout) ;
+ #endif
+ if ( (i2op = hashtable->freeI2OP) == NULL ) {
+@@ -159,10 +160,11 @@
+ #endif
+ loc1 = (key1 + 1) % hashtable->nlist ;
+ loc2 = (key2 + 1) % hashtable->nlist ;
+-long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
+-loc =(int) loc3;
++/*loc = (loc1*loc2) % hashtable->nlist ;*/
++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
++loc=(int)loc3;
+ #if MYDEBUG > 0
+-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ;
++fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ;
+ fflush(stdout) ;
+ #endif
+ /*
+@@ -231,7 +233,9 @@
+ }
+ loc1 = (key1 + 1) % hashtable->nlist ;
+ loc2 = (key2 + 1) % hashtable->nlist ;
+-loc = (loc1*loc2) % hashtable->nlist ;
++/*loc = (loc1*loc2) % hashtable->nlist ;*/
++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ;
++loc=(int)loc3;
+ /*
+ ---------------------------------------------------
+ find the location of the first (key1,key2,*) triple
diff --git a/math/spooles/pkg-descr b/math/spooles/pkg-descr
index 978111b1ca5f..1f5ea0d03e46 100644
--- a/math/spooles/pkg-descr
+++ b/math/spooles/pkg-descr
@@ -17,4 +17,4 @@
methods. The preconditioner is a drop tolerance factorization,
with or without pivoting for stability.
-WWW: http://www.spooles.org/
+WWW: http://www.netlib.org/linalg/spooles/spooles.2.2.html