[PDF]
講義評価システム
[PDF]
Webアプリケーション制作教材
[PDF]
オリジナルCMS
[PDF]
名刺作成システム: QRコード入り名刺を自動生成します!
MathJaxとSyntax Highlighterのテスト
とりあえず,MathJaxのテスト。デフォルトをDisplay modeにして
\[ y(s) = f(s) + \int^b_a g(s, t) y(t) dt \]
数式が出るかしら? ついでにインライン表示も・・・まぁこんなもんか。
で,コード例も一つ。$n$次正方行列と
次元ベクトル
から作られる連立一次方程式
\[ A\mathbf{x} = \mathbf{b} \]
を未知ベクトルについて解くLAPACKプログラム。DGESVを使う最も簡単なもの。解の表示をコメントにしてあるのはでかい次元数のベンチマーク用に使ったからです。適宜はずしてお使い下さいませ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
/*************************************************/ /* LAPACK Tutorial */ /* Sample Program of DGESV */ /* with Intel Math Kernel */ /* Last Update: 2013-01-21 (Mon) T.Kouya */ // icc -I/opt/intel/include -I/opt/intel/mkl/include -L/opt/intel/mkl/lib/intel64 -L/opt/intel/lib/intel64 blas1_mkl.c -Wl,--start-group /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/mkl/lib/intel64/libmkl_sequential.a /opt/intel/mkl/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread /*************************************************/ #include <stdio.h> #include <stdlib.h> #include "mkl.h" // for Intel Math Kernel Library #include "mkl_cblas.h" #include "mkl_lapacke.h" #define min(i, j) (((i) < (j)) ? (i) : (j)) #define max(i, j) (((i) > (j)) ? (i) : (j)) int main() { MKL_INT i, j, dim; // dimension of vectors MKL_INT *pivot, info; double *ma, *vx, *vb; double alpha, beta; char str_mkl_version[1024]; double running_time; // print MKL version MKL_Get_Version_String(str_mkl_version, 1024); printf("%s\n", str_mkl_version); // input dimension printf("Dim = "); scanf("%d", &dim); if(dim <= 0) { printf("Illigal dimension! (dim = %d)\n", dim); return EXIT_FAILURE; } // Initialize pivot = (MKL_INT *)calloc(sizeof(MKL_INT), dim); ma = (double *)calloc(sizeof(double), dim * dim); vx = (double *)calloc(sizeof(double), dim); vb = (double *)calloc(sizeof(double), dim); // input va and vb for(i = 0; i < dim; i++) { for(j = 0; j < dim; j++) { // A = hirbert matrix //*(ma + i * dim + j) = 1.0 / (double)(i + j + 1); // A = frank matrix *(ma + i * dim + j) = (double)(dim - max(i, j)); } // x = answer *(vx + i) = (double) (i + 1); } // b := A * x alpha = 1.0; beta = 0.0; cblas_dgemv(CblasRowMajor, CblasNoTrans, dim, dim, alpha, ma, dim, vx, 1, beta, vb, 1); // print /* printf("A = \n"); for(i = 0; i < dim; i++) { printf("%3d: ", i); for(j = 0; j < dim; j++) printf("%10f ", *(ma + i * dim + j)); printf("\n"); } // print printf("x = \n"); for(i = 0; i < dim; i++) { printf("%3d: ", i); printf("%10f ", *(vx + i)); printf("\n"); } // print printf("b = \n"); for(i = 0; i < dim; i++) { printf("%3d: ", i); printf("%10f ", *(vb + i)); printf("\n"); } */ // solve A * X = C -> C := X running_time = dsecnd(); // start info = LAPACKE_dgesv(LAPACK_ROW_MAJOR, dim, 1, ma, dim, pivot, vb, 1); running_time = dsecnd() - running_time; // end // error occurs if info > 0 if(info > 0) { printf("pivot ma[%d][%d] is zero!\n", info, info); return EXIT_FAILURE; } printf("Dimension: %d, Running Time(s): %g\n", dim, running_time); // print /* printf("calculated x = \n"); for(i = 0; i < dim; i++) { printf("%3d: ", i); printf("%10f ", *(vb + i)); printf("\n"); } // diff printf("x - calculated x = \n"); for(i = 0; i < dim; i++) { printf("%3d: ", i); printf("%10f ", fabs(*(vx + i) - *(vb + i))); printf("\n"); } */ // free free(pivot); free(ma); free(vb); free(vx); return EXIT_SUCCESS; } |
Vintage Websites
仕事柄(趣味?),Webサイトは良く見ます。TwitterやFacebook経由で紹介されたサイトを見ることもありますし,調べものをする際に検索することもあります。しかし,毎日確実に一度は読みに行くWebサイトは自分のブックマークに登録してあるものに限られます。Blogしかり,Newsサイト然り。
そういう自分のBookmark登録サイトとはもう十年以上のお付き合いになるところが少なからず含まれています。私(幸谷)自身が1997年から14400BPS(KとかMとか付かないのだよ学生諸君!)ピーガーやりながら家からも職場からも(さすがにINS専用回線を使いましたが)The Internetに常時接続するようになったのですから,既にお付き合いは17年以上ということになります。光陰矢の如し。
ということで,The Internet接続開始時から営々と見続けてきたWebサイトはまだ現役であるところが多く,その後気がついて見るようになったサイトも知った時には10年以上のベテランであったりします。
あんまり更新がないのも何なんで,気がついたときに私見に基づくVintage Websitesについて好き勝手に書いていく予定です。というのも
- Webサイトは気がついたら完全消滅していることがある
- 国立国会図書館のアーカイブに収録されそうもない個人・団体のページは多数存在する
- 存在証明のためにもトップページのスナップショットと共にメモを書ておかないと忘れてしまう
からであります。
といいつつ,そのうちこの記事更新も忘れそうだけど,それはそれでよし。
紹介されたサイトについては許諾も何も取らずにリンクもスナップショットも取らせてもらっております。そのサイトの著作権保持者の方からのお申し出に限り,ご迷惑でしたら非公開にしますので,幸谷(tkouya(あっとまーく)cs.sist.ac.jp)までお知らせ下さい。
ではボチボチ。
幸谷研究室の方針
- 情報セミナーIIではPHPとデータベースを使ったWebプログラミングの勉強を行う。
- 情報セミナーII,卒業研究とも,週2回以上のペースで実施。無断欠席は認めない。
- 本研究室についての詳細はhttp://cs-tklab.na-inet.jp/を参照。
Primary DNS移行作業中
幸谷@Site Masterです。
サーバ代をケチるため,na-inet.jpドメインのPrimary DNSを運用しているminerva.na-inet.jp(WebArena SuitePro V3)を移転すべく,作業継続中なのであります。大体こんな感じ↓で今月中には全ての作業を終了する予定です。
今年に入ってから,cs-tklab.na-inet.jp (さくらVPS)の運用,webdesign.na-inet.jpの開設(DynamicDNS無料サービス終了のため)と,一気に3台のサーバがna-inet.jpドメインのマシンとして動くことになりました。サーバ保守作業を忘れないように細々とminerva.na-inet.jpの1台だけで運用してきたのに,ここにきて一気に仕事上の責任のあるドメインになってしまいました。まぁ今まで通りやるだけなんですけどね。
今の所,Web関係は順調に移設できてますし,一番の懸念材料だったSecondary DNSの移設も無事済んだようなので,あとはメール関係の移設を残すだけとなりました。作業的には大したことないのですが,メール転送とML移設のチェックが面倒なんです。まぁ一度やってますから何とかなるでしょう。
初体験だったのがSecondary DNSの移設。今まではWebArenaを統括するNTT PC communicationsのDNS(ns4.sphere.ne.jp)にお願いしてきたのを,Primary DNSはWebArenaに残したまま,さくらインターネットのDNSに移設することになったのですから,ちょっと焦りました。終わってみればあっさり完了したんですが,それは入念に下調べしたおかげでしょう。他社のドメインを無料で引き受けられると分かって「ホンマかいな?」と思いつつやってみたらちゃんと動いた時には安堵いたしました。イヤまったく。
ということで,6月からは下記のように運用体制が完成するはずですが,見かけ上は全然わからないですよね。もちろん,今までの体制をそのままそっくり移すのですから,外側から(Webから)見ただけでは分かるはずもないし,分かってはまずいわけですけど,作業の面倒さを伝えられないのは嫌だなぁ・・・ということでこういう文章を書いてみました。
ということで,今後もna-inet.jpドメインの運用をやっていく所存であります。クラウド時代になっても運用ノウハウがそのまま生きるってのは,UNIX(Linux)の有難いところでありますね。
幸谷研究室の情報提供ページ
今後,色々予定が変わった時には随時書いていきたいと思います。