class LUDecomposition implements AutoCloseable {

    public Matrix getL() {
        if ((cachedL == null) && !singular) {
            final int m = pivot.size();

            cachedL = like(matrix);
            cachedL.assign(0.0);

            for (int i = 0; i < m; ++i) {
                for (int j = 0; j < i; ++j)
                    cachedL.setX(i, j, lu.getX(i, j));

                cachedL.setX(i, i, 1.0);
            }
        }

        return cachedL;
    }

    public  LUDecomposition(Matrix matrix);
    public  LUDecomposition(Matrix matrix, double singularityThreshold);

}