The algorithm used here is mostly lifted from the perl module Algorithm::Diff (version 1.06) by Ned Konz, which is available at: http://www.perl.com/CPAN/authors/id/N/NE/NEDKONZ/Algorithm-Diff-1.06.zip
More ideas are taken from: http://www.ics.uci.edu/~eppstein/161/960229.html
Some ideas (and a bit of code) are taken from analyze.c, of GNU diffutils-2.7, which can be found at: ftp://gnudist.gnu.org/pub/gnu/diffutils/diffutils-2.7.tar.gz
Some ideas (subdivision by NCHUNKS > 2, and some optimizations) are from Geoffrey T. Dairiki <dairiki@dairiki.org>. The original PHP version of this code was written by him, and is used/adapted with his permission.