В ojAlgo BasicMatrix - это то, что лучше всего соответствует SimpleMatrix EJML (я полагаю).
С PrimitiveDenseStore все не для вас, но вы можете сделать намного больше.Вот один из способов вычисления трассы:
double trace = denseStore.aggregateDiagonal(SUM);
Существует интерфейс MatrixDecomposition.RankRevealing, который реализуется рядом разложений матриц.Для создания SVD:
SingularValue<Double> svd = SingularValue.make(denseStore);
svd.decompose(denseStore);
svd.getRank();