Чтобы проверить, находится ли точка (x, y, z) в сфере, центрированной по (a, b, c) с радиусом r, выполняется тест:
(x - a)^2 + (y - b)^2 + (z - c)^2 < r^2
Проверка, находится ли точка в нескольких сферах, - это просто and
похожих выражений.Это требует только вычитания, умножения и сравнения, никаких специальных аппаратных функций не требуется.Вы можете написать ядро CUDA, которое делает это без проблем.
Ближайшее «специализированное оборудование», которое может быть применимо, это функция rsqrtf()
в CUDA, которая вычисляет 1 / sqrt (x) с одинарной точностью дляхорошая точность с одной инструкцией по аппаратному обеспечению.Вы можете использовать это, чтобы помочь вычислить значения z для заданных значений x и y сфер, это может быть полезно для более сложных алгоритмов генерации точек для этой задачи.