where the first term should be s_ij_ik. The existing test did not catch this bug as the algorithm was still producing correct results since this one term was part of a larger accumulation of terms of which we only take the sign.
To expose the bug in the new test we use a problem size of n=3, the smallest size for the algorithm to run since it loops over triplets of images. In this case the test fails with the bug still in place.
There was a small bug in part of the J-sync algorithm used for Cn symmetric molecules. In particular, there was an error in this line https://github.com/ComputationalCryoEM/ASPIRE-Python/blob/554601bd5f91d33aab09efe0d80644360f6f3663/src/aspire/abinitio/commonline_c3_c4.py#L788
where the first term should be
s_ij_ik
. The existing test did not catch this bug as the algorithm was still producing correct results since this one term was part of a larger accumulation of terms of which we only take the sign.To expose the bug in the new test we use a problem size of n=3, the smallest size for the algorithm to run since it loops over triplets of images. In this case the test fails with the bug still in place.