憂鬱な午後のひととき

1月11日_

新人歓迎ランチ会

社長就任歓迎会も同時に行う. どうもよろしくお願いします. 平均年齢が結構下がった.

以前やった忘年会もそうだけど夜はいろいろ面倒, 遅くてしんどいのでお昼にするのはとても楽でいい.

1月10日_

mcl-wasm

travis-ciでテストを実行するようにした. カバレッジなどもおいおい追加したい.

すぐ捨てるメモリ確保はmod.Runtime.stackSave(), stackAlloc()を使っていたのだが, _malloc/_freeの方が何かと便利なのでそちらに全て移行した.

Commonクラスに必要なメソッドを作ったらコードが大分すっきりした. blsやsheにも適用していく.

1月9日_

standard.js

Node.jsのstandardにしたがったコーディングスタイルにしてみた. --fixオプションで簡単なものは自動修正してくれる.

1月8日_

serialize

mclのいろいろなクラスのserialize/deserializeをくくりだしてCRTPで実装した. コンパイルエラーなどが読みにくくなるのであんまし多用はしたくないのだけどC++じゃしかたないよな.

1月7日_

『独習C#新版』(山田祥寛)

一通り読み終えた. 私は去年mclやblsのC#バインディングを作るときに適当に調べながら初めてC#を触ったので抜けが多い. それでこういう本を頭から読むと基本的な概要が頭に入ってよい. まあ私はC#初心者だけどプログラミング初心者ではないのでまどろっこしく感じるところはあるけど(しかたない).

他の言語で慣れている部分は「Note」や「エキスパートに訊く」などを拾い読みするとC#特有の部分が分かってよい. あと, こういった本であまり見たことが無いのだが各章末に問題がついている. C#の文法の間違い探しは面白い.

個人的には当初の目的であったポインタやStructLayoutまわりの解説が無かったのは残念(まあこれもしかたない).

普段C++を使ってるのでオーバーフローをチェックするcheck, uncheckやパーシャルクラスpartialなどの機能はうらやましい.

typoやいくつか気になった点など:

1月6日_

Xbyak 5.60 for Icelake

気が早いがIce lake用のAVX-512命令(?)に対応した.

今までで一番命令長が長かったvaeskeygenassistを超える17文字のvgf2p8affineinvqb. その名の通り(?)バイト単位での有限体F28の逆元を求める命令.

CPUのマニュアルにGalois Fieldなんて言葉が出てくるとはなあ.

1月5日_

Re: Xbyak

vpopcnt, vpdpbusd, vpshufbitqmbなど追加.

あまりに首が痛くて気がついてなかったが頭痛もあるようだ. 参ったな.

1月4日_

Xbyak

developブランチにvpclmulqdqのAVX-512対応とvcompressb, vcompresswの追加.

首まだ痛い. もう1カ月経ってしまった.

1月3日_

事前計算テーブルの読み込み

準同型暗号の復号時に使うDLPのテーブルを事前に計算しておき, それを読めるようにする. 8MBのテーブルを持てばJavaScriptでも32bit整数は10数msecで, 手元のAndroid端末でも1秒未満で復号できるようになった.

1月2日_

G1, G2をGT経由で復号

Lifted-ElGamal暗号のG1, G2での復号はハッシュテーブルの検索時にアフィン座標にしないといけないのでGTでの検索より時間がかかる. ただG1, G2からGTにするにはペアリングをとらないといけないので初期コストが大きい. 簡単なベンチマークをとったところ数十~数百回程度テーブル引きをするなら一度GTに変換した方が速くなるとわかった.

小さいときはG1, G2のままでよいので選択できるようなAPIを追加しないと.

1月1日_

明けましておめでとうございます

今年の初ジョギングは慎重に始めた.


御意見は光成滋生<herumi@nifty.com>までお願いします