読者です 読者をやめる 読者になる 読者になる

FXgenのインストール(Ubuntu16.04 64bit)

開発環境 雑記

理研のソフトウェアFXgenをUbuntuにインストールした。
とはいえ、すでに実行ファイルが配布されているので特に難しくはない。

2つほど動的ライブラリが見つからないと怒られたので、下記で対応した。

cd /usr/lib/x86_64-linux-gnu/
sudo ln -s ./libnotify.so.4 libnotify.so.1

sudo apt-get install libjpeg62

解析のメインコードは自分で書きたくなるのが人情だけど、この手の便利な前処理のソフトは積極的に人に頼っていきたい。

静的ライブラリのコンパイルエラーの一例

開発環境 雑記

(自分の中では)大規模な数値解析用プログラムを作成しており、静的ライブラリを複数作ってコンパイルする必要にかられている。
下記のリンクの問題を知らず、数時間ずっと悩んでいた。リンクの順番にも依存関係あるのね。

静的ライブラリのリンク時にundefined referenceエラーが出る(gcc)

知識がいい加減すぎるので、ちゃんと下記を読んで学ぶ次第。

GNU Make 第3版

GNU Make 第3版

Rでよく使うfunctionまとめ

R studio

よく忘れるので、完全に自分のためのメモを作成する。

クリップボードからデータのコピー

x=read.delim("clipboard")

散布図のプロット

plot(x,xlim=c(),ylim=c(),col="black",pch=2)

ピアソンの相関係数の計算

cor.test(x$dataname,x$dataname2,method="p")

回帰直線の計算

lm1<-lm(dataname2~datanamae1,data=x)

回帰直線の作画

abline(lm1,lwd=1,col="blue")

図の上書き

par(new=T)

gitのcommitエディタをvimに変更

開発環境

情けないことにこれを調べずいつも戸惑っていた。
hikm.hatenablog.com
忘れないようリンク残します。

CentOS5.4 or 5.7へのgcc-4.8をインストール

開発環境

やむを得ない事情で2016年現在でもcentOS5を使用しないといけない場合、
gccのバージョンが古すぎるためにコードのコンパイルができなかったり、
ソフトウェアのインストールができなかったりということが多々ある。


対応方法だが、下記のサイトに従うことで簡単にインストールできた。
www.task-notes.com

devtoolset-3はエラーが出たため諦めたが、devtoolset-2については問題ない。
なお、上記サイトの最後に/etc/profile.d内に作成するファイル名は、
devtools.shとしてshell scriptであることを明示しないと自分の環境では動作しなかった。

とにかくこれでc++11が好き放題使用できる。

C++からfortran呼び出し方法 

開発環境 雑記

爆速かつ可読性のよいコード作成のため、表題の内容に手を出した。自分の専門性を見失っている気がする。


基本的には下記を参考にすればよい。
kazuki-nagasawa.hatenablog.com

で、C++の場合は、プロトタイプ宣言を下記のようにCでexternしてやる必要がある。
extern "C"{
extern void add_array_( int*, int * );
extern void multiple_matrix_( double *, int *, int * );
};
また、コンパイルのリンクに-lstdc++を設定する。これだけで使用可能。

配列は次元に関わらず先頭のアドレスを渡す。また、定数であっても必ずアドレス渡しを設定すること。

もちろん動的配列も上記同様で、vector型ならば&v[0]、boost/multiarray型ならばv.origin()でよい。

なお、Cとfortranでは配列のアドレスのとり方が違うので、そこは注意がいる。
d.hatena.ne.jp


行優先か、列優先かは面倒なところだが、それ以外は相当簡単。

vtkDataの全てがここにある

ライブラリ

開発元が大量にサンプルを出していることに今気づいた。

なぜおれはこんなにも無駄な時間を…

VTK Datasets - KitwarePublic