Bagaimana cara komputer menghitung nilai dosa? Secara logis, ketika saya memikirkannya satu-satunya cara yang jelas adalah dengan memasukkan banyak nilai dosa ke dalam memori, dan ketika nilai dosa perlu "dihitung", itu hanya akan menarik data dari alamat memori tertentu. (Mis. Sin (x) akan menarik data dari alamat memori yang mengandung nilai sin (x)) Itu sepertinya satu-satunya cara yang mungkin untuk melakukannya. Atau adakah fungsi yang dapat digunakan untuk menghitung dosa suatu nilai? Saya benar-benar mencoba bertanya bagaimana komputer menghitung dosa pada tingkat dasar. Apakah ada cara untuk memperkirakan nilai dosa menggunakan fungsi berbeda yang terdiri dari lebih banyak operasi "dasar", dan ALU akan dapat melakukan beberapa operasi "dasar" untuk memperkirakan nilai dosa, atau apakah itu hanya menarik nilai dari memori?
sumber
<placeholder>
, google "<placeholder>
algoritma perhitungan". Ini bekerja lebih baik daripada bertanya pada SE dalam banyak kasus ..Jawaban:
Biasanya fungsi resolusi tinggi dosa (x) akan diimplementasikan dengan algoritma CORDIC (COrdiate Rotation DIgital Computer), yang dapat diselesaikan dengan sejumlah kecil iterasi dengan hanya menggeser dan menambah / mengurangi dan tabel pencarian kecil. The kertas asli yang CORDIC Computing Teknik oleh Jack Volder adalah dari 1959. Ia juga bekerja dengan baik ketika diimplementasikan dengan perangkat keras dalam FPGA (dan algoritma yang sama akan dilaksanakan dalam FPU hardware bagi mereka mikro yang memiliki FPU).
Untuk resolusi yang lebih rendah, misalnya untuk membuat gelombang sinus yang disintesis untuk inverter atau motor PKS (Variable Frequency Drive), tabel pencarian (LUT) dengan atau tanpa interpolasi bekerja dengan baik. Ini hanya diperlukan untuk menyimpan nilai-nilai untuk satu kuadran dari gelombang sinus karena simetri.
Seperti yang ditunjukkan oleh @Temlib, algoritma yang digunakan di dalam FPU modern menggunakan pengurangan rentang yang diikuti oleh evaluasi menggunakan sesuatu seperti algoritma Remez untuk membatasi kesalahan absolut maksimum. Lebih banyak dapat ditemukan dalam makalah Intel ini. Verifikasi formal fungsi trigonometri titik mengambang .
sumber
Sebagian besar perpustakaan trigonometri komputer didasarkan pada perkiraan polinomial , yang memberikan keseimbangan terbaik antara kecepatan dan akurasi. Sebagai contoh, selusin atau lebih operasi multiplikasi dan penambahan / pengurangan cukup untuk memberikan akurasi presisi tunggal penuh untuk sinus dan kosinus.
sumber