class_docstr: Distribution over sorted coalescent times given irregular sampled
  ``leaf_times`` and constant population size.
  
  Sample values will be **sorted** sets of binary coalescent times. Each
  sample ``value`` will have cardinality ``value.size(-1) =
  leaf_times.size(-1) - 1``, so that phylogenies are complete binary trees.
  This distribution can thus be batched over multiple samples of phylogenies
  given fixed (number of) leaf times, e.g. over phylogeny samples from BEAST
  or MrBayes.
  
  **References**
  
  [1] J.F.C. Kingman (1982)
      "On the Genealogy of Large Populations"
      Journal of Applied Probability
  [2] J.F.C. Kingman (1982)
      "The Coalescent"
      Stochastic Processes and their Applications
  
  :param torch.Tensor leaf_times: Vector of times of sampling events, i.e.
      leaf nodes in the phylogeny. These can be arbitrary real numbers with
      arbitrary order and duplicates.
  :param torch.Tensor rate: Base coalescent rate (pairwise rate of
      coalescence) under a constant population size model. Defaults to 1.
class_docstr_tok: ["Distribution","over","sorted","coalescent","times","given","irregular","sampled","``","leaf_times","``","and","constant","population","size",".","Sample","values","will","be","*","*","sorted","*","*","sets","of","binary","coalescent","times",".","Each","sample","``","value","``","will","have","cardinality","``","value.size","(","-1",")","=","leaf_times.size","(","-1",")","-","1","``",",","so","that","phylogenies","are","complete","binary","trees",".","This","distribution","can","thus","be","batched","over","multiple","samples","of","phylogenies","given","fixed","(","number","of",")","leaf","times",",","e.g",".","over","phylogeny","samples","from","BEAST","or","MrBayes",".","*","*","References","*","*","[","1","]","J.F.C",".","Kingman","(","1982",")","``","On","the","Genealogy","of","Large","Populations","''","Journal","of","Applied","Probability","[","2","]","J.F.C",".","Kingman","(","1982",")","``","The","Coalescent","''","Stochastic","Processes","and","their","Applications",":","param","torch.Tensor","leaf_times",":","Vector","of","times","of","sampling","events",",","i.e",".","leaf","nodes","in","the","phylogeny",".","These","can","be","arbitrary","real","numbers","with","arbitrary","order","and","duplicates",".",":","param","torch.Tensor","rate",":","Base","coalescent","rate","(","pairwise","rate","of","coalescence",")","under","a","constant","population","size","model",".","Defaults","to","1","."]
code: def support(self):
      return CoalescentTimesConstraint(self.leaf_times)
  
imports: import functools
  import weakref
  from collections import namedtuple
  import torch
  from torch.distributions import constraints
  from pyro.distributions.util import broadcast_shape, is_validation_enabled
  from pyro.ops.special import safe_log
  from .torch_distribution import TorchDistribution
label_desc: Use image node_id 2 for calling the CoalescentTimes obj's underlying member method code with example usage: obj.support() and returns: CoalescentTimesConstraint