2014-02-12 1 views
0

lib에는 아이겐에 Matrixcd을 재 내가 아이겐 MatrixXcd에 fftw_complex 배열을지도하고 다시 싶습니다 :이 발견맵 fftw_complex이

MatrixXcd m1 = MatrixXcd::Map(reinterpret_cast<complex<double>*>(m1f), n1, n2); 

을하지만, 느린

답변

1

이 성능 문제를 해결 해봐야 할 것 같습니다 :

MatrixXcd::Map<MatrixXcd> m1(reinterpret_cast<complex<double>*>(m1f), n1, n2); 

문제는지도 개체를 Matrix 개체에 할당한다는 것입니다. 이렇게하면 Eigen은 에 매핑 된 행렬을 Matrix 객체가 할당 한 메모리에 복사합니다.

또한 MatrixXcd::Map<MatrixXcd, Aligned>을 사용하는 것이 좋습니다. 이것은 Eigen에게 m1f이 가리키는 메모리가 벡터화를 위해 올바르게 정렬되어 있음을 알려줍니다. 물론 Eigen이 요구하는대로 메모리가 실제로 제대로 정렬되어 있는지 확인해야합니다.

+0

이 오류를 말하십시오 : – user3302427

+0

이 줄에 여러 마커가 있습니다. \t - 예상 ';' 'Load_mat' \t 전 - 오버로드 \t 기능 – user3302427

+0

MatrixXcd의 주소 ::지도 Load_mat를 해결할 수없는 문 (reinterpret_cast <복잡한 *> (INPUT3), w, h)을; – user3302427