diff --git a/circuits/ckks/bootstrapping/evaluator.go b/circuits/ckks/bootstrapping/evaluator.go index 8db38f42..606af81c 100644 --- a/circuits/ckks/bootstrapping/evaluator.go +++ b/circuits/ckks/bootstrapping/evaluator.go @@ -134,11 +134,12 @@ func (eval Evaluator) ShallowCopy() *Evaluator { heEvaluator := eval.Evaluator.ShallowCopy() paramsN1 := eval.ResidualParameters + paramsN2 := eval.BootstrappingParameters var DomainSwitcher ckks.DomainSwitcher if paramsN1.RingType() == ring.ConjugateInvariant { var err error - if DomainSwitcher, err = ckks.NewDomainSwitcher(eval.Parameters.BootstrappingParameters, eval.EvkCmplxToReal, eval.EvkRealToCmplx); err != nil { + if DomainSwitcher, err = ckks.NewDomainSwitcher(paramsN2, eval.EvkCmplxToReal, eval.EvkRealToCmplx); err != nil { panic(fmt.Errorf("cannot NewBootstrapper: ckks.NewDomainSwitcher: %w", err)) } } @@ -153,8 +154,8 @@ func (eval Evaluator) ShallowCopy() *Evaluator { xPow2N2: eval.xPow2N2, xPow2InvN2: eval.xPow2InvN2, DomainSwitcher: DomainSwitcher, - DFTEvaluator: dft.NewEvaluator(paramsN1, heEvaluator), - Mod1Evaluator: mod1.NewEvaluator(heEvaluator, polynomial.NewEvaluator(paramsN1, heEvaluator), eval.Mod1Parameters), + DFTEvaluator: dft.NewEvaluator(paramsN2, heEvaluator), + Mod1Evaluator: mod1.NewEvaluator(heEvaluator, polynomial.NewEvaluator(paramsN2, heEvaluator), eval.Mod1Parameters), SkDebug: eval.SkDebug, } }