error correcting codes library