R은 다른 언어와 인터페이스 할 때 을 포함하는 헤더를 사용합니다. 이는 std::complex<double>
의 구현 인 것으로 보입니다. 그것을 사용하는 표준 방법은 R
에 복잡한 벡터 x_
이 될 것이다 : 그러나 Rcomplex *px = COMPLEX(x_);
, 내가 그때 할 armadillo
에 전달해야하기 때문에 : arma::cx_vec x(px, nrows(x_), false, false);
R 복합 객체를 armadillo에 전달 C
하지만 armadillo
이 Rcomplex
유형을 허용하지 않습니다. std::complex<double> *px = COMPLEX(x_);
을하지만, 얻을 다음 error: cannot convert ‘Rcomplex*’ to ‘std::complex<double>*’ in initialization
당신이 std::complex<double> type
에 R에 복잡한 벡터를 전달하는 단서가 있습니까 : 나는 시도를 대신하고있다? 나는 Rcpp
의 알고 있지만
편집 기본 R.에 의존 직접 해결하고 싶은 : 코멘트 중 하나를 따라, 나는 Rcomplex
이 C
유형임을 명확히하고 싶었을하지만에 따라 std::complex<double>
와 호환되는지 @Stephen Canon의 answer
EDIT2 : "종속성 없음"질문에 답변하지 않는 경우 Dirk의 답변에 승인 된 답변보다 더 많은 투표가있는 이유는 무엇입니까? 또한 C 나 C++로 기본 R을 사용하기를 원한다면 누군가가 선호하지 않기 때문에 나는 분명히 downvoted되었습니다. 어쨌든, 더 좋은 일이 있지만 C 또는 C++와의 기본 R 관련 인터페이스를 묻고 내가 묻지 않은 Rcpp
관련 대답을 얻으 려 할 때 원래 질문에 대한 답변을 얻지 못한 것은 처음이 아닙니다.
RcppArmadillo를 사용하지 않는 특별한 이유가 있습니까? – Roland
@Roland 간단한 일을 위해 나는 보통 의존성을 피하는 것을 선호하며 제 기능은 매우 쉽지만 속도를 높이고 싶습니다. – nopeva
@nopeva : 그것은 바퀴의 재발 명이라고합니다. 같은 논리로 당신은 아르마딜로를 사용하지 않을 것입니다. 또는 R. –