豊福です。

  bignum.c の
    #define BIGDN(x) (((x)<0) ? ~((~(x))>>BITSPERDIG) : (x)>>BITSPERDIG)
は
    ((x)>>BITSPERDIG)
と結果が違うときあるんでしたっけ。

  それと unsigned long 変数に BIGDN しているところ
がありますが ((x)<0) のチェックがもったいなくない
ですか。オプティマイズされる?
---
                        豊福
                        toyofuku / juice.or.jp