Bir değerin hem sinüsünü hem de eş sinüsünü birlikte hesaplamak istiyorum (örneğin bir rotasyon matrisi oluşturmak için). Tabii ki onları birbiri ardına ayrı ayrı hesaplayabilirim a = cos(x); b = sin(x);, ancak her iki değere de ihtiyaç duymanın daha hızlı bir yolu olup olmadığını merak ediyorum.
Düzenleme: Şimdiye kadarki cevapları özetlemek için:
Vlad ,
FSINCOSikisini de hesaplayanasm komutuolduğunu söyledi (neredeyseFSINtek başınabir çağrı ile aynı zamanda)Gibi Chi fark bu optimizasyon bazen zaten (optimizasyon bayrakları kullanılırken) derleyici tarafından yapılır.
caf , çalıştığını
sincosvesincosfmuhtemelen mevcut olduğunu ve sadece dahil edilerek doğrudan çağrılabileceğini belirtti.math.hBir taramalı tablo kullanmanın tanascius yaklaşımı tartışmalı olarak tartışılmaktadır. (Bununla birlikte, bilgisayarımda ve bir kıyaslama senaryosunda
sincos, 32-bit kayan noktalar için neredeyse aynı doğruluklaolduğundan 3 kat daha hızlı çalışır.)Joel Goodwin , oldukça hızlı bir yaklaşım tekniğinin ilginç bir yaklaşımını oldukça iyi bir doğrulukla ilişkilendirdi (benim için bu, tablo aramasından daha hızlı)