2018-01-01から1年間の記事一覧

メモリ上での配置に関して、多次元配列と構造体の配列の比較

最近少しアライメントのことを考えているが、古めの書籍だと多次元配列のメモリ配置の説明が必ずと言っていいほどされていて、メモリアクセスが律速になる場合(殆どのケースだ)には次元の順序に十分注意せよと書かれている。 キャッシュ効率のことなどを考…

zip_iteratorとstd::iter_swap

C++

少し頑張って解決しようとした問題が実は解決できないことに気づいてしまったお話 TL;DR: std::iter_swapをフック可能にしてほしい。 背景 配列が二つあったとして、その片方をキーとして使って、両方の配列を同時にsortしたいと言う気持ちがある。 v1 = {4,…

satysfi.vimを作った

というわけで中身を読もうとやっていっていたわけだが、SATySFiにはVim向けのシンタックスハイライターがない。当たり前だ。新興の言語なのだから。だが読むに当たってシンタックスハイライトがされないというのは非常にしんどい。なので最低限のハイライト…

SATySFiのインストール

SATySFiは静的型検査の恩恵を受けられる組版処理システムである。 github.com Ubuntu16.04を使っているのだが、SATySFiを使ってみようとして少し困ったので。ちなみにそれまでのOCaml経験はHello, Worldのみ、つまりコンパイラを入れたことがある以外はゼロ…

基本ベクトルの場合の最適化(3次元幾何)

C++

数カ月触れていなかった自分が書いたコードを見た所、驚くべきものを発見した。 3次元空間内をある方向に向けてある距離だけ動いたオブジェクトが衝突するかどうかを判定し、また衝突するときはどれだけ動いたら衝突するか計算するコードがあった。 このよう…

コンパイル時ルックアップテーブル生成について

C++

(今更感) 目的 非負整数値を取る関数があるとする。そしてそれを実行中に非常に多くの回数呼ぶ(数百兆回とか)、ということは、科学技術計算ではよく見られる光景である。 整数値を取るので、恐らく何度もピッタリ同じ値を計算することになるだろう。 す…

記事のライセンスについて

ローカルに翻訳記事が溜まってきている。ブログやチュートリアルの翻訳が多いが、専門書の要約や一章まるまるの翻訳などもある。英語のまま読む方が一読する場合の効率はよいが、読んでいる途中でこんがらがる可能性があるときや見返す可能性が高い場合に翻…

エラー時はメッセージを返すが、成功しても返すものがない関数

C++

今、Cライブラリをラップしているのだが、副作用を起こす関数の戻り値をどうするか考えている。 前提:全体のエラーハンドリング 前提として、エラーハンドリングにはここまで例外送出でなくboost::optionalとexpectedを用いている。 基本的に、value_or()で…