From: Fla As Date: 2007-12-16T18:53:53+09:00 Subject: SWIG function problem Hello, I have following Ruby code: class Random def initialize(init, im=139968, ia=3877, ic=29573) @last = init @im = im @ia = ia @ic = ic end def next(max) (max * (@last = (@last * @ia + @ic) % @im)) / @im end end v = Random.new(42.0) 10.times do puts v.next(1.0) end And I try to write the next-function in c float gen_random(int *last, float max, int IM, int IA, int IC) { *last = (*last * IA + IC) % IM; return (max * *last / (float)IM); } and with help SWIG I try make useable in Ruby but I can not. require 'fastac' ... def next(max) # (max * (@last = (@last * @ia + @ic) % @im)) / @im Fastac.gen_random(@last, max, @im, @ia, @ic) end ... $ ruby gen_random.rb gen_random.rb:12:in `gen_random': Expected argument 0 of type int *, but got Fixnum 42 (TypeError) in SWIG method 'gen_random' from gen_random.rb:12:in `next' from gen_random.rb:18 from gen_random.rb:17:in `times' from gen_random.rb:17 [/code] What I make wrong? best regards -- Posted via http://www.ruby-forum.com/.