Magellan Linux

Annotation of /trunk/numeric/patches/numeric-24.2-dotblas.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 361 - (hide annotations) (download)
Tue Sep 25 20:32:31 2007 UTC (16 years, 7 months ago) by niro
File size: 3940 byte(s)
-ver bump to 24.2-r1

1 niro 361 --- Numeric-24.2/Packages/dotblas/dotblas/_dotblas.c.orig 2005-04-07 06:15:47.000000000 +0100
2     +++ Numeric-24.2/Packages/dotblas/dotblas/_dotblas.c 2007-05-25 17:39:30.382025500 +0100
3     @@ -52,7 +52,7 @@
4     static PyObject *dotblas_matrixproduct(PyObject *dummy, PyObject *args) {
5     PyObject *op1, *op2;
6     PyArrayObject *ap1, *ap2, *ret;
7     - int i, j, l, lda, ldb, matchDim = -1, otherDim = -1;
8     + int i, j, l, lda, ldb, ldc, matchDim = -1, otherDim = -1;
9     int typenum;
10     int dimensions[MAX_DIMS], nd;
11     static const float oneF[2] = {1.0, 0.0};
12     @@ -248,33 +248,34 @@
13     /* Matrix matrix multiplication -- Level 3 BLAS */
14     lda = (ap1->dimensions[1] > 1 ? ap1->dimensions[1] : 1);
15     ldb = (ap2->dimensions[1] > 1 ? ap2->dimensions[1] : 1);
16     + ldc = (ret->dimensions[1] > 1 ? ret->dimensions[1] : 1);
17     if (typenum == PyArray_DOUBLE) {
18     cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
19     ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
20     1.0, (double *)ap1->data, lda,
21     (double *)ap2->data, ldb,
22     - 0.0, (double *)ret->data, ldb);
23     + 0.0, (double *)ret->data, ldc);
24     }
25     else if (typenum == PyArray_FLOAT) {
26     cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
27     ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
28     1.0, (float *)ap1->data, lda,
29     (float *)ap2->data, ldb,
30     - 0.0, (float *)ret->data, ldb);
31     + 0.0, (float *)ret->data, ldc);
32     }
33     else if (typenum == PyArray_CDOUBLE) {
34     cblas_zgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
35     ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
36     oneD, (double *)ap1->data, lda,
37     (double *)ap2->data, ldb,
38     - zeroD, (double *)ret->data, ldb);
39     + zeroD, (double *)ret->data, ldc);
40     }
41     else if (typenum == PyArray_CFLOAT) {
42     cblas_cgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
43     ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
44     oneF, (float *)ap1->data, lda,
45     (float *)ap2->data, ldb,
46     - zeroF, (float *)ret->data, ldb);
47     + zeroF, (float *)ret->data, ldc);
48     }
49     }
50     else {
51     @@ -334,7 +335,7 @@
52     static PyObject *dotblas_innerproduct(PyObject *dummy, PyObject *args) {
53     PyObject *op1, *op2;
54     PyArrayObject *ap1, *ap2, *ret;
55     - int i, j, l, lda, ldb;
56     + int i, j, l, lda, ldb, ldc;
57     int typenum;
58     int dimensions[MAX_DIMS], nd;
59     static const float oneF[2] = {1.0, 0.0};
60     @@ -525,33 +526,34 @@
61     /* Matrix matrix multiplication -- Level 3 BLAS */
62     lda = (ap1->dimensions[1] > 1 ? ap1->dimensions[1] : 1);
63     ldb = (ap2->dimensions[1] > 1 ? ap2->dimensions[1] : 1);
64     + ldc = (ret->dimensions[1] > 1 ? ret->dimensions[1] : 1);
65     if (typenum == PyArray_DOUBLE) {
66     cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
67     ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
68     1.0, (double *)ap1->data, lda,
69     (double *)ap2->data, ldb,
70     - 0.0, (double *)ret->data, ldb);
71     + 0.0, (double *)ret->data, ldc);
72     }
73     else if (typenum == PyArray_FLOAT) {
74     cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
75     ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
76     1.0, (float *)ap1->data, lda,
77     (float *)ap2->data, ldb,
78     - 0.0, (float *)ret->data, ldb);
79     + 0.0, (float *)ret->data, ldc);
80     }
81     else if (typenum == PyArray_CDOUBLE) {
82     cblas_zgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
83     ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
84     oneD, (double *)ap1->data, lda,
85     (double *)ap2->data, ldb,
86     - zeroD, (double *)ret->data, ldb);
87     + zeroD, (double *)ret->data, ldc);
88     }
89     else if (typenum == PyArray_CFLOAT) {
90     cblas_cgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
91     ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
92     oneF, (float *)ap1->data, lda,
93     (float *)ap2->data, ldb,
94     - zeroF, (float *)ret->data, ldb);
95     + zeroF, (float *)ret->data, ldc);
96     }
97     }
98     else {