初めてのGSL-導入・試運転
こんばんはゼノンです。
本日2本目ですね。
今回はC言語のライブラリの一つ、
GSL - GNU Scientific Library
を導入してみました。
先のOpenGLとやることは似ていたんですが、
バージョンの違う情報が多かったので少し戸惑いました。
http://gonzaburou.cocolog-nifty.com/blog/2006/11/gslvisual_cc_8716.html
上記2つのサイトと、ググった内容で頑張ってます。
私の環境は、
Windows7、Visual studio 2010 Expressです。
コンパイラもVC++です。
それでは導入について書いて行きます。
http://service-spi.web.cern.ch/service-spi/external/distribution/
こちらの"GSL_1.8__LCG_win32_vc71.tar.gz "からGSLをもらってきます。
適当にデスクトップにでも貼りましょう。
*)tar.gzファイルなのでLhazなので解凍しましょう
これも適当な場所に解凍。
フォルダには
includeファイルと
libファイルがあるので、
include中のgslファイルをVC++のincludeファイルに入れます。
私の場合は、"C:\Program Files\Microsoft Visual Studio 10.0\VC\include"でした。
次に、libファイルの中の
選択してある部分をVC++のlibファイル直下にgslフォルダを作成し、移動させます。
私の場合は、"C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\gsl"でした。
次に上で選択した以外の
"gsl.dll"
"slblas.dll"
をC:\Windows\System32に移動します。
お疲れ様でした。
もうすぐ終わりです。
次にVC++で適当なプロジェクトを開始します。
私GSLプロジェクトとしました。
ここで、追加→C+ソースファイルを追加します。
"test.c"などなんでも良いです。
次にプロジェクトのプロパティを開き、「構成」→「C/C++」→「プリプロセッサ」を開き、「プリプロセッサの定義」フィールドに";GSL_DLL"を追加します。
最後に、
VCのプロジェクトに「既存項目の追加...」で、gsl.libを追加しましょう。線形代数を使うなら、gslcblas.libもです。
どうやら、新しいプロジェクトを作るたびに追加する必要があるようです。GSLをよく使うなら、ライブラリディレクトリへのショートカットを、アクセスしやすい場所に作っておくと便利でしょう。
以上でGSLの設定は終了です。
次に試験用のソースコードを打ち込みます。
#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) = %.18e\n", x, y);
return 0;
}
上記のサイト様からお借りします。
上のように記述し、
コンパイルすると、
J0(5) = -1.775967713143382600e-001
続行するには何かキーを押してください . . .
と出力されました。
これでようやくGSLを用いたプログラムを組めるようになりました。
お付き合い下さりありがとうございました。
追記:
http://hooktail.sub.jp/computPhys/gsl/
こちらにあるように、数値計算を高速に行うためのライブラリです。
初めてのOpenGL
こんばんはゼノンです。
今日はC言語のAPIの一つ、OpenGLを導入してきました。
APIというのはWindowsやLinuxなどなど、
色んなOSでアプリを記述する際に楽させてくれる書式のようなものです
以下のサイトを参考にしました。
http://wisdom.sakura.ne.jp/system/opengl/gl2.html
http://www.natural-science.or.jp/article/20091005103709.php
上のサイトから以下のソースコードをお借りして、動作チェックしました。
試される方は上のサイトを参考にすると良いと思います。
#include <stdio.h>
#include <GL/gl.h>
#include <GL/glut.h>
void disp(void)
{
glClear(GL_COLOR_BUFFER_BIT);
{
glutInitWindowPosition(100 , 50);
glutInitWindowSize(200 , 100);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutCreateWindow("Kitty on your lap");
glutDisplayFunc(disp); glutMainLoop();
上のソースコードをVC++2010のWin32コンソールアプリプロジェクトから作成し、
コンパイルします。
すると、
このようにコンソールを介し、ウィンドウが現れます。
ウィンドウを出すだけですが、
Win32 APIを用いた場合よりも少ない記述ですね。
その程度の知識しかありませんが・・・
以上OpenGLを導入してみました。
当分更新していなかったので
私はミクシイもやっているので、こちらではなかなかいつもとは違った毛色の日記などやろうと思ってました。
気がついたらあまり更新していませんでしたね。
近況としてはここ最近はずっとC言語の勉強をしています。
実際にコードを書くよりも知識的な内容をよくやっているのであまり良い勉強法かはわかりませんが。
プログラミングはとにかく書いて覚えるって方法が良いって聞いたんですが、
あまりそういうのは好きではなくて。。。
Cで何が出来るのか、
PCはどうやって動いてるのか。
そういう部分の勉強をしています。
そういえば,
面白そうだったので学校で借りた本が
よくみると3年後期のシラバス指定図書でした。
嬉しい誤算ですね!
今のうちに知識を吸収しておきましょうかね
C言語やJavaで画像処理を勉強しよう!
って感じの教科書です。
JavaはC++とかやってると入りやすいと聞きますが、
同時進行ってどうなんでしょうね。
私たち医療に携わる者も
プログラミングぐらい出来るようにならないといけない時代なんだろうなと思います