Projection type algorithm