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

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

        return LogProbGraph.builder()
            .input(this, valuePlaceholder)
            .input(p, pPlaceholder)
            .logProbOutput(Geometric.logProbOutput(valuePlaceholder, pPlaceholder))
            .build();
    }

    public  GeometricVertex(@LoadShape long[] tensorShape,
                           @LoadVertexParam(P_NAME) Vertex<DoubleTensor, ?> p);
    public  GeometricVertex(long[] tensorShape, double p);
    @ExportVertexToPythonBindings public  GeometricVertex(Vertex<DoubleTensor, ?> p);
    public  GeometricVertex(double p);

}