Explorar o código

* fixed Matrix * Vector (patch by Bartosz Bogacz, mantis #11199)

git-svn-id: trunk@10811 -
Jonas Maebe %!s(int64=17) %!d(string=hai) anos
pai
achega
ef0290a797
Modificáronse 1 ficheiros con 12 adicións e 12 borrados
  1. 12 12
      rtl/inc/mmatimp.inc

+ 12 - 12
rtl/inc/mmatimp.inc

@@ -733,23 +733,23 @@ operator * (const m:objectname;const v:vectorcompanion) result:vectorcompanion;
 
 
 begin
 begin
     result.data[0]:=m.data[0,0]*v.data[0]
     result.data[0]:=m.data[0,0]*v.data[0]
-                   +m.data[1,0]*v.data[1]
-   {$if matsize>=3}+m.data[2,0]*v.data[2]{$endif}
-   {$if matsize>=4}+m.data[3,0]*v.data[3]{$endif};
-    result.data[1]:=m.data[0,1]*v.data[0]
+                   +m.data[0,1]*v.data[1]
+   {$if matsize>=3}+m.data[0,2]*v.data[2]{$endif}
+   {$if matsize>=4}+m.data[0,3]*v.data[3]{$endif};
+    result.data[1]:=m.data[1,0]*v.data[0]
                    +m.data[1,1]*v.data[1]
                    +m.data[1,1]*v.data[1]
-   {$if matsize>=3}+m.data[2,1]*v.data[2]{$endif}
-   {$if matsize>=4}+m.data[3,1]*v.data[3]{$endif};
+   {$if matsize>=3}+m.data[1,2]*v.data[2]{$endif}
+   {$if matsize>=4}+m.data[1,3]*v.data[3]{$endif};
 {$if matsize>=3}
 {$if matsize>=3}
-    result.data[2]:=m.data[0,2]*v.data[0]
-                   +m.data[1,2]*v.data[1]
+    result.data[2]:=m.data[2,0]*v.data[0]
+                   +m.data[2,1]*v.data[1]
                    +m.data[2,2]*v.data[2]
                    +m.data[2,2]*v.data[2]
-   {$if matsize>=4}+m.data[3,2]*v.data[3]{$endif};
+   {$if matsize>=4}+m.data[2,3]*v.data[3]{$endif};
 {$endif}
 {$endif}
 {$if matsize>=4}
 {$if matsize>=4}
-    result.data[3]:=m.data[0,3]*v.data[0]
-                   +m.data[1,3]*v.data[1]
-                   +m.data[2,3]*v.data[2]
+    result.data[3]:=m.data[3,0]*v.data[0]
+                   +m.data[3,1]*v.data[1]
+                   +m.data[3,2]*v.data[2]
                    +m.data[3,3]*v.data[3];
                    +m.data[3,3]*v.data[3];
 {$endif}
 {$endif}
 end;
 end;