[C] sincos関数で高速化

sinとcosの両方を使う場合は、ですが。

皆さんはC言語でsincos関数というものがあることをご存知でしょうか。『そんなもの知らなくともsinとcosを別々に求める関数があるのだから、それでいいじゃないか』と思われるかもしれません。しかし、プログラミングをしていると(私の経験上)大抵sinとcosの両方を計算する必要があったりします

ではsincos関数の何が優れているのでしょうか。それはズバリ速度にあります。sincos関数を一度呼び出して両方の値を計算するのと、sin関数とcos関数の両方を1度ずつ呼び出すことを比較してみましょう。前者は数学関数を1回、後者は2回呼び出しているので、当然前者の方が早くなるのです。

実際の使い方をこちらに示します。

&演算子を使って、値を代入する場所を指定します。

ちなみにですが、linuxコマンドのtimeを使って実行速度を測りましたところ、total時間は、sincos関数では0.049, sinとcosを使った場合では0.106と、やはり2倍になっていました。

for文などで何度もsin, cosの両方を計算する場合は、高速化の一手としてぜひ使ってみてはいかがでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Captcha loading...