fixed algorithm