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

    @Override
    public LogProbGraph logProbGraph() {
        final DoublePlaceholderVertex xPlaceholder = new DoublePlaceholderVertex(this.getShape());
        final DoublePlaceholderVertex ratePlaceholder = new DoublePlaceholderVertex(rate.getShape());

        return LogProbGraph.builder()
            .input(this, xPlaceholder)
            .input(rate, ratePlaceholder)
            .logProbOutput(Exponential.logProbOutput(xPlaceholder, ratePlaceholder))
            .build();
    }

    public  ExponentialVertex(@LoadShape long[] tensorShape,
                             @LoadVertexParam(RATE_NAME) Vertex<DoubleTensor, ?> rate);
    @ExportVertexToPythonBindings public  ExponentialVertex(Vertex<DoubleTensor, ?> rate);
    public  ExponentialVertex(double rate);

}