Index: trunk/psLib/src/dataManip/psMatrix.c
===================================================================
--- trunk/psLib/src/dataManip/psMatrix.c	(revision 4144)
+++ trunk/psLib/src/dataManip/psMatrix.c	(revision 4160)
@@ -21,6 +21,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.30 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-08 02:38:02 $
+ *  @version $Revision: 1.31 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-06-08 22:28:07 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -33,4 +33,5 @@
 #include <gsl/gsl_matrix.h>
 #include <gsl/gsl_linalg.h>
+#include <gsl/gsl_blas.h>
 #include <gsl/gsl_permutation.h>
 #include <gsl/gsl_eigen.h>
@@ -138,9 +139,13 @@
     numRows = inImage->numRows;
     numCols = inImage->numCols;
-    for(i=0; i<numRows; i++) {
-        for(j=0; j<numCols; j++) {
-            if(inImage->type.type == PS_TYPE_F32) {
-                outGslMatrix->data[i*numCols+j] = (psF64)inImage->data.F32[i][j];
-            } else {
+    if(inImage->type.type == PS_TYPE_F32) {
+        for(i=0; i<numRows; i++) {
+            for(j=0; j<numCols; j++) {
+                outGslMatrix->data[i*numCols+j] = inImage->data.F32[i][j];
+            }
+        }
+    } else {
+        for(i=0; i<numRows; i++) {
+            for(j=0; j<numCols; j++) {
                 outGslMatrix->data[i*numCols+j] = inImage->data.F64[i][j];
             }
@@ -160,9 +165,13 @@
     numRows = outImage->numRows;
     numCols = outImage->numCols;
-    for(i=0; i<numRows; i++) {
-        for(j=0; j<numCols; j++) {
-            if(outImage->type.type == PS_TYPE_F32) {
-                outImage->data.F32[i][j] = (psF32)inGslMatrix->data[i*numCols+j];
-            } else {
+    if(outImage->type.type == PS_TYPE_F32) {
+        for(i=0; i<numRows; i++) {
+            for(j=0; j<numCols; j++) {
+                outImage->data.F32[i][j] = inGslMatrix->data[i*numCols+j];
+            }
+        }
+    } else {
+        for(i=0; i<numRows; i++) {
+            for(j=0; j<numCols; j++) {
                 outImage->data.F64[i][j] = inGslMatrix->data[i*numCols+j];
             }
@@ -401,5 +410,5 @@
     }
 
-    outImage = psImageRecycle(outImage, inImage1->numCols, inImage2->numRows, inImage2->type.type);
+    outImage = psImageRecycle(outImage, inImage2->numCols, inImage1->numRows, inImage2->type.type);
 
     // Initialize GSL data
@@ -411,7 +420,6 @@
 
     // Perform multiplication
+    // gsl_blas_dgemm(CblasNoTrans, CblasNoTrans, 1.0, m1, m2, 0.0, m3);
     gsl_linalg_matmult(m1, m2, m3);
-    // N.B., gsl_blas_sgemm/dgemm could have been used instead, e.g.,
-    // gsl_blas_dgemm(CblasNoTrans, CblasNoTrans, 1.0, m1, m2, m3)
 
     // Copy GSL matrix data to psImage data
