거리 기준이 충족되는지 확인하기 위해 계산을 설정하는 데 관심이 있습니다. 즉, 벡터 와 다른 벡터 x j 사이의 거리는 r m a x 값보다 작아야 합니다. 내 데이터는 직교 좌표 격자에 따라 분할됩니다. 내 컷오프가 가장 가까운 이웃 좌표의 끝점 사이의 거리보다 작기 때문에 일이 올바르게 설정되었는지 확인하기 위해 "octant"변수를 추가하고 싶습니다.
if octant[j] in allowed_list continue
"단락"으로
if dist(x[i], x[j]) < r_max
내 질문은 : 부동 소수점 연산과 비교하여 부울 조회 및 비교가 얼마나 효율적으로 계산됩니까? 이것이 현대 건축에서 할 가치가 있습니까?
3
코드를 기꺼이 분기하고 테스트 하시겠습니까? "이 방법은 편도 또는 다른 방법으로 코딩하는 것이 더 낫습니까?" 질문 유형은 "시도하고 벤치마킹"입니다.
—
Geoff Oxberry
그냥 내 2 센트. Geoff가 쓴 것처럼, 이런 종류의 조언은 C ++ 코드와 관련하여 stackoverflow에 대해 비슷한 질문을 할 때 항상 얻은 것입니다. 먼저 모든 것을 코딩하고 코드를 구성하여 재사용 할 수 있도록 모듈화하고 다시 리팩토링을 시작하십시오. 80-20 규칙이 있습니다 : 소프트웨어는 코드의 20 %에 80 %의 시간을 소비합니다. 구조물이 올라올 때까지 기다린 다음 변경, 테스트, 변경 및 테스트하십시오.
—
tmaric
@ GeoffOxberry : 내 질문은 그렇게 구체적이지 않습니다 : 부동 소수점 연산과 비교하여 부울 검사를 수행하는 데 하드웨어 또는 컴파일러의 이점이 있는지 알고 싶습니다.
—
aeismail 2016 년
그러나 귀하의 질문은 너무 일반적입니다. 구체적인 코드를 보지 않고서는 아무도 말할 수 없습니다. 최고의 프로그래머조차도 코드의 병목 현상이 프로파일 링없이 어디에 있는지 알 수 없다는 규칙이 있습니다. 나는 지난 25 년 동안 프로그래밍을 해왔고 그것이 사실이라는 것을 알고있다.
—
Wolfgang Bangerth 2016 년