OSDN Git Service

LAMatrix.multiply was not working correctly when the first argument is a scalar....
authortoshinagata1964 <toshinagata1964@a2be9bc6-48de-4e38-9406-05402d4bc13c>
Fri, 13 Jan 2012 11:07:55 +0000 (11:07 +0000)
committertoshinagata1964 <toshinagata1964@a2be9bc6-48de-4e38-9406-05402d4bc13c>
Fri, 13 Jan 2012 11:07:55 +0000 (11:07 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/molby/trunk@170 a2be9bc6-48de-4e38-9406-05402d4bc13c

MolLib/Ruby_bind/ruby_types.c

index 30a4762..b214564 100644 (file)
@@ -1769,12 +1769,15 @@ s_LAMatrix_Multiply_Bang(int argc, VALUE *argv, VALUE self)
                                if (temp1Flag)
                                        LAMatrixReleaseTempMatrix(mp1);
                        } else {
-                               /*  mp1 = mp2  */
+                               /*  mp1 = mp2 * mul  */
+                               int i;
                                mptemp = LAMatrixAllocTempMatrix(mp2->row, mp2->column);
                                if (transposeFlag) 
                                        LAMatrixTranspose(mptemp, mp2);
                                else
                                        memmove(mptemp->data, mp2->data, sizeof(mp2->data[0]) * mp2->row * mp2->column);
+                               for (i = mp2->row * mp2->column - 1; i >= 0; i--)
+                                       mptemp->data[i] *= mul;
                        }
                        mp1 = mptemp;
                        temp1Flag = 1;