[#1381] bound method — shugo@... (Shugo Maeda)

前田です。

21 messages 1998/02/04
[#1383] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#1384] Re: bound method — keiju@... (石塚圭樹 ) 1998/02/05

けいじゅ@日本ラショナルソフトウェアです.

[#1385] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#1387] Re: bound method — keiju@... (石塚圭樹 ) 1998/02/05

けいじゅ@日本ラショナルソフトウェアです.

[#1388] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#1389] Re: bound method — keiju@... (石塚圭樹 ) 1998/02/05

けいじゅ@日本ラショナルソフトウェアです.

[#1396] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/06

まつもと ゆきひろです

[#1410] GD — Masao Kanemitsu <masao-k@...>

30 messages 1998/02/10
[#1411] Re: GD — matz@... (Yukihiro Matsumoto) 1998/02/10

まつもと ゆきひろです

[#1413] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1417] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/10

<199802100623.PAA03533@eban.ase.ptg.sony.co.jp> の、

[#1420] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1426] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/10

<199802100733.QAA04028@eban.ase.ptg.sony.co.jp> の、

[#1428] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1429] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/10

<199802100757.QAA04212@eban.ase.ptg.sony.co.jp> の、

[#1431] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1434] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/12

<199802100952.SAA04346@eban.ase.ptg.sony.co.jp> の、

[#1435] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/12

わたなべです.

[#1436] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/12

<199802120449.NAA00398@eban.ase.ptg.sony.co.jp> の、

[ruby-dev:1473] argumant type

From: Masao Kanemitsu <masao-k@...>
Date: 1998-02-17 09:27:22 UTC
List: ruby-dev #1473
拡張モジュールのメソッドの引数チェックですが:

require "mandel"
...

def mandel(x, y)
  re = $s_re + ($dx * x)
  im = $s_im - ($dy * y)
  # z = c = Complex(re, im)
  # for i in 0 .. $max_deapth
  #   z = (z * z) + c
  #   break if z.abs > 2
  # end
  # return i
p re.type
p im.type
p $max_deapth.type
  return Mandel.loop(re, im, $max_deapth)
end


みたいな感じでMandel.loopを呼んでみると、

masao-k@ewb02% !ruby
ruby tkmandel.rb
Float
Float
Fixnum
tkmandel.rb:104:in `loop': wrong argument type Module (expected Float) (TypeError)
        from tkmandel.rb:104:in `mandel'
        from tkmandel.rb:113:in `calc'
        from tkmandel.rb:112:in `each'
        from tkmandel.rb:112:in `calc'
        from tkmandel.rb:153


と、怒られます。なぜ?

ちなみに、mandel.cは以下な感じです:

M.Kanemitsu

−−−
#include "ruby.h"

static VALUE
mandel_loop(re, im, max)
    VALUE re;
    VALUE im;
    VALUE max;
{
    double real, image;
    double z_real, z_image;
    int maximum;
    int i;

    Check_Type(re, T_FLOAT);
    Check_Type(im, T_FLOAT);
    Check_Type(max, T_FIXNUM);

    real = RFLOAT(re)->value;
    image = RFLOAT(im)->value;
    maximum = FIX2INT(max);

    /***
    z = c = Complex(re, im)
    for i in 0 .. $max_deapth
      z = (z * z) + c
      break if z.abs > 2
    end
    return i
    ***/

    z_real = real;
    z_image = image;
    for (i = 0; i < maximum; i++) {
        z_real = ((z_real * z_real) - (z_image * z_image)) + real;
        z_image = ((z_real * z_image) + (z_image * z_real)) + image;
        if ( ((z_real * z_real) + (z_image * z_image)) > 4.0 ) {
            break;
        }
    }
    return INT2FIX(i);
}


Init_mandel()
{
    VALUE mMandel = rb_define_module("Mandel");
    rb_define_singleton_method(mMandel, "loop", mandel_loop, 3);
}
−−−

In This Thread

Prev Next