2012-08-27 9 views
5

Accelerate Framework의 vDSP 기능에서 모든 기능을 사용하려면 결과 벡터를 입력해야합니다. 원래 입력 벡터에있는 것이 더 이상 필요하지 않으면 입력 벡터 (또는 입력 벡터 중 하나)를 결과 벡터로 전달하는 것이 맞습니까? 무슨 뜻인지의결과를 vDSP 프레임 워크의 입력 벡터 중 하나에 저장할 수 있습니까

예 :

vDSP_vsadd(input_vector,1,scalar_addition,input_vector,1,length); 

이것은 input_vector을 가지고 모든 요소에 scalar_addition을 추가합니다. 결과는 input_vector에 저장됩니다. (당신은 출력 &input_vector[length/2]를 사용하여 의미있는 결과를 얻을 것으로 예상 할 수없는 예를 들어 그들은 현재 위치에서 엄격하게을만큼 너무 오래) VDSP에서

답변

4

간단한 벡터 연산은 모두 올바르게 현재 위치에서 작동합니다. 실제로 캐시 내압을 줄이면 성능을 향상시킬 수 있습니다.

일부보다 복잡한 vDSP 작업은 하나 이상의 인수를 사용하여 현재 위치 연산을 지원하지 않습니다. 이 내용은 vDSP 참조 설명서에 나와 있습니다.

+0

'적절한 위치'란 정확히 내가 말한 것을 의미합니다. 입력 벡터가 출력 벡터로 변경됩니다. vDSP Reference Guide에 대한 빠른 검색을 수행했으며 정렬 및 fft 알고리즘과 관련하여 문서에 나타난 '현재 위치'만이 유일한 기능이 'in-place'를 지원하지 않는다는 것을 알았습니까? 결과 벡터, 또는 더 단순한 함수가 문서화 될 필요가없는 '적절한 위치 (in-place)'를 분명히 지원한다는 것입니까? – user1357607

+2

예, "현재 위치"란 설명하는 것을 의미합니다. 그것은 단순한 기능을 위해 명시 적으로 문서화되어야하지만 그렇지 않다. –