class DirichletVertex extends VertexImpl<DoubleTensor, DoubleVertex> implements DoubleVertex, Differentiable, ProbabilisticDouble, SamplableWithManyScalars<DoubleTensor>, LogProbGraphSupplier {

    @Override
    public LogProbGraph logProbGraph() {
        DoublePlaceholderVertex xPlaceholder = new DoublePlaceholderVertex(this.getShape());
        DoublePlaceholderVertex concentrationPlaceholder = new DoublePlaceholderVertex(concentration.getShape());

        return LogProbGraph.builder()
            .input(this, xPlaceholder)
            .input(concentration, concentrationPlaceholder)
            .logProbOutput(Dirichlet.logProbOutput(xPlaceholder, concentrationPlaceholder))
            .build();
    }

    public  DirichletVertex(@LoadShape long[] tensorShape,
                           @LoadVertexParam(CONCENTRATION_NAME) Vertex<DoubleTensor, ?> concentration);
    @ExportVertexToPythonBindings public  DirichletVertex(Vertex<DoubleTensor, ?> concentration);
    public  DirichletVertex(long[] tensorShape, double concentration);
    public  DirichletVertex(double... concentration);

}