SORU
17 ŞUBAT 2010, ÇARŞAMBA


Nasıl C günah hesaplaması() ve diğer matematik fonksiyonları?

Kağıtla yaşadım .NET disassemblies ve GCC kaynak kodu, ama bir yere sin() ve diğer matematik fonksiyonları, gerçek uygulama bulamadım... onlar her zaman başka bir referans gibi görünüyor.

Herkes onları bulmak için bana yardımcı olabilir misiniz? C) o TÜM donanım donanım Trigonometri işlevleri desteklemesi pek olası değil gibi hissediyorum, yazılım algoritması olmalıbir yeredeğil mi?

Düzenleme:Fonksiyonları çeşitli yollar biliyorumolabilirhesaplanacak ve kendi rutinleri eğlenceli fonksiyonlar için taylor serisi kullanarak hesaplamak için yazdım. Merak ediyorum ne kadar gerçek, üretim diller, beri de tüm uygulamaları her zaman birkaç siparişlerin büyüklüğü daha yavaş olsa da bence benim algoritmalar oldukça zeki (belli değil).

CEVAP
17 ŞUBAT 2010, ÇARŞAMBA


GNU libm, sin uygulanması sistemden sisteme göre değişir. Bu nedenle uygulanması, sysdeps uygun alt dizininde her platform için bir yerde bulabilirsiniz.

Bir dizin C, IBM tarafından katkıda bulunan bir uygulama içerir. Ekim 2011 yılından bu yana, bu aslında 86-64 tipik bir Linux sistemi üzerinde sin() çağırdığınızda çalışan kod. Görünüşe göre fsin montaj talimatı daha hızlı. Kaynak kodu: 8**, __sin (double x) için bak.

Bu kod çok karmaşık. Hiç bir yazılım algoritması mümkün olduğu kadar hızlı ve tüm Aralık boyunca da doğru değildirxkütüphane birçok farklı algoritmalar ve bakmaktır ilk işim uygular yani değerlerxve kullanmak için algoritma karar. Bazı bölgelerde tanıdık Taylor serisi gibi görünüyor kullanır. Bu algoritmalar birkaç önce hızlı bir sonuç hesaplamak, eğer yeterince doğru değilse, onu atmak ve yavaş bir algoritma geri düşmek.

Eski 32-bit GCC/abone olarak giriş sürümleri bazı girdiler için şaşırtıcı derecede yanlış olan, fsin talimat, kullanılan. fascinating blog post illustrating this with just 2 lines of code bir şey var.

saf C sin fdlibm uygulanması abone olarak giriş bu kadar basit ve güzel yorumladı. Kaynak kod: fdlibm/s_sin.c fdlibm/k_sin.c

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Animation Workshop

    Animation Wo

    8 NİSAN 2010
  • NLthomas21

    NLthomas21

    20 Mayıs 2008
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006