this algorithm is of public domain and widely used nowadays