Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
prop_mul_distance s p1 p2 =
distance (s *. p1) (s *. p2) == (abs s) * (distance p1 p2)
Очевидно, что требуемый уровень точности сильно зависит от масштаба чисел, с которыми необходимо работать.
abs(a-b) < min(abs(a), abs(b)) * 1e-10
circaEq t x y = abs (x - y) < t * (x + y)circaEq x y precision =
{
let mn, mx = min(|x|, |y|), max(|x|, |y|)
let result = x*y > 0 && max/min - 1 < precision
result
}
Приближенное сравнение чисел в Haskell