Sin ve cos birlikte hesaplamak için en hızlı yolu nedir?
Sinüs ve co-sinüs değerini birlikte örneğin döndürme matris oluşturmak için () her ikisi de hesaplamak istiyorum. Elbette a = cos(x); b = sin(x);
ama eğer iki değer de ihtiyaç olduğunda daha hızlı bir yol olup olmadığını merak ediyorum gibi birbiri ardına bunları ayrı ayrı tahmin edemeyeceğim.
Düzenleme: Cevaplar şimdiye kadar özetlemek gerekirse:
Vlad
FSINCOS
Bilgisayar ikisi de kanamayla komutu var, (FSIN
bir çağrı olarak hemen hemen aynı zamanda tek başına) dediChi fark gibi, bu en iyi duruma getirme bazen zaten derleyici optimizasyon bayrakları kullanırken) tarafından yapılır.
caf fonksiyonlar
sincos
sincosf
muhtemelen mevcuttur ve doğrudan sadecemath.h
dahil olmak üzere çağrılabilir dikkat çektiBak bir tablo kullanarak 15* *yaklaşım tartışmalı tartışılır. (Ancak bir kıyaslama senaryoda bilgisayarımda ve 3x daha hızlı 32-bit kayan puan için hemen hemen aynı doğrulukla
sincos
Daha çalışır.)Joel Goodwin oldukça iyi accuray ile son derece hızlı bir yaklaşım tekniği ilginç bir yaklaşım için (benim için bu bile daha hızlı tablo-Yukarı Bak) bağlı
CEVAP
Modern Intel/AMD işlemciler aynı anda sinüs ve kosinüs fonksiyonları hesaplamak için FSINCOS
talimat var. Eğer güçlü optimizasyon gerekiyorsa, belki de kullanmalısınız.
Burada küçük bir örnek: http://home.broadpark.no/~alein/fsincos.html
Burada başka bir örnek (MSVC): http://www.codeguru.com/forum/showthread.php?t=328669
Burada başka bir örnek (gcc): http://www.allegro.cc/forums/thread/588470
Bunlardan biri yardımcı olur umarım. (Bu talimat kendimi, üzgünüm kullanmadım.)
İşlemci düzeyde desteklenen gibi, onlara yol tablo aramaları çok daha hızlı olmasını bekliyoruz.
Düzenleme:
Wikipedia FSINCOS
pek desteklemediği bir işlemci bulmak 387 işlemciler de ilave olmuştur.
Düzenleme:
Intel's documentation FSINCOS
FDIV
(yani, kayan nokta birimi) göre yaklaşık 5 kat daha yavaş olduğunu belirtiyor.
Düzenleme:
Lütfen tüm modern Derleyiciler FSINCOS
bir çağrı içine sinüs ve kosinüs hesaplama optimize unutmayın. Özellikle, benim VS 2008 öyle yapmadı.
Düzenleme:
İlk örnek, link ölü, ama still a version at the Wayback Machine var.
Π değerini almak için en hızlı yolu ne...
Konu gidişli veya etiketleri hesaplama...
XCode4 Sekmeler arasında hızlı geçiş y...
C büyük dosyalar için bir sağlama topl...
Python 100.000 HTTP istekleri gönderme...