divergenceOfCiphertextDouble function
Kullback-Leibler Divergence between Ciphertext
and double
See divergence for more details.
Implementation
Ciphertext divergenceOfCiphertextDouble(
Afhe fhe, Ciphertext x, Ciphertext logX, double q) {
Plaintext logQ = fhe.encodeDouble(log(q));
Ciphertext subLog = fhe.subtractPlain(logX, logQ);
return fhe.multiply(x, subLog);
}