Is this the library for you?

next - skip - up - start

Do you

  1. understand * to mean matrix multiply and not element by element multiply
  2. need matrix operators such as * and + defined as operators so you can write things like
        X  = A * (B + C);
    
  3. need a variety of types of matrices (but not sparse)
  4. need only one element type (float or double)
  5. work with matrices in the range 10 x 10 up to what can be stored in one block in memory
  6. tolerate a large package

Then maybe this is the right package for you.