[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000421] Re: proto2c



ごとけんさま

proto2c を動かしてみました。穴埋めするところが、とてもわかり
やすいですね。いくつか質問があります。
( DCL ラッパーの名前、今は仮に Ruby/DCL としていますが、何と
  呼びましょうか?)

・Ruby/DCLの引数として、実数の配列に相当するのは、NumArray
  クラスのオブジェクト。Array クラスのオブジェクトも含めま
  すよね?

・math1/syslib の GLRGET(CP, RPARA) の様に出力用の引数を持つ
  場合、Ruby/DCL では
    rpara = glrget(cp)
  となりますよね。複数の場合は、Array クラスのオブジェクトを
  返す、でいいでしょうか。

・実装面で、Ruby <--> C 間のデータ変換ですが

    data     |  Ruby -> C        |  C -> Ruby
  -----------+-------------------+-------------------
    int      |  NUM2INT()        |  INT2NUM()
    char*    |  STR2CSTR()       |  rb_str_new2()
    float    |  NUM2DBL()+cast   |  cast+rb_float_new()

  で統一してよいですか。また、Array クラスのオブジェクトを
  作るには、各要素をオブジェクト化して rb_ary_new3() でよろ
  しいですか?


川那辺さま:
  NumArray を Cのfloat配列に変換する関数の名前は何にしますか。
  また、教えてください。


塩谷先生:
  上で挙げた math1/syslib GLRGET なんですが、proto2c が参照
  するプロトタイプ宣言は、第2引数が整数になっています。f2c
  版のDCLでも、実装は integer になっていました。Fortran 版
  を直せば、他も OK になるのでしょうか?


黒井 啓子