3 WvMatrix::WvMatrix(const int _m
, const int _n
, const int *_data
)
12 data
= new int[m
* n
];
15 memcpy(data
, _data
, m
* n
* sizeof(int));
17 for (int i
= 0; i
< m
* n
; i
++)
28 WvMatrix::WvMatrix(const WvMatrix
& mx
)
31 data
= new int[m
* n
];
32 memcpy(data
, mx
.data
, m
* n
* sizeof(int));
36 WvMatrix
& WvMatrix::operator= (const WvMatrix
& mx
)
39 data
= new int[m
* n
];
43 memcpy(data
, mx
.data
, m
* n
* sizeof(int));
49 WvMatrix
WvMatrix::operator+ (const WvMatrix
&rhs
) const
53 if (m
!= rhs
.m
|| n
!= rhs
.n
)
56 for (int i
= 0; i
< m
* n
; i
++)
57 res
.data
[i
] += data
[i
];
63 WvMatrix
WvMatrix::operator* (const WvMatrix
&rhs
) const
65 WvMatrix
res(m
, rhs
.n
);
72 for (int i
= 0; i
< res
.m
; i
++)
73 for (int j
= 0; j
< res
.n
; j
++)
76 for (int k
= 0; k
< n
; k
++)
77 c
+= (*this)(i
, k
) * rhs(k
, j
);
85 WvString
WvMatrix::printable()
87 WvString
res("{%s", data
[0]);
88 for (int i
= 1; i
< m
* n
; i
++)
89 res
.append(", %s", data
[i
]);