ECM-9.0 SIMD/non-SIMD mismatch in affine gradient search
It seems setting the following two result in different encoding results, although one would expect the results to be identical:
Alternative 1: m_EqualCoeffComputer = xEqualCoeffComputer;
Alternative 2: m_EqualCoeffComputer = simdEqualCoeffComputer<vext>;
The effect can be noticed by commenting out the assignment of the SIMD function in _initAffineGradientSearchX86() as follows (or by running the software without SIMD optimizations):
template <X86_VEXT vext>
void AffineGradientSearch::_initAffineGradientSearchX86()
{
#if !AFFINE_ENC_OPT
m_HorizontalSobelFilter = simdHorizontalSobelFilter<vext>;
m_VerticalSobelFilter = simdVerticalSobelFilter<vext>;
#endif
// m_EqualCoeffComputer = simdEqualCoeffComputer<vext>;
}