For my application, I need to do log(GetRingDimension()/2)
to perform algebraic operations that require iterating through every single slot in my ciphertext.
However, when I try to generate the rotation keys, my program will get killed, which I suspect is a memory issue.
Following are the parameters I am trying to use:
usint depth = levelsAvailableAfterBootstrap + FHECKKSRNS::GetBootstrapDepth(levelBudget, secretKeyDist);
using levelsAvailableAfterBootstrap = 14;
std::vector<uint32_t> levelBudget = {3, 3};
uint32_t approxBootstrapDepth = 9;
std::vector<uint32_t> bsgsDim = {0, 0};
usint firstMod = 60;
parameters.SetKeySwitchTechnique(HYBRID);
parameters.SetScalingTechnique(rescaleTech);
usint ScaleModSize = 50;
I will get 131072 from GetRingDimension()
after setting all the parameters. Is there a way to estimate my rotation key memory size and reduce the memory size of them?