SORU
21 NİSAN 2010, ÇARŞAMBA


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) dedi

  • Chi 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 sadece math.h dahil olmak üzere çağrılabilir dikkat çekti

  • Bak 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
21 NİSAN 2010, ÇARŞAMBA


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • J Medema

    J Medema

    11 EKİM 2006
  • kidrauhl

    kidrauhl

    15 Ocak 2007
  • Professor Messer

    Professor Me

    27 NİSAN 2007