我正在运行这个程序来计算两个向量的点积...我使用* sum作为结果,但是在将它初始化为零之后,值在我的循环之后永远不会更新?
extern "C" {
void attempt2( double * x , double * y, int * len , double * sum , int * ToF){
*sum = 0;
for ( int i = 0; i < *len ; i++ ){
*sum += x[ i ]*y[ i ];
} //
}
}
然后我使用.C。
在R中调用它x <- c(1.1, 2.1, 3.9)
y <- c(3.0, 1.1, 7.2)
len <- length(x)
Tf <- TRUE
lst <- .C("attempt2", x = x,
len = len,
sum = as.numeric(0),
ToF = as.logical(Tf))
lst
有什么明显的东西我做错了吗?
答案 0 :(得分:0)
您应该在参数中添加y:
lst <- .C("attempt2", x = x, y = y,
len = len,
sum = as.numeric(0),
ToF = as.logical(Tf))
也不确定您是否需要ToF
。