TJ,
Timing of matrix multiply for large matrices should mostly depend on the
BLAS library speed.
We added dynamic blas loading and also have an un-optimized fall-back
blas library. So, it is possible that you are using the fall-back blas
in 4.0. Another thing, the first time you do matrix multiplication (or
any other operation that involves blas) it's going to take longer -
FreeMat uses lazy function resolution on the first call.
You can control which blas library is used by using blaslib command. The
available blas libraries are listed in blas.ini file. Under windows we
ship generic blas and ATLAS blas optimized for Pentium III. Under Linux
we only have reference blas. Library that is marked with "*" is the one
that is used.
You can try building ATLAS blas for your CPU, adding it to blas.ini and
loading it for the test.
Hope this helps. Please post your results - good or bad.
Eugene