updated linalg.h