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

    @Override
    public LogProbGraph logProbGraph() {
        final DoublePlaceholderVertex xPlaceHolder = new DoublePlaceholderVertex(this.getShape());
        final DoublePlaceholderVertex alphaPlaceHolder = new DoublePlaceholderVertex(alpha.getShape());
        final DoublePlaceholderVertex betaPlaceHolder = new DoublePlaceholderVertex(beta.getShape());

        return LogProbGraph.builder()
            .input(this, xPlaceHolder)
            .input(alpha, alphaPlaceHolder)
            .input(beta, betaPlaceHolder)
            .logProbOutput(Beta.logProbOutput(xPlaceHolder, alphaPlaceHolder, betaPlaceHolder))
            .build();
    }

    public  BetaVertex(@LoadShape long[] tensorShape,
                      @LoadVertexParam(ALPHA_NAME) Vertex<DoubleTensor, ?> alpha,
                      @LoadVertexParam(BETA_NAME) Vertex<DoubleTensor, ?> beta);
    @ExportVertexToPythonBindings public  BetaVertex(Vertex<DoubleTensor, ?> alpha, Vertex<DoubleTensor, ?> beta);
    public  BetaVertex(DoubleVertex alpha, double beta);
    public  BetaVertex(double alpha, DoubleVertex beta);
    public  BetaVertex(double alpha, double beta);
    public  BetaVertex(long[] tensorShape, DoubleVertex alpha, double beta);
    public  BetaVertex(long[] tensorShape, double alpha, DoubleVertex beta);
    public  BetaVertex(long[] tensorShape, double alpha, double beta);

}