One of its major advantages is the wide range of operations that mix the different types.
Vectors and matrices are internally represented as arrays of ordinary types (int and double). These arrays are one-dimensional for vectors and two-dimensional for matrices.
This representation has certainly performance reasons, and the data can be accessed by and easly passed to external routines.