class_docstr: Implements DPQuery for discrete distributed Gaussian sum queries.
  
  For each local record, we check the L2 norm bound and add discrete Gaussian
  noise. In particular, this DPQuery does not perform L2 norm clipping and the
  norms of the input records are expected to be bounded.
class_docstr_tok: ["Implements","DPQuery","for","discrete","distributed","Gaussian","sum","queries",".","For","each","local","record",",","we","check","the","L2","norm","bound","and","add","discrete","Gaussian","noise",".","In","particular",",","this","DPQuery","does","not","perform","L2","norm","clipping","and","the","norms","of","the","input","records","are","expected","to","be","bounded","."]
docstr: Initializes the DistributedDiscreteGaussianSumQuery.
  
  Args:
    l2_norm_bound: The L2 norm bound to verify for each record.
    local_stddev: The stddev of the local discrete Gaussian noise.
docstr_tok: ["Initializes","the","DistributedDiscreteGaussianSumQuery",".","Args",":","l2_norm_bound",":","The","L2","norm","bound","to","verify","for","each","record",".","local_stddev",":","The","stddev","of","the","local","discrete","Gaussian","noise","."]
code: def __init__(self, l2_norm_bound, local_stddev):
      """Initializes the DistributedDiscreteGaussianSumQuery.
  
      Args:
        l2_norm_bound: The L2 norm bound to verify for each record.
        local_stddev: The stddev of the local discrete Gaussian noise.
      """
      self._l2_norm_bound = l2_norm_bound
      self._local_stddev = local_stddev
  
file_path: privacy/tensorflow_privacy/privacy/dp_query/distributed_discrete_gaussian_query.py
imports: import collections
  import dp_accounting
  import tensorflow
  from tensorflow_privacy.privacy.dp_query import discrete_gaussian_utils
  from tensorflow_privacy.privacy.dp_query import dp_query
label_desc: Use image node_id 1 to create a new DistributedDiscreteGaussianSumQuery object from inherited base classes: dp_query with example: obj = DistributedDiscreteGaussianSumQuery(l2_norm_bound, local_stddev)