C
cygwinのlapackで連立方程式をとく。 まず、準備として、setup.exeからlapackっぽいのをいれておく。 とりあえずのプログラム: http://auewe.hatenablog.com/entry/2013/05/04/075717を参考にさせていただきました。 http://www.jsces.org/Issue/Journal/pd…
RとCの連携の基本は、 Windows上でのRとCの連携 http://d.hatena.ne.jp/arupaka-_-arupaka/20131020/1382252302 を参考に。 具体的な手順 (1)まず、準備。mingwを利用して、cygwin上でcygwinに依存しないgslを作る。 (Rはcygwinのライブラリを参照できないの…
(1)まず、gslのソースをもってくる http://ftp.jaist.ac.jp/pub/GNU/gsl/ (2)次にコンパイル ./configure --host=x86_64-w64-mingw32 --prefix=/cygdrive/c/gsl CC=x86_64-w64-mingw32-gcc.exe CXX=i686-pc-mingw32-g++.exe make make install configure の…
http://www.okada.jp.org/RWiki/?R%A4%AB%A4%E9%C2%BE%B8%C0%B8%EC%CD%F8%CD%D1を参考に (1)Mingw を導入 (2) PATHを通す. システム→システムの詳細設定→環境変数 PATH ... (3)Rtoolsを導入 http://essrc.hyogo-u.ac.jp/cran/ をダウンロード (4)ダウンロー…
gslでBスプラインでデータの平滑化. Bスプイラインは自然スプラインより計算が安定。 Bスプライン(拡張スプライン)同じところにノットを重ねることで 不連続を表現できる、3次だと、1回重ねると2回微分、2回重ねると1回微分、 3回重ねると関数そのも…
例:GSLで最適化 http://www.gnu.org/software/gsl/manual/html_node/Multimin-Examples.html#Multimin-Examples と http://www.gnu.org/software/gsl/manual/html_node/Providing-a-function-to-minimize.html#Providing-a-function-to-minimize を参考に。…
gslで線形方程式、連立一次方程式をとく。 #include<stdio.h> #include<gsl/gsl_linalg.h> void solve(double** m,double* v,int len){ using namespace std; int s; double *mb; int k=0; mb=(double*)malloc(sizeof(double)*len*len); for(int i=0;i</gsl/gsl_linalg.h></stdio.h>
メルセンヌツイスタ64bit版の導入ソースの入手 wget http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt19937-64.tgz gzip -d mt19937-64.tgz tar -xvf mt19937-64.tar コピー cd /mt19937-64 cp mt64.h /usr/include コンパイル gcc -c -O3 mt19937-64.c …
cpp_test.scala import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.NativeLibrary; object cpp_test{ def main(args: Array[String]): Unit={ var a=Array(1.0,2.0,3.0); println("Input"); a.foreach{println} val lib=NativeLib…
scalaからcの関数をよび内積を計算loop.c #include<stdio.h> #include<stdlib.h> #include<math.h> #include"loop.h" int loop2(double* v1, double* v2,int n){ double tmp=0; int i; for(i=0;i</math.h></stdlib.h></stdio.h>
はじめてC言語 .hファイルの意味を理解した! cのヘッダーファイルの意味 http://www.geocities.jp/ky_webid/ProgrammingPlacePlus/c/023.html ポイントは, 各ファイルで関数宣言をしないと関数を使用できない →これが.hファイル実態は,.cファイルで定義す…
ネットワークのランダム化1 #include<stdio.h> #include<math.h> #include<set> #include<map> #include<vector> #include<sstream> #include<fstream> #include<iostream> #include<string.h> #include<stdlib.h> #include<mt.h> int f_label(int i){ return (int)log2((double)i); } int main(){ using namespace std; FILE *fp; std:…</mt.h></stdlib.h></string.h></iostream></fstream></sstream></vector></map></set></math.h></stdio.h>
gslで離散一様分布乱数発生。 http://www.gnu.org/software/gsl/manual/html_node/Sampling-from-a-random-number-generator.html
gslを用いたC言語のランダムシャッフル。 http://www.gnu.org/software/gsl/manual/html_node/Shuffling-and-Sampling.html #include<stdio.h> #include<gsl/gsl_rng.h> #include<gsl/gsl_randist.h> int main(){ const gsl_rng_type *T; int a[42]; int i; gsl_rng *r; T=gsl_rng_default; r=gsl_rng_al</gsl/gsl_randist.h></gsl/gsl_rng.h></stdio.h>…
GSLを使った一般の確率分布に離散分布の乱数発生(一般離散分布)。これで片付けないとメモリーがいっぱいになる void gsl_ran_discrete_free (gsl_ran_discrete_t * t); #include<stdio.h> #include<gsl/gsl_rng.h> #include<gsl/gsl_randist.h> int main(void){ double p[3]; int i; const gsl_rng_typ</gsl/gsl_randist.h></gsl/gsl_rng.h></stdio.h>…
http://mine-weblog.blogspot.com/2009/05/gsl.html http://www.gnu.org/software/gsl/manual/html_node/Random-Number-Distribution-Examples.html #include <stdio.h> #include <gsl/gsl_rng.h> #include <gsl/gsl_randist.h> int main(){ const gsl_rng_type *T; //乱数生成器のタイプ gsl_rng *r; gs</gsl/gsl_randist.h></gsl/gsl_rng.h></stdio.h>…
boostの導入は前の記事。 adjacency_list クラスは隣接行列をグラフ。Graph型として名付け直す。 色々なコンストラクタがある。 http://boost.cppll.jp/HEAD/libs/graph/doc/adjacency_list.html#sec:iterator-constructor 参考: パラメータは5つ。 EdgeLis…
boost はC言語のライブラリ。インストール: cygwinで使う場合は、setup.exe (cygwinのインストール時に 使うソフト)からインストールできる。 テストプログラム (test.cpp) #include <iostream> #include <boost/format.hpp> using namespace std; int main(){ cout << boost::format(</boost/format.hpp></iostream>…
gcc -O2 test.c -lgsl -lgslcbla s -lm
octaveで疎行列の連立一次方程式を解く。 octaveは無料で使える行列計算システム。 疎行列のセットデータ: 行列A (matA.mat) (7×7) 3列目は行列の値。それ以外は0. 1 2 4 1 3 3 5 2 5 7 5 2 2 4 2 1 4 10 3 1 1 4 6 8 6 7 1 ベクトルb (vecb.mat) (7×1)…
gslを使うとC言語などでベクトル計算、積分計算、行列計算、特殊計算、最適化などができる。 フリーのライブラリ。 cygwinでgccとgslをインストールしているとして、 の状況を書く。 参考1: http://www.db.is.kyushu-u.ac.jp/rinkou/cygwin/gslfuncs.html …
awkをC言語に翻訳して早く実行 コンパイルとインストール $wget http://awka.sourceforge.net/awka-0.7.5.tar.gz $gzip -d awka-0.7.5.tar.gz $tar -xvf awka-0.7.5.tar $cd awka-0.7.5 $./configure $make $make test 使い方 まずこれを作る awk2c.sh #!/bi…
GSLはフリーの科学技術ライブラリ。 数値計算で必要なものはほとんどある。 以前はrubyで使用したが今度はC言語で利用する。サンプルプログラム #include <stdio.h> #include <gsl/gsl_sf_bessel.h> int main(void){ double x=5.0; double y=gsl_sf_bessel_J0(x); printf("J0(%g)=%e",x,y);</gsl/gsl_sf_bessel.h></stdio.h>…
GSLはフリーの科学技術ライブラリ。 数値計算で必要なものはほとんどある。 以前はrubyで使用したが今度はC言語で利用する。http://www.econ.umn.edu/~steve/gsl/ダウンロード $ wget ftp://ftp.gnu.org/gnu/gsl/gsl-1.9.tar.gz 解凍と展開 tar -zxvf gsl-1.…
openmpiで並列化。 一番最初に書くべきプログラム。 自分のランクを出力する プログラム。> 1)コンパイル mpicc test.c -o test.out2)実行 3ノード並列で実行 mpirun -np 3 test.out5ノード並列で実行 mpirun -np 5 test.outNノード並列で実行 mpirun -np N…
makeはファイルを作成するコマンド。 第一歩 http://www.c.csce.kyushu-u.ac.jp/~seiichirou/wiki/index.php?Makefile%A4%CE%BD%F1%A4%AD%CA%FD make -pで暗黙のルールを 確認できて非常にわかりやすくなる。http://d.hatena.ne.jp/cou929_la/20090929/12542…