orth(somematrix) встроен в MATLAB, но, по-видимому, недоступен в библиотеке hmatrix на Haskell.
orth(somematrix)
import Numeric.LinearAlgebra orth :: Field a => Matrix a -> [Vector a] orth m = toColumns $ fst $ qr m
или без очков
orth = toColumns . fst . qr
Википедия имеет объяснение.
Возможно, это то, что вам нужно:
orth m = toColumns u where (u,_,_) = compactSVD m
https://github.com/AlbertoRuiz/hmatrix/issues/10#issuecomment-4077403