I noticed EvalFastRotation takes as input the cyclotomic order, but everywhere I can see in the codebase this is set to cc→GetRingDimension() * 2. Is there a reason to make this a settable argument instead of computing it as 2N inside the function?
I agree with you. I do not see and cannot think of a practical reason why EvalFastRotation needs to have the cyclotomic order as an argument. The only settings where it may make sense are when we either want to support ring switching or extension fields for CKKS. Neither are currently supported by OpenFHE. Moreover, its extended version EvalFastRotationExt does not take the cyclotomic order as an argument.
I do not remember why it was added. It seems like this API came from PALISADE, and we overlooked this issue when we were making major changes to the API for the first version of OpenFHE. I suggest creating a github issue for this so we could revisit the API of EvalFastRotation next time we change the API of OpenFHE.