みなさんプレゼンうまいな.
みなさんプレゼンうまいな.
『Newton 2018年1月号』
「宇宙で惑星はどう生まれるのか?」先日読んだ『系外惑星と太陽系』を補完する感じでよかった.
眠い
朝起きてご飯食べてまた寝る. 何度も寝てしまう.
BLS12ペアリング
ナイーブなmapToGi関数の実装など.
gccでstd::functionの例外をキャッチしたら無限ループ
例外を投げる関数が入ってるstd::functionをtry..catchの中で呼び出したら無限ループした. gcc(5.4, 7.2で再現)のバグかなあ. clang, VCでは発生しない.
#include <stdio.h> #include <functional> #include <stdexcept> void f() noexcept { puts("f"); } void g() { puts("g"); throw std::runtime_error("err"); } int main() { std::function<void()> a = f; a(); // *** try{ a(); } catch (...) { } std::function<void()> b = g; try { b(); } catch (...) { } } // g++ t.cpp -O2 -std=c++11 && ./a.outで無限に"g"を出力する
以下所感
***の関数呼び出しを消すとruntime_errorをcatchせずにabortした.
gcc-7で-std=c++17だと正常に動作した.
std::function<void()noexcept> a = f;とするとC++14までは無視されてC++17ではエラーになった.
C++17からはnoexceptも型の一部になるけど
std::functionは受け付けないんだ. そうなんだっけか.
『限界点』(ジェフリー ディーヴァー著 土屋晃訳)
久しぶりの翻訳物のサスペンス. 出だしで引き込まれたけどどうにも長くて何度も挫折した. 他のも読んでみようかな.
すごい発表だなあと感心ばかり. LTして, デモというのは動画にしておかないとうまくしゃべれないのだな. あまりに今更だけどようやく分かった.
wasm
ちょっと放置していたら最新版emccでbuildするとRuntime.allockStackなどが無いと言われた. 無くなったのかな. 調べるの面倒だし_malloc()/_free()に置き換える.
それよりもwasmのMIME型チェックが厳しくなったのか微妙にいろいろエラー. 本質でないところで時間食われるなあ.
4バイトしか使わないheap領域に_malloc(8)してたら値がおかしい. _malloc(24)まで増やしたら動くようになった. 何だろう. 落ち着いたらちゃんと調べる.
実装
こちらも長いこと時間がかかったけど, ようやく一山越えた. これからリファクタリングと細かい最適化.
やることはまだまだたくさんあるけど精神的に区切りをつけられる.
L2準同型
一つうれしい通達. 一安心.
『系外惑星と太陽系』(井田茂)
系外惑星というのは太陽以外の恒星のまわりを回ってる惑星のこと. 1995年に木星ぐらいの惑星が見つかってから大量に見つかるようになったらしい(一度見つかると, 実はあれもこれもそうだったという感じ).
極端に楕円軌道を描いたり, 恒星にとても近いところで高速に回る大きな惑星など今まで想像してなかった種類がたくさん見つかって今まで太陽系だけをもとに作られていた理論がことごとく合わなくなったそうな.
小学生の図鑑などでガスがグルグル回って集まって太陽系が出来たという説明があるけど, それを詳しくシミュレーションするとうまくいかないらしい. あれも分からない, これも分からないというのがずっと紹介されていてとても面白い.
月ができた理由も, 原始惑星が地球にぶつかってできた破片が集まってできたという巨大衝突説があったのを, 著者らがそれを否定しようとシミュレーションしたら逆にできることが分かったという. じゃあそれが正解かというと月の岩石と地球の物質の解析をしたら同一の成分と判明してシミュレーション結果と矛盾して困ってるとか.