func lattigo_newParametersFromLogModuli()

in src/gowrapper/ckks/params.go [100:132]


func lattigo_newParametersFromLogModuli(logN uint64, logQi *C.constUChar, numQi uint8, logPi *C.constUChar, numPi uint8, logScale uint8) Handle6 {
	size := unsafe.Sizeof(uint8(0))

	LogQi := make([]int, numQi)
	qiPtr := uintptr(unsafe.Pointer(logQi))
	for i := range LogQi {
		LogQi[i] = int(*(*uint8)(unsafe.Pointer(qiPtr + size*uintptr(i))))
	}

	LogPi := make([]int, numPi)
	piPtr := uintptr(unsafe.Pointer(logPi))
	for i := range LogPi {
		LogPi[i] = int(*(*uint8)(unsafe.Pointer(piPtr + size*uintptr(i))))
	}

	var paramsLit ckks.ParametersLiteral
	paramsLit = ckks.ParametersLiteral{
		LogN:     int(logN),
		LogQ:     LogQi,
		LogP:     LogPi,
		Sigma:    rlwe.DefaultSigma,
		LogSlots: int(logN) - 1,
		Scale:    float64(uint64(1) << uint64(logScale)),
	}

	var params ckks.Parameters
	var err error
	params, err = ckks.NewParametersFromLiteral(paramsLit)
	if err != nil {
		panic(err)
	}
	return marshal.CrossLangObjMap.Add(unsafe.Pointer(&params))
}