divergenceOfCiphertextVecDouble function

List<Ciphertext> divergenceOfCiphertextVecDouble(
  1. Afhe fhe,
  2. List<Ciphertext> x,
  3. List<Ciphertext> logX,
  4. List<double> q,
)

Kullback-Leibler Divergence for encrypted list of doubles

Apply the sum of List<Plaintext> before returning.

See divergence for more details.

Implementation

List<Ciphertext> divergenceOfCiphertextVecDouble(
    Afhe fhe, List<Ciphertext> x, List<Ciphertext> logX, List<double> q) {
  if (x.length != logX.length || x.length != q.length) {
    throw ArgumentError('The length of x and logX and q must be the same.');
  }
  List<Ciphertext> result = [];
  for (int i = 0; i < x.length; i++) {
    result.add(divergenceOfCiphertextDouble(fhe, x[i], logX[i], q[i]));
  }
  return result;
}