【发布时间】:2015-11-04 05:33:45
【问题描述】:
我正在尝试包装以下函数以进行 C 扩展。
int dsvd(float **a, int m, int n, float *w, float **v){
//do some things
}
我有我的 init,但不太正确:
void Init_svd() {
VALUE rb_mSvd = rb_define_module("Svd");
rb_define_method(rb_mSvd, "svd", dsvd, 0);
}
我知道我需要包装 dsvd 以便我可以将 Value 传递给 rb_define_method,但我无法确定正确的方法。我尝试调整this 答案,但无法完全弄清楚。有什么建议吗?
edit* 我还阅读了关于 C 扩展的实用程序员部分,但它侧重于对象创建/分配。我正在尝试提供一个执行一些转换并返回一个值的函数,所以我无法在概念上进行匹配。
【问题讨论】: