aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/numeric/files/numeric-24.2-dotblas.patch')
-rw-r--r--dev-python/numeric/files/numeric-24.2-dotblas.patch107
1 files changed, 107 insertions, 0 deletions
diff --git a/dev-python/numeric/files/numeric-24.2-dotblas.patch b/dev-python/numeric/files/numeric-24.2-dotblas.patch
new file mode 100644
index 000000000..70dcd927c
--- /dev/null
+++ b/dev-python/numeric/files/numeric-24.2-dotblas.patch
@@ -0,0 +1,107 @@
+--- Numeric-24.2/Packages/dotblas/dotblas/_dotblas.c.orig 2005-04-07 06:15:47.000000000 +0100
++++ Numeric-24.2/Packages/dotblas/dotblas/_dotblas.c 2007-05-25 17:39:30.382025500 +0100
+@@ -52,7 +52,7 @@
+ static PyObject *dotblas_matrixproduct(PyObject *dummy, PyObject *args) {
+ PyObject *op1, *op2;
+ PyArrayObject *ap1, *ap2, *ret;
+- int i, j, l, lda, ldb, matchDim = -1, otherDim = -1;
++ int i, j, l, lda, ldb, ldc, matchDim = -1, otherDim = -1;
+ int typenum;
+ int dimensions[MAX_DIMS], nd;
+ static const float oneF[2] = {1.0, 0.0};
+@@ -248,33 +248,34 @@
+ /* Matrix matrix multiplication -- Level 3 BLAS */
+ lda = (ap1->dimensions[1] > 1 ? ap1->dimensions[1] : 1);
+ ldb = (ap2->dimensions[1] > 1 ? ap2->dimensions[1] : 1);
++ ldc = (ret->dimensions[1] > 1 ? ret->dimensions[1] : 1);
+ if (typenum == PyArray_DOUBLE) {
+ cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
+ ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
+ 1.0, (double *)ap1->data, lda,
+ (double *)ap2->data, ldb,
+- 0.0, (double *)ret->data, ldb);
++ 0.0, (double *)ret->data, ldc);
+ }
+ else if (typenum == PyArray_FLOAT) {
+ cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
+ ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
+ 1.0, (float *)ap1->data, lda,
+ (float *)ap2->data, ldb,
+- 0.0, (float *)ret->data, ldb);
++ 0.0, (float *)ret->data, ldc);
+ }
+ else if (typenum == PyArray_CDOUBLE) {
+ cblas_zgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
+ ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
+ oneD, (double *)ap1->data, lda,
+ (double *)ap2->data, ldb,
+- zeroD, (double *)ret->data, ldb);
++ zeroD, (double *)ret->data, ldc);
+ }
+ else if (typenum == PyArray_CFLOAT) {
+ cblas_cgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
+ ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
+ oneF, (float *)ap1->data, lda,
+ (float *)ap2->data, ldb,
+- zeroF, (float *)ret->data, ldb);
++ zeroF, (float *)ret->data, ldc);
+ }
+ }
+ else {
+@@ -334,7 +335,7 @@
+ static PyObject *dotblas_innerproduct(PyObject *dummy, PyObject *args) {
+ PyObject *op1, *op2;
+ PyArrayObject *ap1, *ap2, *ret;
+- int i, j, l, lda, ldb;
++ int i, j, l, lda, ldb, ldc;
+ int typenum;
+ int dimensions[MAX_DIMS], nd;
+ static const float oneF[2] = {1.0, 0.0};
+@@ -525,33 +526,34 @@
+ /* Matrix matrix multiplication -- Level 3 BLAS */
+ lda = (ap1->dimensions[1] > 1 ? ap1->dimensions[1] : 1);
+ ldb = (ap2->dimensions[1] > 1 ? ap2->dimensions[1] : 1);
++ ldc = (ret->dimensions[1] > 1 ? ret->dimensions[1] : 1);
+ if (typenum == PyArray_DOUBLE) {
+ cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
+ ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
+ 1.0, (double *)ap1->data, lda,
+ (double *)ap2->data, ldb,
+- 0.0, (double *)ret->data, ldb);
++ 0.0, (double *)ret->data, ldc);
+ }
+ else if (typenum == PyArray_FLOAT) {
+ cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
+ ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
+ 1.0, (float *)ap1->data, lda,
+ (float *)ap2->data, ldb,
+- 0.0, (float *)ret->data, ldb);
++ 0.0, (float *)ret->data, ldc);
+ }
+ else if (typenum == PyArray_CDOUBLE) {
+ cblas_zgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
+ ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
+ oneD, (double *)ap1->data, lda,
+ (double *)ap2->data, ldb,
+- zeroD, (double *)ret->data, ldb);
++ zeroD, (double *)ret->data, ldc);
+ }
+ else if (typenum == PyArray_CFLOAT) {
+ cblas_cgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
+ ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
+ oneF, (float *)ap1->data, lda,
+ (float *)ap2->data, ldb,
+- zeroF, (float *)ret->data, ldb);
++ zeroF, (float *)ret->data, ldc);
+ }
+ }
+ else {
+@@ -703,7 +705,7 @@
+ /* Add some symbolic constants to the module */
+ d = PyModule_GetDict(m);
+
+- s = PyString_FromString("$Id: _dotblas.c,v 1.3 2005/04/06 22:40:23 dmcooke Exp $");
++ s = PyString_FromString("$Id: _dotblas.c,v 1.4 2005/11/29 18:54:12 teoliphant Exp $");
+ PyDict_SetItemString(d, "__version__", s);
+ Py_DECREF(s);
+