optimize matrix multiplication for NDArrayDouble

this version is ~10x faster than NDArray and ~7x slower than vectorz