2012-08-27 8 views
5

Accelerate FrameworkのvDSP関数では、すべての関数で結果ベクトルを入力する必要があります。元の入力ベクトルに何も含まれていなくても、入力ベクトル(または入力ベクトルの1つ)を結果ベクトルとして渡すのは正しいですか?私が言いたいの結果をvDSPフレームワークの入力ベクトルの1つに格納することは可能ですか?

例:

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

これはinput_vectorを取り、すべての要素にscalar_additionを追加します。結果はinput_vectorに格納されます。 VDSPで

答えて

4

簡単なベクトル演算インプレース正しくすべての作業(限り、彼らは厳密インプレースあるとして、例えば、あなたが出力に&input_vector[length/2]を使用して、意味のある結果を得ることを期待することはできません)。実際、インプレースを使用すると、キャッシュ・プレッシャーを軽減できるため、パフォーマンスを向上させることがよくあります。

より複雑なvDSP操作の中には、1つ以上の引数を使用したインプレース操作をサポートしていないものがあります。これは、vDSPリファレンスガイドに記載されています。

+0

「インプレース」とは、入力ベクトルが出力ベクトルに変更されているということです。 私はvDSPリファレンスガイドを素早く検索しました。ソートアルゴリズムとfftアルゴリズムを参照していた文書に現れた「インプレース」の唯一の時間が見つかりました。これは、より簡単な関数が 'インプレース'より単純な関数が明示的に 'インプレース'をサポートしているため、文書化する必要はありませんか? – user1357607

+2

はい、「インプレース」とは、あなたが何を記述しているのかを意味します。単純な関数については明示的に文書化する必要がありますが、そうではありません。 –

関連する問題