韓国寒い。最高気温が-2℃とか。基本的には厚着で耐えられるけど顔が厳しいね。
日本語も英語も通じないことが多く、日本に観光に来る韓国人の気持ちがわかったかもしれない。
韓国の人はみんなキムチが大好きなのか、頼んでなくてもお通し感覚(料金はかからない)で数種類のキムチが出てくる。食べきれないのでやめてほしい。今のところサンプル数2+1 (キムチバーがあった)。
木曜日の夜に帰宅予定。
韓国寒い。最高気温が-2℃とか。基本的には厚着で耐えられるけど顔が厳しいね。
日本語も英語も通じないことが多く、日本に観光に来る韓国人の気持ちがわかったかもしれない。
韓国の人はみんなキムチが大好きなのか、頼んでなくてもお通し感覚(料金はかからない)で数種類のキムチが出てくる。食べきれないのでやめてほしい。今のところサンプル数2+1 (キムチバーがあった)。
木曜日の夜に帰宅予定。
搭乗開始を待ちながら更新。
今年は珍しく年末年始を実家で過ごす。調布に来てから初めてかもしれない。
NISTによって選定された軽量暗号アルゴリズムAsconの仕様の話を誰もしていないのは何故なのか。AESやChacha20の暗号化/復号プロセスの記事は大量に出てくるのにね。
オランダから帰ってきてた。アムステルダム楽しかったぜ。公共交通機関(バス、トラム、電車)が全部市営で、クレジットカード決済で完結するのが良かった。乗車賃が表示されないから、来月の支払金額がどうなることやら・・。
今日はビッカメでスーパーマリオRPGとJoyコンを買ってきた。コントローラ高いな。スティックがニュートラルでも上下に入力が入っちゃうので仕方ない。
明日はオープンキャンパス。
体感では半年ぶりの更新なんだけど2ヶ月ぶりらしい。
来週の月曜から金曜までオランダ、しかも一人で。ちゃんと電車・トラム・バスに乗れるか心配。
GNU MPの最新版ver6.3が7月末に公開されてた。ver6.2.1が公開されたのが2020年11月なので約2年半ぶり。
Release Notes(6.2.xと6.3との違い)にコメントしていきますね。
A possible overflow of type int is avoided for mpz_cmp on huge operands.
6.2.1のRelease Notesで同じ話をしていた気がする。バカでかい数値同士を比較すると判定が逆になるんだよね、たしか。 ykm11.hatenablog.com
A possible error condition when a malformed file is read with mpz_inp_raw is now correctly handled.
内容から察するに、mpz_class, mpz_tインスタンスに代入する値をファイルから読み込める関数があって、そのファイルに異常な値(具体的にはわかんない)があったら上手いこと処理するように変更したのかな。mpz_inp_rawの実装を見ない限りはわからん。後で見る。 mpz/inp_raw.c に実装がある。
New public function mpz_prevprime, companion of the existing mpz_nextprime.
与えた素数の次の素数を返す関数は前からあったんだけど、一個前の素数を返す関数が新たに追加された。実装はmpz/nextprime.cにある。
nextPrimeはSagemathにもあったはずだけど、prevPrimeはどうだっけな。
New documented pointer types mpz_ptr, mpz_srcptr, and similar for other GMP types. Refer to the manual for full list and suggested usage. These types have been present in gmp.h at least since GMP-4.0, but previously not advertised to users.
documented pointerってなんだ?造語か?_ptr, _srcptrって前からなかったっけ。「mpz_tが__mpz_str[1]のtypedef」みたいなのあったよね。あんまり覚えてないや。
Support for 64-bit Arm under Macos.
これ今回の大きな変更点では?6.2.1以前では、GMPのビルドはできるけど使用する関数によってはエラーが発生する可能性あり、みたいな感じだった。M1 Macではreserve registerになってるレジスタ(ユーザは使っちゃダメなレジスタ)を使用するアセンブリを記述してる関数があるから〜、みたいなのを前のrelease notesで見た。
Support for the loongarch64 CPU family.
見ての通り。loongarch64 CPUがわかんね。
Support for building with LTO, link-time optimisations.
LTOを使ったビルドが可能になった?GNU MPのビルドが高速化されたのかな。
New special code for base = 2 in mpz_powm reduces the average time for the functions that test primality.
「2を底とするmpz_powm(2, x, p) = 2x mod p によって、素数判定の平均時間が改善された。」うーん、意味わかんね。
2x mod pの計算が素数判定に使われるって・・コト!? すみませんミラーラビン等の判定法のアルゴリズムがパッと出てきません。x=p-1のフェルマー判定法なんて当てにならんしな。
Speedup for the function mpz_nextprime on large operands.
でっっっっっかい数を与えたときのnextPrimeが高速化された。素数かどうかのチェックが速くなったのか?「奇数に+2ずつしていく作業が、でっっっっっっかい数のときは+4ずつにできる」みたいなトリックがあるなら面白いよぬ。prevPrimeの追加に伴って改善したのかな。
Speedup for multiplications (some sizes only) thanks to new internal functions to compute small negacyclic products.
あるサイズ(sizeof mp_limb_t * N)の乗算が速くなった。negacyclic productsはわからないが、検索するとNegacyclic convolutionがヒットする。
Fast and Error-Free Negacyclic Integer Convolution using Extended Fourier Transform
FastなTFHEって言ってるから関係ありそう。
Special assembly code for IBM z13 and later "mainframe" CPUs, resulting in a huge speedup.
IBM z13って大規模な計算を行うマシン?めっちゃ速くなったらしいで。
Improved assembly for several 64-bit x86 CPUs, Risc-V, 64-bit Arm.
汎用的なCPU向けのアセンブリをいじったらしい。どの程度改善されたとか、具体的な数値はどこかに転がってないのかな。
おしまい!