mini-gmpで遊び中(プログラミング)

 GNU MPに含まれるmini-gmpを使って数値演算して遊んでいます。

 とりあえず、mpz_tを使ってゴリゴリ処理を書いてるわけですが、mpz_t等が構造体のアドレス渡しを実現するtypedefってのに気づかなくて、無駄に1段階多いアドレス渡しをしていたのは内緒です。

 目的の処理コードは一応作り終えたんですが、巨大数値でmpz_tを初期化する際の処理コストで悩み中。
 mpz_tに最初から巨大数値を設定する場合、mpz_init_set_str()で数値文字列を渡すしか無いんですかね?

 mpz_tを0xFBFBFBFB...といった値で初期化する際、"0xFBFBFBFB..."みたいな数値文字列を渡すのではなくて、0xFBFBFBFB...のバイナリデータが入ったメモリ空間を使いたいんですよね。
 まあ、バイナリデータの16進数文字列化なんて簡単なんだから、素直に数値文字列で初期化しろよと言われればそれまでなんですが…。

コメント