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 }