class PoissonVertex extends VertexImpl<IntegerTensor, IntegerVertex> implements IntegerVertex, ProbabilisticInteger, SamplableWithManyScalars<IntegerTensor>, LogProbGraphSupplier {

    @Override
    public LogProbGraph logProbGraph() {
        IntegerPlaceholderVertex valuePlaceholder = new IntegerPlaceholderVertex(this.getShape());
        DoublePlaceholderVertex muPlaceholder = new DoublePlaceholderVertex(mu.getShape());

        return LogProbGraph.builder()
            .input(this, valuePlaceholder)
            .input(mu, muPlaceholder)
            .logProbOutput(Poisson.logProbOutput(valuePlaceholder, muPlaceholder))
            .build();
    }

    public  PoissonVertex(@LoadShape long[] shape,
                         @LoadVertexParam(MU_NAME) Vertex<DoubleTensor, ?> mu);
    public  PoissonVertex(long[] shape, double mu);
    @ExportVertexToPythonBindings public  PoissonVertex(Vertex<DoubleTensor, ?> mu);
    public  PoissonVertex(double mu);

}