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