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

[dennou-ruby:000441] Re: proto2c



川那辺です。

>川那辺さま:
>C の配列とそのサイズから、NumArray オブジェクトを作る関数を
>教えてもらえますか?よろしくお願いします。

PTR2NARYにしましょう。中身はこんなものでしょうか。

VALUE
PTR2NARY(double *c_ptr, int size)
{
    BNA *bna;
    NA *n_ary;
    double *dp;
    
    shape = xmalloc(sizeof(int));
    shape[0] = size;

    bna = alloc_bna(tDOUBLE, size);
    dp = bna->ptr;
    dp = c_ptr;

    n_ary = alloc_na(bna, 1, shape); 
    
    return Data_Wrap_Struct(cNumArrayDouble, 0, free_na, n_ary);
}

Rubyオブジェクトを返すよりかはnumarrayの構造体を返すほうがいい、
というなら

NA *
PTR2NARY(double *c_ptr, int size)
{
    BNA *bna;
    double *dp;

    shape = xmalloc(sizeof(int));
    shape[0] = size;

    bna = alloc_bna(tDOUBLE, size);
    dp = bna->ptr;	
    dp = c_ptr;
    
    return alloc_na(bna, 1, shape); 
}

という形になりますがどちらがいいでしょうか。

--------------------------------------------------
 京都大学宙空電波科学研究センター
 津田研究室修士1回生  川那辺 直樹  
 e-mail: kawanabe@xxxxxx
--------------------------------------------------