public RandomProjection(Matrix projection, String... columns) {
        super(projection, "RP", columns);
    }
@Test
    public void testRandomProjection() {
        System.out.println("regular random projection");
        RandomProjection instance = RandomProjection.of(128, 40);

        Matrix p = instance.projection;
        Matrix t = p.aat();

        System.out.println(p.toString(true));
        for (int i = 0; i < 40; i++) {
            assertEquals(1.0, t.get(i, i), 1E-10);
            for (int j = 0; j < 40; j++) {
                if (i != j) {
                    assertEquals(0.0, t.get(i, j), 1E-10);
                }
            }
        }
    }