Как сравнивать double в C++ не на равенство?
double x = *(*(array) + i);
double y = *(*(array + 1) + i);
double x_squared = pow(x, 2);
double y_squared = pow(y, 2);
if ((x_squared + y_squared < 9) && \
(x > 0 && y > 0 && y_squared > 2.25 - pow(x - 1.5, 2)) || \
(x < 0 && y < 0 && y_squared > 2.25 - pow(x + 1.5, 2)) || \
(x < 0 && y > 0) || \
(x > 0 && y < 0))
Очевидно, что на равенство double в плюсах сранивается с помощью эпсилона. Писал лабу, где нужно работать с double и делать проверки, что точка принадлежит заданной области. Преподаватель предъявляет, что не использую эпсилон. Где только не искал код, который при сравнении двух даблов использует эпсилон. Как его здесь реализовать? На ум пришло только что-то подобное:
if ((x_squared + y_squared < 9 - epsilon) && \
((x > 0) && (y > 0) && (y_squared > 2.25 - pow(x - 1.5, 2) + epsilon)) || \
((x < 0) && (y < 0) && (y_squared > 2.25 - pow(x + 1.5, 2) + epsilon)) || \
((x < 0) && (y > 0)) || \
((x > 0) && (y < 0)))