vtkで分子を描画

vtk7.0.0が出たという記事を見た時、といってももう1年も前なのだと今気付いたが、分子のためのクラスがあることを知った。で、以前vtkで分子を表示するために複数個の球体を浮かべようと悪戦苦闘した記憶が思い起こされ、こういうものがあるなら使ってみたいと思った。

VTK 7.0.0 | The Kitware Blog

続きを読む

スコープ内の時間計測

以前、関数の時間計測のために返り値をラップする構造体を作っていたが、これはRAII的に考えて

Logger logger;
/*... codes ...*/
{
    stop_watch<std::chrono::milliseconds> sw("block-name", logger);
    /* do_something */
}

とスコープの先頭で宣言すればスコープ内でかかった時間のログが取れるようにできる。

続きを読む

bobthefishでstring関係のエラーが出た

状況:fishbobthefishを使うとエラーメッセージが出てテーマどころではない

原因:bobthefishfish-2.2にはないコマンドstringを使っているから

解決策:fish-shell公式サイトにあるaptレポジトリから最新版を持ってくる。

もちろん.debをダウンロードしてインストールしたり、ソースコードをダウンロードしてビルドしてもよい。

なんかこの記事のアクセス数多かったので一応最初にtl;drを追加しておいた。(2017/10/10)


普段、 fish shell なるシェルを愛用している。Linuxに触れて1年半ほどだが、最初は普通にbashを使っており、1年経つか経たないかの頃、ちょうど別のshellのことを考え始めた頃にどこかでfish shellを知って入れてみたのだったと思う。どこで見たのかは忘れてしまった。

続きを読む

関数の時間計測

C++threadライブラリを使っている。いかんせん並列化の経験が少ないのでちゃんとthreadが立ち上がっているのかとか、並列に処理されているのかとかがよくわからないし、ツールもよく知らない。VTuneのことは知っているが個人で持っているようなものでもない。なので、最も愚直な方法、単に時間を計測して出力して調べることにした。

しかし、出力するといっても、文字の出力はatomicではない。しかし、関数内でmutexlockしたりする場合、そのmutexのスコープはどうなるのか。グローバルか? だとすればあまり嬉しいことにはならない。実際には最終的に出力するべき内容が全て出力できればいいのだから、関数から時刻も一緒に返して受け取ってから単一のスレッドで出力を行えばよいことになる。というわけで以下のようなコードを書いた。

続きを読む

コンテナ内の一括計算

を、たまにコードを見たりしている後輩が自分のためのコードの中でよくやっている。要するにこういうことだ。

std::vector<double> v1;
std::vector<double> v2;

// do something...

assert(v1.size() == v2.size());
std::vector<double> v3(v1.size());
for(std::size_t i=0; i<v1.size(); ++i)
    v3.at(i) = v1.at(i) + v2.at(i);
続きを読む

CUDAの練習1: mandelbrot集合

を正月休みにしていた。CUDAに関しては雑な知識しかなかったので、『CUDA BY EXAMPLE』なる書籍を読んだ。『CUDA C プロフェッショナルプログラミング』なる本が名著であると勧められてはいたが、まずモチベーションを殺さないために短めのものを一読してから重い本で知識をアップデートするやり方に慣れていたので、手元にあった薄い方の本を手にとった次第だ。

CUDAの文法や基礎知識は解説できるほど理解していないので、本や何やで確認してほしい。

続きを読む