Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Meniru Aritmetik Ketepatan Berganda Menggunakan Terapung Ketepatan Tunggal?

Bagaimana untuk Meniru Aritmetik Ketepatan Berganda Menggunakan Terapung Ketepatan Tunggal?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 12:24:30699semak imbas

 How to Emulate Double-Precision Arithmetic Using Single-Precision Floats?

Meniru Aritmetik Ketepatan Berganda dengan Terapung

Dalam senario tertentu, sistem perkakasan terbenam dengan sokongan titik terapung terhad mungkin menghadapi keperluan untuk berganda -fungsi ketepatan. Ini menimbulkan persoalan bagaimana untuk mencapainya menggunakan hanya operasi titik terapung ketepatan tunggal.

Untuk mencontohi nilai ketepatan dua kali, pendekatannya ialah menggunakan struktur yang mengandungi tuple dua terapung ketepatan tunggal, mewakili bahagian tinggi dan rendah ganda. Perbandingan boleh dilakukan menggunakan susunan leksikografik.

Walau bagaimanapun, operasi tambah memberikan cabaran. Asas untuk penambahan perlu dipertimbangkan dengan teliti untuk memastikan ketepatan. Adalah disyorkan untuk menggunakan gandaan FLT_MAX (nilai maksimum yang boleh diwakili oleh apungan ketepatan tunggal) untuk mengelakkan aliran bawah atau limpahan perantaraan.

Untuk mengesan pembawa, seseorang boleh menolak jumlah dua apungan daripada nilai yang dijangkakan. Jika hasilnya kurang daripada atau sama dengan sifar, bawa telah berlaku.

Rujukan di bawah memberikan cerapan berharga tentang teknik untuk emulasi berketepatan dua kali menggunakan terapung ketepatan tunggal pada seni bina GPU:

  • https://hal.archives-ouvertes.fr/hal-00021443
  • http://andrewthall.org/papers/df64_qf128.pdf

Atas ialah kandungan terperinci Bagaimana untuk Meniru Aritmetik Ketepatan Berganda Menggunakan Terapung Ketepatan Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn