tcpp-linvectors.cpp - numeric - C++ library with numerical algorithms
(HTM) git clone git://src.adamsgaard.dk/numeric
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
tcpp-linvectors.cpp (941B)
---
1 #include <iostream>
2 #include <cstdlib>
3 #include <vector>
4
5 using std::vector;
6
7 void matrixMult(vector<double>& A, vector<double>& B, vector<double>& C, unsigned int N)
8 {
9 unsigned int i, j, k;
10 double sum;
11 for (i = 0; i<N; i++) {
12 for (j = 0; j<N; j++) {
13 sum = 0.0;
14 for (k = 0; k<N; k++)
15 sum += A[k*N+i] * B[j*N+k];
16 C[j*N+i] = sum;
17 }
18 }
19 }
20
21
22 int main(int argc, char* argv[])
23 {
24 using std::cout;
25
26 unsigned int N, i, j;
27
28 if (argc == 2) {
29 N = atoi(argv[1]);
30 } else {
31 std::cerr << "Sorry, I need matrix width as command line argument\n";
32 return 1;
33 }
34
35 vector<double> A(N*N);
36 vector<double> B(N*N);
37 vector<double> C(N*N);
38
39 for (i = 0; i<N; ++i) {
40 for (j = 0; j<N; ++j) {
41 A[j*N+i] = 2.0;
42 B[j*N+i] = (double) N*j + i;
43 }
44 }
45
46 matrixMult(A, B, C, N);
47
48 return 0;
49 }