부동 소수점의 모듈러스를 취하는 빠른 방법이 있습니까?특수 소수의 부동 소수점 모듈러스를 취하는 Fast, Vectorizable 메서드?
정수에는 메르 센 소수의 트릭이 있으므로 나눗셈없이 y = x MOD 2^31-1을 계산할 수 있습니다. integer trick
부동 소수점 숫자에 유사한 트릭을 적용 할 수 있습니까?
벡터/SIMD 연산으로 변환하거나 GPGPU 코드로 옮길 수있는 방식으로하는 것이 바람직합니다. 이는 부동 소수점 데이터에 대한 정수 계산을 사용하지 않습니다.
관심있는 소수는 2^7-1 및 2^31-1이 될 수 있습니다. 그러나 부동 소수점 숫자가 더 효율적인 경우 그 값은 환영받을 수 있습니다.
이 알고리즘의 한 가지 용도는 입력 부동 소수점 숫자가 알고리즘으로 읽혀질 때 실행중인 "체크섬"을 계산하는 것입니다. 너무 많은 계산 기능을 사용하지 않으려면이 가벼운 것을 유지하고 싶습니다.
큰 숫자, 특히 2^127-1에 대해서는 비슷한 기술이 사용됩니다. 불행히도 종이의 수학은 나를 넘어서서 더 작은 소수로 변환하는 방법을 찾을 수 없었습니다. Example of floating point MOD 2^127 - 1 - HASH127
나누기없이 모든 2의 거듭 제곱 값을 계산할 수 있습니다. 당신이하려는 질문을하는 것이 확실합니까? 저는 여러분이 실제로 mod^2^7 - 1과^2^31 - 1을 찾고 있다고 생각합니다. –
2^7 및 2^31은 소수가 아닙니다. 질문을 좀 더 정확하게 다시 표현할 수 있습니까? –
당신은 어떤 명령 집합을 타겟팅하고 있습니까? – user287792