Masalahnya ditunjukkan oleh kata "terkondisi dengan baik." Ini masalah aritmatika komputer, bukan matematika.
Berikut adalah fakta dasar yang perlu dipertimbangkan:
Satu radian di bumi membentang hampir 10 ^ 7 meter.
Fungsi cosinus untuk argumen x dekat 0 kira-kira sama dengan 1 - x ^ 2/2.
Titik apung presisi ganda memiliki sekitar 15 digit desimal presisi.
Poin (2) dan (3) menyiratkan bahwa ketika x sekitar satu meter, atau 10 ^ -7 radian (poin 1), hampir semua presisi hilang: 1 - (10 ^ -7) ^ 2 = 1 - 10 ^ - 14 adalah perhitungan di mana 14 dari 15 digit signifikan pertama dibatalkan, hanya menyisakan satu digit untuk mewakili hasilnya. Membalik-balik ini (yang artinya cosinus terbalik, "acos", artinya) menghitung komputasi untuk sudut yang sesuai dengan jarak meteran panjang tidak dapat dilakukan dengan akurasi yang berarti. (Dalam kasus-kasus buruk tertentu kehilangan presisi memberikan nilai di mana AC bahkan tidak didefinisikan, sehingga kode akan rusak dan tidak memberikan jawaban, jawaban omong kosong, atau crash mesin.) Pertimbangan serupa menyarankan Anda harus menghindari menggunakan cosinus terbalik jika jarak kurang dari beberapa ratus meter terlibat, tergantung pada seberapa presisi Anda bersedia kehilangan.
Peran yang dimainkan oleh ACOS dalam rumus law-of-cosines naif adalah untuk mengubah sudut ke jarak. Peran itu dimainkan oleh atan2 dalam formula haversine. Garis singgung dari sudut kecil x kira-kira sama dengan x itu sendiri. Akibatnya, garis singgung terbalik dari suatu bilangan, yaitu kira-kira bilangan itu, dihitung secara esensial tanpa kehilangan presisi. Inilah sebabnya mengapa rumus haversine, meskipun secara matematis setara dengan rumus hukum cosinus, jauh lebih unggul untuk jarak kecil (pada urutan 1 meter atau kurang).
Berikut ini adalah perbandingan dari dua rumus menggunakan 100 pasangan titik acak di dunia (menggunakan perhitungan presisi ganda Mathematica).
Anda dapat melihat bahwa untuk jarak kurang dari 0,5 meter, kedua formula berbeda. Di atas 0,5 meter mereka cenderung setuju. Untuk menunjukkan seberapa dekat mereka sepakat, plot berikutnya menunjukkan rasio hukum cosinus: hasil haversine untuk 100 pasangan titik acak lainnya, dengan garis lintang dan bujur mereka secara acak berbeda hingga 5 meter.
Ini menunjukkan bahwa rumus hukum cosinus baik untuk 3-4 tempat desimal setelah jarak melebihi 5-10 meter. Jumlah tempat desimal akurasi meningkat secara kuadrat; jadi pada 50-100 meter (satu urutan magnitudo) Anda mendapatkan akurasi 5-6 dp (dua orde magnitudo); pada 500-1000 meter Anda mendapatkan 7-8 dp, dll.