public class org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource extends org.apache.lucene.spatial.bbox.BBoxSimilarityValueSource
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource
  super_class: org.apache.lucene.spatial.bbox.BBoxSimilarityValueSource
{
  private final boolean isGeo;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.locationtech.spatial4j.shape.Rectangle queryExtent;
    descriptor: Lorg/locationtech/spatial4j/shape/Rectangle;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double queryArea;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double minSideLength;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double queryTargetProportion;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 60
            ldc Lorg/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.lucene.spatial.ShapeValuesSource, boolean, org.locationtech.spatial4j.shape.Rectangle, double, double);
    descriptor: (Lorg/apache/lucene/spatial/ShapeValuesSource;ZLorg/locationtech/spatial4j/shape/Rectangle;DD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
        start local 1 // org.apache.lucene.spatial.ShapeValuesSource rectValueSource
        start local 2 // boolean isGeo
        start local 3 // org.locationtech.spatial4j.shape.Rectangle queryExtent
        start local 4 // double queryTargetProportion
        start local 6 // double minSideLength
         0: .line 83
            aload 0 /* this */
            aload 1 /* rectValueSource */
            invokespecial org.apache.lucene.spatial.bbox.BBoxSimilarityValueSource.<init>:(Lorg/apache/lucene/spatial/ShapeValuesSource;)V
         1: .line 84
            aload 0 /* this */
            iload 2 /* isGeo */
            putfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.isGeo:Z
         2: .line 85
            aload 0 /* this */
            dload 6 /* minSideLength */
            putfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.minSideLength:D
         3: .line 86
            aload 0 /* this */
            aload 3 /* queryExtent */
            putfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
         4: .line 87
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* queryExtent */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            aload 3 /* queryExtent */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getHeight:()D
            invokevirtual org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.calcArea:(DD)D
            putfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryArea:D
         5: .line 88
            getstatic org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.$assertionsDisabled:Z
            ifne 6
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryArea:D
            dconst_0
            dcmpl
            ifge 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 89
      StackMap locals: org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource org.apache.lucene.spatial.ShapeValuesSource int org.locationtech.spatial4j.shape.Rectangle double double
      StackMap stack:
            aload 0 /* this */
            dload 4 /* queryTargetProportion */
            putfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryTargetProportion:D
         7: .line 90
            dload 4 /* queryTargetProportion */
            dconst_0
            dcmpg
            iflt 8
            dload 4 /* queryTargetProportion */
            dconst_1
            dcmpl
            ifle 9
         8: .line 91
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "queryTargetProportion must be >= 0 and <= 1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 92
      StackMap locals:
      StackMap stack:
            return
        end local 6 // double minSideLength
        end local 4 // double queryTargetProportion
        end local 3 // org.locationtech.spatial4j.shape.Rectangle queryExtent
        end local 2 // boolean isGeo
        end local 1 // org.apache.lucene.spatial.ShapeValuesSource rectValueSource
        end local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0                   this  Lorg/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource;
            0   10     1        rectValueSource  Lorg/apache/lucene/spatial/ShapeValuesSource;
            0   10     2                  isGeo  Z
            0   10     3            queryExtent  Lorg/locationtech/spatial4j/shape/Rectangle;
            0   10     4  queryTargetProportion  D
            0   10     6          minSideLength  D
    MethodParameters:
                       Name  Flags
      rectValueSource        
      isGeo                  
      queryExtent            
      queryTargetProportion  
      minSideLength          

  public void <init>(org.apache.lucene.spatial.ShapeValuesSource, org.locationtech.spatial4j.shape.Rectangle);
    descriptor: (Lorg/apache/lucene/spatial/ShapeValuesSource;Lorg/locationtech/spatial4j/shape/Rectangle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
        start local 1 // org.apache.lucene.spatial.ShapeValuesSource rectValueSource
        start local 2 // org.locationtech.spatial4j.shape.Rectangle queryExtent
         0: .line 97
            aload 0 /* this */
            aload 1 /* rectValueSource */
            iconst_1
            aload 2 /* queryExtent */
            ldc 0.25
            dconst_0
            invokespecial org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.<init>:(Lorg/apache/lucene/spatial/ShapeValuesSource;ZLorg/locationtech/spatial4j/shape/Rectangle;DD)V
         1: .line 98
            return
        end local 2 // org.locationtech.spatial4j.shape.Rectangle queryExtent
        end local 1 // org.apache.lucene.spatial.ShapeValuesSource rectValueSource
        end local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource;
            0    2     1  rectValueSource  Lorg/apache/lucene/spatial/ShapeValuesSource;
            0    2     2      queryExtent  Lorg/locationtech/spatial4j/shape/Rectangle;
    MethodParameters:
                 Name  Flags
      rectValueSource  
      queryExtent      

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
        start local 1 // java.lang.Object o
         0: .line 102
            aload 0 /* this */
            aload 1 /* o */
            invokespecial org.apache.lucene.spatial.bbox.BBoxSimilarityValueSource.equals:(Ljava/lang/Object;)Z
            ifne 1
            iconst_0
            ireturn
         1: .line 104
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource
            astore 2 /* that */
        start local 2 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource that
         2: .line 106
            aload 2 /* that */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.minSideLength:D
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.minSideLength:D
            invokestatic java.lang.Double.compare:(DD)I
            ifeq 3
            iconst_0
            ireturn
         3: .line 107
      StackMap locals: org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource
      StackMap stack:
            aload 2 /* that */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryTargetProportion:D
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryTargetProportion:D
            invokestatic java.lang.Double.compare:(DD)I
            ifeq 4
            iconst_0
            ireturn
         4: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            aload 2 /* that */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.equals:(Ljava/lang/Object;)Z
            ifne 5
            iconst_0
            ireturn
         5: .line 110
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource that
        end local 1 // java.lang.Object o
        end local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource;
            0    6     1     o  Ljava/lang/Object;
            2    6     2  that  Lorg/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
         0: .line 115
            aload 0 /* this */
            invokespecial org.apache.lucene.spatial.bbox.BBoxSimilarityValueSource.hashCode:()I
            istore 1 /* result */
        start local 1 // int result
         1: .line 117
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokevirtual java.lang.Object.hashCode:()I
            iadd
            istore 1 /* result */
         2: .line 118
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.minSideLength:D
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 2 /* temp */
        start local 2 // long temp
         3: .line 119
            bipush 31
            iload 1 /* result */
            imul
            lload 2 /* temp */
            lload 2 /* temp */
            bipush 32
            lushr
            lxor
            l2i
            iadd
            istore 1 /* result */
         4: .line 120
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryTargetProportion:D
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 2 /* temp */
         5: .line 121
            bipush 31
            iload 1 /* result */
            imul
            lload 2 /* temp */
            lload 2 /* temp */
            bipush 32
            lushr
            lxor
            l2i
            iadd
            istore 1 /* result */
         6: .line 122
            iload 1 /* result */
            ireturn
        end local 2 // long temp
        end local 1 // int result
        end local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource;
            1    7     1  result  I
            3    7     2    temp  J

  protected java.lang.String similarityDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
         0: .line 127
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryTargetProportion:D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource;

  protected double score(org.locationtech.spatial4j.shape.Rectangle, java.util.concurrent.atomic.AtomicReference<org.apache.lucene.search.Explanation>);
    descriptor: (Lorg/locationtech/spatial4j/shape/Rectangle;Ljava/util/concurrent/atomic/AtomicReference;)D
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=15, locals=26, args_size=3
        start local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
        start local 1 // org.locationtech.spatial4j.shape.Rectangle target
        start local 2 // java.util.concurrent.atomic.AtomicReference exp
         0: .line 133
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxY:()D
            aload 1 /* target */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxY:()D
            invokestatic java.lang.Math.min:(DD)D
            dstore 3 /* top */
        start local 3 // double top
         1: .line 134
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinY:()D
            aload 1 /* target */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinY:()D
            invokestatic java.lang.Math.max:(DD)D
            dstore 5 /* bottom */
        start local 5 // double bottom
         2: .line 135
            dload 3 /* top */
            dload 5 /* bottom */
            dsub
            dstore 7 /* height */
        start local 7 // double height
         3: .line 136
            dload 7 /* height */
            dconst_0
            dcmpg
            ifge 7
         4: .line 137
            aload 2 /* exp */
            ifnull 6
         5: .line 138
            aload 2 /* exp */
            ldc "No intersection"
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.noMatch:(Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         6: .line 140
      StackMap locals: double double double
      StackMap stack:
            dconst_0
            dreturn
         7: .line 144
      StackMap locals:
      StackMap stack:
            dconst_0
            dstore 9 /* width */
        start local 9 // double width
         8: .line 146
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            astore 11 /* a */
        start local 11 // org.locationtech.spatial4j.shape.Rectangle a
         9: .line 147
            aload 1 /* target */
            astore 12 /* b */
        start local 12 // org.locationtech.spatial4j.shape.Rectangle b
        10: .line 148
            aload 11 /* a */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getCrossesDateLine:()Z
            aload 12 /* b */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getCrossesDateLine:()Z
            if_icmpne 26
        11: .line 150
            aload 11 /* a */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            aload 12 /* b */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            invokestatic java.lang.Math.max:(DD)D
            dstore 13 /* left */
        start local 13 // double left
        12: .line 151
            aload 11 /* a */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            aload 12 /* b */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            invokestatic java.lang.Math.min:(DD)D
            dstore 15 /* right */
        start local 15 // double right
        13: .line 152
            aload 11 /* a */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getCrossesDateLine:()Z
            ifne 24
        14: .line 153
            dload 13 /* left */
            dload 15 /* right */
            dcmpg
            ifgt 17
        15: .line 154
            dload 15 /* right */
            dload 13 /* left */
            dsub
            dstore 9 /* width */
        16: .line 155
            goto 41
      StackMap locals: org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource org.locationtech.spatial4j.shape.Rectangle java.util.concurrent.atomic.AtomicReference double double double double org.locationtech.spatial4j.shape.Rectangle org.locationtech.spatial4j.shape.Rectangle double double
      StackMap stack:
        17: aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.isGeo:Z
            ifeq 21
            aload 11 /* a */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            invokestatic java.lang.Math.abs:(D)D
            ldc 180.0
            dcmpl
            ifeq 18
            aload 11 /* a */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            invokestatic java.lang.Math.abs:(D)D
            ldc 180.0
            dcmpl
            ifne 21
        18: .line 156
      StackMap locals:
      StackMap stack:
            aload 12 /* b */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            invokestatic java.lang.Math.abs:(D)D
            ldc 180.0
            dcmpl
            ifeq 19
            aload 12 /* b */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            invokestatic java.lang.Math.abs:(D)D
            ldc 180.0
            dcmpl
            ifne 21
        19: .line 157
      StackMap locals:
      StackMap stack:
            dconst_0
            dstore 9 /* width */
        20: .line 158
            goto 41
        21: .line 159
      StackMap locals:
      StackMap stack:
            aload 2 /* exp */
            ifnull 23
        22: .line 160
            aload 2 /* exp */
            ldc "No intersection"
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.noMatch:(Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
        23: .line 162
      StackMap locals:
      StackMap stack:
            dconst_0
            dreturn
        24: .line 165
      StackMap locals:
      StackMap stack:
            dload 15 /* right */
            dload 13 /* left */
            dsub
            ldc 360.0
            dadd
            dstore 9 /* width */
        end local 15 // double right
        end local 13 // double left
        25: .line 167
            goto 41
        26: .line 168
      StackMap locals:
      StackMap stack:
            aload 11 /* a */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getCrossesDateLine:()Z
            ifne 29
        27: .line 169
            aload 1 /* target */
            astore 11 /* a */
        28: .line 170
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            astore 12 /* b */
        29: .line 173
      StackMap locals:
      StackMap stack:
            aload 11 /* a */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            aload 12 /* b */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            invokestatic java.lang.Math.max:(DD)D
            dstore 13 /* qryWestLeft */
        start local 13 // double qryWestLeft
        30: .line 174
            aload 12 /* b */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            dstore 15 /* qryWestRight */
        start local 15 // double qryWestRight
        31: .line 175
            dload 13 /* qryWestLeft */
            dload 15 /* qryWestRight */
            dcmpg
            ifge 33
        32: .line 176
            dload 9 /* width */
            dload 15 /* qryWestRight */
            dload 13 /* qryWestLeft */
            dsub
            dadd
            dstore 9 /* width */
        33: .line 178
      StackMap locals: double double
      StackMap stack:
            aload 12 /* b */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            dstore 17 /* qryEastLeft */
        start local 17 // double qryEastLeft
        34: .line 179
            aload 11 /* a */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            aload 12 /* b */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            invokestatic java.lang.Math.min:(DD)D
            dstore 19 /* qryEastRight */
        start local 19 // double qryEastRight
        35: .line 180
            dload 17 /* qryEastLeft */
            dload 19 /* qryEastRight */
            dcmpg
            ifge 37
        36: .line 181
            dload 9 /* width */
            dload 19 /* qryEastRight */
            dload 17 /* qryEastLeft */
            dsub
            dadd
            dstore 9 /* width */
        37: .line 183
      StackMap locals: double double
      StackMap stack:
            dload 13 /* qryWestLeft */
            dload 15 /* qryWestRight */
            dcmpl
            ifle 41
            dload 17 /* qryEastLeft */
            dload 19 /* qryEastRight */
            dcmpl
            ifle 41
        38: .line 184
            aload 2 /* exp */
            ifnull 40
        39: .line 185
            aload 2 /* exp */
            ldc "No intersection"
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.noMatch:(Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
        40: .line 187
      StackMap locals:
      StackMap stack:
            dconst_0
            dreturn
        end local 19 // double qryEastRight
        end local 17 // double qryEastLeft
        end local 15 // double qryWestRight
        end local 13 // double qryWestLeft
        end local 12 // org.locationtech.spatial4j.shape.Rectangle b
        end local 11 // org.locationtech.spatial4j.shape.Rectangle a
        41: .line 193
      StackMap locals: org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource org.locationtech.spatial4j.shape.Rectangle java.util.concurrent.atomic.AtomicReference double double double double
      StackMap stack:
            aload 0 /* this */
            dload 9 /* width */
            dload 7 /* height */
            invokevirtual org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.calcArea:(DD)D
            dstore 11 /* intersectionArea */
        start local 11 // double intersectionArea
        42: .line 195
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryArea:D
            dconst_0
            dcmpl
            ifle 45
        43: .line 196
            dload 11 /* intersectionArea */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryArea:D
            ddiv
            dstore 13 /* queryRatio */
        start local 13 // double queryRatio
        44: .line 197
            goto 54
        end local 13 // double queryRatio
      StackMap locals: double
      StackMap stack:
        45: aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getHeight:()D
            dconst_0
            dcmpl
            ifle 48
        46: .line 198
            dload 7 /* height */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getHeight:()D
            ddiv
            dstore 13 /* queryRatio */
        start local 13 // double queryRatio
        47: .line 199
            goto 54
        end local 13 // double queryRatio
      StackMap locals:
      StackMap stack:
        48: aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            dconst_0
            dcmpl
            ifle 51
        49: .line 200
            dload 9 /* width */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            ddiv
            dstore 13 /* queryRatio */
        start local 13 // double queryRatio
        50: .line 201
            goto 54
        end local 13 // double queryRatio
        51: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            aload 1 /* target */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.relate:(Lorg/locationtech/spatial4j/shape/Shape;)Lorg/locationtech/spatial4j/shape/SpatialRelation;
            invokevirtual org.locationtech.spatial4j.shape.SpatialRelation.intersects:()Z
            ifeq 52
            iconst_1
            goto 53
      StackMap locals:
      StackMap stack:
        52: iconst_0
      StackMap locals:
      StackMap stack: int
        53: i2d
            dstore 13 /* queryRatio */
        start local 13 // double queryRatio
        54: .line 205
      StackMap locals: double
      StackMap stack:
            aload 0 /* this */
            aload 1 /* target */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            aload 1 /* target */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getHeight:()D
            invokevirtual org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.calcArea:(DD)D
            dstore 15 /* targetArea */
        start local 15 // double targetArea
        55: .line 206
            getstatic org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.$assertionsDisabled:Z
            ifne 56
            dload 15 /* targetArea */
            dconst_0
            dcmpl
            ifge 56
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        56: .line 208
      StackMap locals: double
      StackMap stack:
            dload 15 /* targetArea */
            dconst_0
            dcmpl
            ifle 59
        57: .line 209
            dload 11 /* intersectionArea */
            dload 15 /* targetArea */
            ddiv
            dstore 17 /* targetRatio */
        start local 17 // double targetRatio
        58: .line 210
            goto 68
        end local 17 // double targetRatio
      StackMap locals:
      StackMap stack:
        59: aload 1 /* target */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getHeight:()D
            dconst_0
            dcmpl
            ifle 62
        60: .line 211
            dload 7 /* height */
            aload 1 /* target */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getHeight:()D
            ddiv
            dstore 17 /* targetRatio */
        start local 17 // double targetRatio
        61: .line 212
            goto 68
        end local 17 // double targetRatio
      StackMap locals:
      StackMap stack:
        62: aload 1 /* target */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            dconst_0
            dcmpl
            ifle 65
        63: .line 213
            dload 9 /* width */
            aload 1 /* target */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            ddiv
            dstore 17 /* targetRatio */
        start local 17 // double targetRatio
        64: .line 214
            goto 68
        end local 17 // double targetRatio
        65: .line 215
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.relate:(Lorg/locationtech/spatial4j/shape/Shape;)Lorg/locationtech/spatial4j/shape/SpatialRelation;
            invokevirtual org.locationtech.spatial4j.shape.SpatialRelation.intersects:()Z
            ifeq 66
            iconst_1
            goto 67
      StackMap locals:
      StackMap stack:
        66: iconst_0
      StackMap locals:
      StackMap stack: int
        67: i2d
            dstore 17 /* targetRatio */
        start local 17 // double targetRatio
        68: .line 217
      StackMap locals: double
      StackMap stack:
            getstatic org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.$assertionsDisabled:Z
            ifne 70
            dload 13 /* queryRatio */
            dconst_0
            dcmpl
            iflt 69
            dload 13 /* queryRatio */
            dconst_1
            dcmpg
            ifle 70
      StackMap locals:
      StackMap stack:
        69: new java.lang.AssertionError
            dup
            dload 13 /* queryRatio */
            invokespecial java.lang.AssertionError.<init>:(D)V
            athrow
        70: .line 218
      StackMap locals:
      StackMap stack:
            getstatic org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.$assertionsDisabled:Z
            ifne 72
            dload 17 /* targetRatio */
            dconst_0
            dcmpl
            iflt 71
            dload 17 /* targetRatio */
            dconst_1
            dcmpg
            ifle 72
      StackMap locals:
      StackMap stack:
        71: new java.lang.AssertionError
            dup
            dload 17 /* targetRatio */
            invokespecial java.lang.AssertionError.<init>:(D)V
            athrow
        72: .line 222
      StackMap locals:
      StackMap stack:
            dload 13 /* queryRatio */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryTargetProportion:D
            dmul
            dstore 19 /* queryFactor */
        start local 19 // double queryFactor
        73: .line 223
            dload 17 /* targetRatio */
            dconst_1
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryTargetProportion:D
            dsub
            dmul
            dstore 21 /* targetFactor */
        start local 21 // double targetFactor
        74: .line 224
            dload 19 /* queryFactor */
            dload 21 /* targetFactor */
            dadd
            dstore 23 /* score */
        start local 23 // double score
        75: .line 226
            aload 2 /* exp */
            ifnull 95
        76: .line 227
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.minSideLength:D
            dconst_0
            dcmpl
            ifle 77
            new java.lang.StringBuilder
            dup
            ldc " (minSide="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.minSideLength:D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 78
      StackMap locals: double double double
      StackMap stack:
        77: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        78: astore 25 /* minSideDesc */
        start local 25 // java.lang.String minSideDesc
        79: .line 228
            aload 2 /* exp */
            dload 23 /* score */
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
        80: .line 229
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": queryFactor + targetFactor"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_3
            anewarray org.apache.lucene.search.Explanation
            dup
            iconst_0
        81: .line 230
            dload 11 /* intersectionArea */
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            new java.lang.StringBuilder
            dup
            ldc "IntersectionArea"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 25 /* minSideDesc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_3
            anewarray org.apache.lucene.search.Explanation
            dup
            iconst_0
        82: .line 231
            dload 9 /* width */
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            ldc "width"
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
            dup
            iconst_1
        83: .line 232
            dload 7 /* height */
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            ldc "height"
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
            dup
            iconst_2
        84: .line 233
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryTargetProportion:D
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            ldc "queryTargetProportion"
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
        85: .line 230
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
            dup
            iconst_1
        86: .line 234
            dload 19 /* queryFactor */
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            ldc "queryFactor"
            iconst_2
            anewarray org.apache.lucene.search.Explanation
            dup
            iconst_0
        87: .line 235
            dload 17 /* targetRatio */
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            ldc "ratio"
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
            dup
            iconst_1
        88: .line 236
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryArea:D
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            new java.lang.StringBuilder
            dup
            ldc "area of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.queryExtent:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            aload 25 /* minSideDesc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
        89: .line 234
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
            dup
            iconst_2
        90: .line 237
            dload 21 /* targetFactor */
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            ldc "targetFactor"
            iconst_2
            anewarray org.apache.lucene.search.Explanation
            dup
            iconst_0
        91: .line 238
            dload 17 /* targetRatio */
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            ldc "ratio"
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
            dup
            iconst_1
        92: .line 239
            dload 15 /* targetArea */
            d2f
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            new java.lang.StringBuilder
            dup
            ldc "area of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* target */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            aload 25 /* minSideDesc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray org.apache.lucene.search.Explanation
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
        93: .line 237
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            aastore
        94: .line 228
            invokestatic org.apache.lucene.search.Explanation.match:(Ljava/lang/Number;Ljava/lang/String;[Lorg/apache/lucene/search/Explanation;)Lorg/apache/lucene/search/Explanation;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
        end local 25 // java.lang.String minSideDesc
        95: .line 242
      StackMap locals:
      StackMap stack:
            dload 23 /* score */
            dreturn
        end local 23 // double score
        end local 21 // double targetFactor
        end local 19 // double queryFactor
        end local 17 // double targetRatio
        end local 15 // double targetArea
        end local 13 // double queryRatio
        end local 11 // double intersectionArea
        end local 9 // double width
        end local 7 // double height
        end local 5 // double bottom
        end local 3 // double top
        end local 2 // java.util.concurrent.atomic.AtomicReference exp
        end local 1 // org.locationtech.spatial4j.shape.Rectangle target
        end local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   96     0              this  Lorg/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource;
            0   96     1            target  Lorg/locationtech/spatial4j/shape/Rectangle;
            0   96     2               exp  Ljava/util/concurrent/atomic/AtomicReference<Lorg/apache/lucene/search/Explanation;>;
            1   96     3               top  D
            2   96     5            bottom  D
            3   96     7            height  D
            8   96     9             width  D
            9   41    11                 a  Lorg/locationtech/spatial4j/shape/Rectangle;
           10   41    12                 b  Lorg/locationtech/spatial4j/shape/Rectangle;
           12   25    13              left  D
           13   25    15             right  D
           30   41    13       qryWestLeft  D
           31   41    15      qryWestRight  D
           34   41    17       qryEastLeft  D
           35   41    19      qryEastRight  D
           42   96    11  intersectionArea  D
           44   45    13        queryRatio  D
           47   48    13        queryRatio  D
           50   51    13        queryRatio  D
           54   96    13        queryRatio  D
           55   96    15        targetArea  D
           58   59    17       targetRatio  D
           61   62    17       targetRatio  D
           64   65    17       targetRatio  D
           68   96    17       targetRatio  D
           73   96    19       queryFactor  D
           74   96    21      targetFactor  D
           75   96    23             score  D
           79   95    25       minSideDesc  Ljava/lang/String;
    Signature: (Lorg/locationtech/spatial4j/shape/Rectangle;Ljava/util/concurrent/atomic/AtomicReference<Lorg/apache/lucene/search/Explanation;>;)D
    MethodParameters:
        Name  Flags
      target  
      exp     

  private double calcArea(double, double);
    descriptor: (DD)D
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
        start local 1 // double width
        start local 3 // double height
         0: .line 247
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.minSideLength:D
            dload 1 /* width */
            invokestatic java.lang.Math.max:(DD)D
            aload 0 /* this */
            getfield org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource.minSideLength:D
            dload 3 /* height */
            invokestatic java.lang.Math.max:(DD)D
            dmul
            dreturn
        end local 3 // double height
        end local 1 // double width
        end local 0 // org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/lucene/spatial/bbox/BBoxOverlapRatioValueSource;
            0    1     1   width  D
            0    1     3  height  D
    MethodParameters:
        Name  Flags
      width   
      height  
}
SourceFile: "BBoxOverlapRatioValueSource.java"