Matlab/Octave vs Armadillo round 2

This result is now much encouraging. Thanks to Mark Tall.
Testing environment:

$ uname -a
Linux *** 2.6.38-8-server #42-Ubuntu SMP Mon Apr 11 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
$ g++ --version
g++ (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ octave --version
GNU Octave, version 3.2.4
Copyright (C) 2009 John W. Eaton and others.

The test was conducted when the linux CPU was fully loaded by some other programs.
Matlab/Octave script

A=randn(5000); B=randn(5000); tic; C=AB;toc

C++ program:

#include 
#include 

using namespace std;
using namespace arma;

int main(int argc, char** argv)
  {
  wall_clock timer;
//  timer.tic();
  mat A = randu(5000,5000);
  mat B = randu(5000,5000);

  //cout << A*trans(B) << endl;
  timer.tic();
  mat C=solve(A,B);
  cout<<"Elapsed time is "<

Results:
Armadillo: Elapsed time is 77.7776 seconds.
Matlab: Elapsed time is 88.972536 seconds.
Octave: Elapsed time is 79.2488 seconds.
Conclusions:
1. Armadillos is the fastest for matrix inversion.
2. Random number generation in Armadillos can slow down the entire process.
3. The template programing is a good thing, at least shifting some CPU time from running to compiling.

The end.