Bühlmann algorithm