Adler-32
最適化されていない、C言語でのシンプルな実装は RFC 1950 の末尾に記載されていて、以下の通り。
これの、最適化実装例を以下に示す。
効率化のためにいくつかトリックが用いられている。
最も重要な点は、総和の一時格納変数として32ビット整数が使われている点で、これによって modulo 65521 を行う回数を減らしている。modulo 65521 は総和がオーバーフローする前に行う必要がある。
マジックナンバー 5552 は b がオーバフローしない最大の反復(加算)回数である。