[#43353] 丸数字の文字コード変換 — Masuda Yoshihisa <sacong@...>
マスダといいます。
10 messages
2007/04/02
[#43363] 特定のmoduleに属しているかの判別 — "西塔伸一郎" <sinsaihy@...>
初めまして
5 messages
2007/04/04
[#43369] dRuby に CGI を渡す→script_uri が上手く取得出来ない — 石井 大海 <banzaida@...>
こんばんは、konnです。
10 messages
2007/04/05
[#43373] Re: dRuby に CGI を渡す→script_uri が上手く取得出来ない
— Masatoshi SEKI <m_seki@...>
2007/04/06
咳といいます。
[#43374] Re: dRuby に CGI を渡す→script_uri が上手く取得出来ない
— 石井 大海 <banzaida@...>
2007/04/06
こんにちは、konnです。
[#43376] Re: dRuby に CGI を渡す→script_uri が上手く取得出来ない
— Masatoshi SEKI <m_seki@...>
2007/04/06
咳といいます。
[#43382] VB6からrubyを呼び出す際の問題について — "takumi iino" <trot.thunder@...>
はじめまして。飯野と申します。
11 messages
2007/04/06
[#43383] Re: VB6からrubyを呼び出す際の問題について
— rubikitch@...
2007/04/06
From: "takumi iino" <trot.thunder@gmail.com>
[#43384] Re: VB6からrubyを呼び出す際の問題について
— "takumi iino" <trot.thunder@...>
2007/04/06
飯野です。
[#43385] Re: VB6からrubyを呼び出す際の問題について
— "takumi iino" <trot.thunder@...>
2007/04/06
飯野です。
[#43407] オブジェクトのインスタンス変数名の取得 — pegacorn <subscriber.jp@...>
こんにちは。
8 messages
2007/04/10
[#43408] Re: オブジェクトのインスタンス変数名の取得
— Yukihiro Matsumoto <matz@...>
2007/04/10
まつもと ゆきひろです
[#43409] Re: オブジェクトのインスタンス変数名の取得
— pegacorn <subscriber.jp@...>
2007/04/10
07/04/10 に Yukihiro Matsumoto <matz@ruby-lang.org> さんは書きました:
[#43410] Re: オブジェクトのインスタンス変数名の取得
— Yukihiro Matsumoto <matz@...>
2007/04/10
まつもと ゆきひろです
[#43415] Gtk::TreeView でドラッグ — Takeshi Honda <moecho21@...>
お世話になります。
5 messages
2007/04/10
[#43428] ClassのクラスはClass自身でない? (RHGの疑問点) — Yoshino <ysnmin@...>
初めまして。吉野と言います。
5 messages
2007/04/12
[#43435] ruby から C/C++ の利用法 — ohrsts@...
小原と申します。
6 messages
2007/04/14
[#43450] Fwd: 「オープンソースカンファレンス2007 Hokkaido」開催のお知らせ — "SHIMADA Koji" <snoozer.05@...>
しまだ@Ruby札幌です。
4 messages
2007/04/20
[ruby-list:43443] Re: ruby から C/C++ の利用法
From:
ohrsts@...
Date:
2007-04-17 20:02:32 UTC
List:
ruby-list #43443
小原です。
http://ruby.gfd-dennou.org/tutorial/ruby-ext/
を参考に作業をした報告です。
私の環境が上記ホームページと異なるためか、すんなりいかないところも
ありました。
(os=vine linux 3.0 )
( ruby 1.8.2 (2004-11-03) [i386-linux])
作業をする中で、いくつかの疑問もでてきました。これらは、thread
を改めて、ご教授を仰ぎたいと思います。
ライフゲームは、とてもできそうにないので、素数を取り出す処理で
時間を計測することにしました。
http://narray.rubyforge.org/index.html.ja
からNArrayをダウンロードして、インストールの途中ですが、
ここにライフゲームの Ruby script がありました。とても
短くて、びっくりしました。私には、解読できなくて、少し
落ち込んでいるところです。
以下、今までの作業です。
-------------------------------------------------
●0 directry foo を作る。(作業はここでする)
●1 swig をインストールする。
(vine の synaptic を使用でラクチン)
●2 prm.c を作る。
(整数xが素数なら return 1)
/*** prm.c ここから ***********************/
/*#include <stdio.h>
#include <math.h>
*/
int prm(int x){
int a,b,c,i;
double max;
if(x<2) return 0;
if(x==2 || x==3) return 1;
if(x%2==0) return 2;
max=sqrt(x);
i=1;
while(i<max){
i+=2;
if(x%i==0) return i;
}
return 1;
}
/*** prm.c ここまで **************************/
●3 forswig.i を作る。
/*******forswig.i ここから*********************/
%module prime
%{
%}
extern int prm(int x);
/*******forswig.i ここまで*********************/
●4 コマンド swig -ruby forswig.i を投入する。
●5 コマンド ruby extconf.rb を投入する。
/********extconf.rb ここから*******************/
require 'mkmf'
create_makefile('prime')
/********extconf.rb ここまで*******************/
●6 コマンド make を投入する。
●7 コマンド ls を投入して、file を確認する。
(prime.so が 生成されている!)
/********確認画面 ここから**********************/
[ohr@localhost foo]$ ls
Makefile forswig.i forswig_wrap.c prime.so* prm.c~
extconf.rb forswig.i~ forswig_wrap.o prm.c prm.o
/********確認画面 ここまで**********************/
●8 script tst.rb を作って実験する。
/**********tst.rb code ここから****************/
#!/usr/bin/env ruby
require 'prime'
def rprm(x)
return 1 if x==2 || x==3
return 0 if x<2
return 2 if x%2==0
i=1;max=Math::sqrt(x+0.5)
while i<max
i+=2
return i if x%i==0
end
return 1
end
loop {
system ("clear")
puts "\ncompare time to calcurate"
puts " pick up 30 primes greater than indicated."
puts " c vis ruby \n "
print " input integer x= "
xx=x=gets.chomp.to_i
break if x==0
t0=Time.now ######## by C
n=0
while n<30
if Prime.prm(x)==1;printf(" %10d",x);n+=1
puts if n%5==0;end
x+=1
end
t1=Time.now
printf("Time by C = %f\n",t1-t0)
t0=Time.now ######## by ruby
n=0;x=xx
while n<30
if rprm(x)==1;printf(" %10d",x);n+=1
puts if n%5==0;end
x+=1
end
t1=Time.now
printf("Time by Ruby = %f\n",t1-t0)
print "OK? : ";e=gets;break if e.chop=="e"
}
/**********tst.rb ここまで********************/
/**********実行画面 ここから********************/
compare time to calcurate
pick up 30 primes greater than indicated.
c vis ruby
input integer x= 1000000
1000003 1000033 1000037 1000039 1000081
1000099 1000117 1000121 1000133 1000151
1000159 1000171 1000183 1000187 1000193
1000199 1000211 1000213 1000231 1000249
1000253 1000273 1000289 1000291 1000303
1000313 1000333 1000357 1000367 1000381
Time by C = 0.001291
1000003 1000033 1000037 1000039 1000081
1000099 1000117 1000121 1000133 1000151
1000159 1000171 1000183 1000187 1000193
1000199 1000211 1000213 1000231 1000249
1000253 1000273 1000289 1000291 1000303
1000313 1000333 1000357 1000367 1000381
Time by Ruby = 0.057976
OK? :
/**********実行画面 ここまで********************/