@Test
public void rank1() {

  Matrix x = new DenseMatrix(3, 3);
  x.viewRow(0).assign(new double[]{1, 2, 3});
  x.viewRow(1).assign(new double[]{2, 4, 6});
  x.viewRow(2).assign(new double[]{3, 6, 9});
  CholeskyDecomposition rr = new CholeskyDecomposition(x.transpose().times(x), false);
  assertEquals(0, new DenseVector(new double[]{3.741657, 7.483315, 11.22497}).aggregate(rr.getL().transpose().viewRow(0), Functions.PLUS, new DoubleDoubleFunction() {
    @Override
    public double apply(double arg1, double arg2) {
      return Math.abs(arg1) - Math.abs(arg2);
    }
  }), 1.0e-5);
  assertEquals(0, rr.getL().viewPart(0, 3, 1, 2).aggregate(Functions.PLUS, Functions.ABS), 1.0e-9);
}