машинний нуль

Подання машинного нуля в числах з плаваючою комою при двозначному порядку

Машинний нуль (машинний нуль) - числове значення з таким негативним порядком, яке сприймається машиною як нуль [1].

Машинне епсилон (англ. Machine epsilon) - числове значення, менше якого неможливо ставити відносну точність для будь-якого алгоритму, що повертає речові числа. Абсолютне значення «машинного епсилон» залежить від розрядності сітки застосовується ЕОМ. типу (розрядності) використовуваних при розрахунках чисел, і від прийнятої в конкретному трансляторі структури подання дійсних чисел (кількості біт, що відводяться на мантиссу і на порядок). [2] Формально машинне епсилон зазвичай визначають як мінімальне з чисел eps, для якого 1 + eps> 1 при машинних розрахунках з числами даного типу [3]. Альтернативне визначення - максимальне позитивне eps, для якого справедливо рівність 1 + eps = 1.

Практична важливість машинного епсилон пов'язана з тим, що два (відмінних від нуля) числа є однаковими з точки зору машинної арифметики, якщо їх відносна різниця по модулю менше (при визначенні першого типу) або не перевищує (при визначенні другого типу) машинного епсилон.

У мовах програмування

У мові Сі існують граничні константи FLT_EPSILON, DBL_EPSILON і LDBL_EPSILON є «машинними епсилон», відповідними першим визначенням: FLT_EPSILON = 2 -23 ≈ 1.19e-07 - це машинне епсилон для чисел типу float (32 біта), DBL_EPSILON = 2 -52 ≈ 2.20e-16 - для типу double (64 біта), і LDBL_EPSILON = 2 -63 ≈ 1.08e-19 - для типу long double (80 біт). При альтернативному визначенні відповідні машинними епсилон будуть удвічі менше: 2 -24. 2 -53 і 2 -64 .В деяких компіляторах Сі (наприклад gcc, Intel's C / C ++ compiler) допускається використання змінних четверний точності (_float128, _Quad). Відповідні машинні епсилон рівні 2 -112 ≈ 1.93e-34 і 2 -113 ≈ 9.63e-35.

Приклад обчислення машинного Епсілон (не плутати з машинним нулем) на мові Сі.

Схожі статті