余白の書きなぐり

aueweのブログ

C言語からLAPACKを呼んで逆行列を求める(LU分解する)

数値解析の授業で逆行列は求めちゃダメって言われたけど、気にしない気にしない。 実行列の逆行列を求める Fortranの DGETRF でLU分解した後、 DGETRI で逆行列を求める。 /* * hoge.c * SIZE*SIZE型の実行列の逆行列を計算 * 元の行列は * (2 3 ) * (1 0.5)…

Linux Mint にVim7.4をインストール

正式なaptリポジトリのVimはVer7.3で残念な感じだけど、ちょっと頑張ればVer7.4を入れることができる。 $ sudo add-apt-repository ppa:fcwu-tw/ppa $ sudo apt-get update $ sudo apt-get install vim これでインストールできる。簡単だった。バージョンの…

仮想環境のLinux MintにVmware Tools入れる時にkernel headersが見つからない問題

VMware Player にゲストOSとして Linux Mint を入れて、そこに VMware Tools をインストールするという話。 VMware Toolsを入れれば、仮想環境Windowを全画面にできるし、クリップボードが ホストOSとイケイケになるし、ディレクトリを共有できるし、かなり…

Python3の計算結果をGnuplotでグラフ化(subprocess Popenを使う)

ディスプレイにグラフを表示させる pythonからgnuplotを使う上で、これが最も簡単な方法。 from subprocess import call call( ["gnuplot", "-e", "plot sin(x); pause -1"]) qを押せばグラフは消える。 グラフをファイルに保存 gnuplotの設定は長くなるので…

シェルスクリプトからPython3に移行する人のために ~標準入出力・ファイル管理編~

環境変数の取得 # Python import os home = os.environ.get('HOME', "") カレントディレクトリのパスを取得 # Bash ... もともと $PWDに入っているが current_path=`pwd` # Python import os current_path = os.getcwd() # スクリプトのあるディレクトリの絶…

Python3の文字列について。%記法とformat()記法の対応関係

Python3では '%d'とか'%+5.3lf'のような記法は推奨されず、廃止される。 代わりにformat()を使う必要がある。 このような変更がなされた理由については、 Python 3.0 Hacks第6回 Pythonicな文字列フォーマットforamat()メソッド が分かりやすい。 高尚な理由…

Pythonで並列計算(Poolとmapを使う)

pythonで並列計算をしたいとき、Poolとmapを使うのが簡単だった。 C言語で並列計算して配列に格納する のと同じような感覚。 mapを使うのがカッコイイ。Haskellみたい。 簡単な例 twiceFuncという名の関数 f(x) = 2x に argList = [1,2,3] の各要素を並列に…

OpenMPで多重forループを並列化して配列に格納する方法

注意点 forループを並列化して配列に値を代入したい。 forループが一重の時は簡単だけど、 多重forループの場合には 内側から #pragma omp parralel forしないとバグる。 以下の正解とまちがいを見れば、よくわかる。 正解 // 内外共に #pragma omp する int…

Linux Mint はデフォルトで 7z 圧縮解凍できた

Linux Mintにはインストール時に7zrというコマンドが入ってて、 デフォルトで7z形式の圧縮と解凍が行える。 tar.gzとか使ってる場合じゃない。 圧縮 ディレクトリを圧縮してhoge.7zにしよう。普通の方法は $ 7zr a hoge.7z 圧縮したいディレクトリ名 サイズ…

LinuxMintにPyclewnを導入してgdbをVimで動かす

この記事はPyclewnのインストール記事です。 Windowsへのインストールは色々難しくて断念した。以前のバージョンは簡単にインストールできたみたいだけど、最近はうまくいかない。なのでLinuxMintに導入した。 VimShellでiexe gdbするのもいいけど、breakpoi…

OpenMPIで乱数を使う

普通の(並列計算でない)プログラムで乱数を使用する際に、 プログラムを実行するたびに異なる系列で擬似乱数を発生させるには seed に現在時刻を使用するのが一般的だ。 要するに srand((unsigned) time(NULL)); とすればよい。詳細は以下のページにまとまっ…

OpenMPI で配列をまとめる(2)

前回 とほとんど同じだけど、備忘録として。 やりたいこと プロセス数 allrank を 4 として、 各 myrank の配列 my_array[3] myrank == 0 ... my_array[3] = {0,4,8}; // 前回は{0,1,2}だった myrank == 1 ... my_array[3] = {1,5,9}; // 前回は{3,4,5}だっ…

OpenMPI で配列をまとめる

やりたいこと プロセス数 allrank を 4 として、 各 myrank の配列 my_array[3] myrank == 0 ... my_array[3] = {0,1,2}; myrank == 1 ... my_array[3] = {3,4,5}; myrank == 2 ... my_array[3] = {6,7,8}; myrank == 3 ... my_array[3] = {9,10,11}; をまと…

高速フーリエ変換ライブラリ fftw のインストールと使用法

インストール Linux(Ubuntu)への導入 インストール $ sudo apt-get install libfftw3-3 libfftw3-dev libfftw3-doc コンパイル方法 $ gcc hoge.c -lm -lfftw3 Windowsへの導入 fftwのwindows版インストーラのページから 32-bit version: fftw-3.3.3-dll32.zi…

UbuntuとMintにOpenMPIを導入

次の記事-OpenMPIの使い方について OpenMPIとOpenMPは別物だよ!!! どちらも並列処理のためのフレームワークだけど、 なんでわざわざ混乱を招く名前をつけるのかね。 両者の違いは 「MPIでは各プロセスが占有のメモリ領域を扱うのに対し、 OpenMPではメモ…

大学のレポート問題演習用のLaTeXプリアンブル

\subsectionが問1,問2 になり、 \subsubsectionが(1),(2) になる。 問2の3番目の式には (2.3) のようなタグが付く。 画像の挿入方法には色々宗派があるみたいなので、今回はあえて設定しなかった。 本名や学生証番号はタイトルの下で \flushright 等の環境を…

C言語で並列処理(OpenMP)

Windows(minGW), Mac, Linux のgcc(version 4.2以降)で動作確認済。 新しいライブラリ等をインストールすることなく、デフォルトのままのgccでコンパイルが通った。 こんなに手軽に並列計算できるなんてすごい。 ソースコード // hoge.c // 並列処理のプログ…

OsakaフォントをインストールしてGvimで使う

Vim

Osakaフォントのインストール方法 まずWindowsでOsakaフォントを使おう!に置いてあるOsaka.zipをダウンロードして解凍する。Osaka.ttcが得られる。 Windows 普通に Osaka.ttc をダブルクリックしてインストールする Mac OSX 普通に Osaka.ttc をダブルクリ…

ファイル名にupdateが含まれると管理者権限が要求される

fooupdatebar.exeなるファイルを作ってクリックすると怒られる。 このせいでバグが取れなかった。Windows はゴミ

シェルスクリプトに Gnuplot のコマンドを埋め込む方法

シェルスクリプトから数値計算プログラムを走らせて、 結果を Gnuplot するような場合に、 わざわざ表示用の Gnuplot スクリプトを別ファイルに準備するのが面倒くさい。 すべての処理を単一のシェルスクリプトファイルで済ませてしまいたい。そんな時のため…

Maximaで一般相対論

フリーな数式処理ソフト Maxima を使用して ロバートソン・ウォーカー計量 からアインシュタインテンソルを計算したメモ。 腕力で式変形するのは大変すぎる。 まず最初に ctensor を load して csetup() し、計量を作る。 (%i1) load(ctensor); (%o1) C:/PRO…

難しい、困難、ややこしい

難しい 困難 ややこしい これら使い分けについて、僕と世間とのあいだに齟齬がある(ような気がする)。 この違いについて説明し、世間を教育してやろう。 難しい 脳味噌を長期間じっくり使って、質の良い何かを創作する感じ。 例) 囲碁のように整然として完成…

Gnuplot で作成したグラフを Inkscape で読み込む

Gnuplot には xtics やら nokey やら、グラフのタイトルやら位置の変更やら、 とにかくグラフの表示に関するありとあらゆるオプションが組み込まれているものの、 覚えるのも調べるのも面倒臭いし、頑張ってオプションを設定しても 思い通りにいかない場合が…

IrfanView で eps 画像を見る設定

Windowsには IrfanView という使いやすい画像ビューアがある。 大抵どんな画像でも開けるものの、LaTeX などで使用する eps 画像は デフォルトでのままだと開けない。オプションで gsdll32.dll を指定すれば開けるようになる。以下はその具体的な説明。 あら…

Gnuplot で複数のグラフを並べる方法

バンド図 なんかを描く際に、 いくつかのグラフを横に並べて描画したくなる。 あるいは数種類の量を比較するなら、縦に並べたくなるだろう。 そういう時には Gnuplotのコマンド set multiplot を使用して複数枚のグラフを並べれば良いのだが、 いくつかハマ…

.vimrcに書くべきでないVimの設定項目 (Vim Advent Calendar 2012, 165日目)

Vim

Vim Advent Calendar の165日目の記事です。 前回の記事はthincaさんの同一視されるキーに注意でした。 Vimの設定ファイルをGitHub等のリモートリポジトリで管理すれば、新しい環境にVimをインストールする際手間が省けます。 便利な反面「リモートで管理で…

Gvimのフォント設定に関するまとめ

Vim

たまに新しい環境を作るとき、いつも忘れてググるハメになるのでメモ。 あちこちにハマりどころがある。 既に良質の解説がたくさんあるので、URLを貼ってまとめておこう。 フォントの設定の手順 Gvimを立ちあげて、コマンドモードで set guifont=* してフォ…

CraftLaunchの設定ファイルを任意の場所からインポートする方法

Windowsには CraftLaunch という便利なキーボードランチャがある。 設定ファイルの config.py をいじれば色々楽しめる。 自分用の設定が詰まった config.py を他のソフトの設定ファイルと一緒に git 管理したい。 自分用の設定ファイルを任意の場所からイン…

LaTeXにスタイルファイルを追加する方法

LaTeXは CTANのcontrib からスタイルファイルをダウンロードして \usepackage することで 機能を拡張できる。 今回は例として mhchem.sty を追加する場合を考える。 このスタイルファイルを導入すれば化学式が簡単に書けるようになる。 \ce{H2O} % $H_2O$ な…

MakefileのTips

環境依存性の克服 なにかと GitHub や Bitbucket のリモートリポジトリを使うことが多いので、 環境に依存しない Makefile を作っておけば git clone した時に便利。 とりあえずはWindows環境とUNIX環境で共通のMakefileを使用したい。 環境毎に分岐するには…