TODO
o Check if there is some non-threadsafe code in the fortran interface,
  i.e. array pre-alocation for the workspaces.
o Testing. 
o Error handling.
o More matrix types. (Sparse matrices)

Extensions:
o Symbolic manipulations - similar to C++s GINAC.
o Threaded and paralell execution. Use CUDA, SMP, or just threads?.
