final class org.apache.lucene.search.MaxScoreCache
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.lucene.search.MaxScoreCache
  super_class: java.lang.Object
{
  private final org.apache.lucene.index.ImpactsSource impactsSource;
    descriptor: Lorg/apache/lucene/index/ImpactsSource;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.search.similarities.Similarity$SimScorer scorer;
    descriptor: Lorg/apache/lucene/search/similarities/Similarity$SimScorer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private float[] maxScoreCache;
    descriptor: [F
    flags: (0x0002) ACC_PRIVATE

  private int[] maxScoreCacheUpTo;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.apache.lucene.index.ImpactsSource, org.apache.lucene.search.similarities.Similarity$SimScorer);
    descriptor: (Lorg/apache/lucene/index/ImpactsSource;Lorg/apache/lucene/search/similarities/Similarity$SimScorer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.lucene.search.MaxScoreCache this
        start local 1 // org.apache.lucene.index.ImpactsSource impactsSource
        start local 2 // org.apache.lucene.search.similarities.Similarity$SimScorer scorer
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* impactsSource */
            putfield org.apache.lucene.search.MaxScoreCache.impactsSource:Lorg/apache/lucene/index/ImpactsSource;
         2: .line 47
            aload 0 /* this */
            aload 2 /* scorer */
            putfield org.apache.lucene.search.MaxScoreCache.scorer:Lorg/apache/lucene/search/similarities/Similarity$SimScorer;
         3: .line 48
            aload 0 /* this */
            iconst_0
            newarray 6
            putfield org.apache.lucene.search.MaxScoreCache.maxScoreCache:[F
         4: .line 49
            aload 0 /* this */
            iconst_0
            newarray 10
            putfield org.apache.lucene.search.MaxScoreCache.maxScoreCacheUpTo:[I
         5: .line 50
            return
        end local 2 // org.apache.lucene.search.similarities.Similarity$SimScorer scorer
        end local 1 // org.apache.lucene.index.ImpactsSource impactsSource
        end local 0 // org.apache.lucene.search.MaxScoreCache this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/apache/lucene/search/MaxScoreCache;
            0    6     1  impactsSource  Lorg/apache/lucene/index/ImpactsSource;
            0    6     2         scorer  Lorg/apache/lucene/search/similarities/Similarity$SimScorer;
    MethodParameters:
               Name  Flags
      impactsSource  
      scorer         

  private void ensureCacheSize(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.lucene.search.MaxScoreCache this
        start local 1 // int size
         0: .line 53
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCache:[F
            arraylength
            iload 1 /* size */
            if_icmpge 5
         1: .line 54
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCache:[F
            arraylength
            istore 2 /* oldLength */
        start local 2 // int oldLength
         2: .line 55
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCache:[F
            iload 1 /* size */
            invokestatic org.apache.lucene.util.ArrayUtil.grow:([FI)[F
            putfield org.apache.lucene.search.MaxScoreCache.maxScoreCache:[F
         3: .line 56
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCacheUpTo:[I
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCache:[F
            arraylength
            invokestatic org.apache.lucene.util.ArrayUtil.growExact:([II)[I
            putfield org.apache.lucene.search.MaxScoreCache.maxScoreCacheUpTo:[I
         4: .line 57
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCacheUpTo:[I
            iload 2 /* oldLength */
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCacheUpTo:[I
            arraylength
            iconst_m1
            invokestatic java.util.Arrays.fill:([IIII)V
        end local 2 // int oldLength
         5: .line 59
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int size
        end local 0 // org.apache.lucene.search.MaxScoreCache this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/lucene/search/MaxScoreCache;
            0    6     1       size  I
            2    5     2  oldLength  I
    MethodParameters:
      Name  Flags
      size  

  private float computeMaxScore(java.util.List<org.apache.lucene.index.Impact>);
    descriptor: (Ljava/util/List;)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.lucene.search.MaxScoreCache this
        start local 1 // java.util.List impacts
         0: .line 62
            fconst_0
            fstore 2 /* maxScore */
        start local 2 // float maxScore
         1: .line 63
            aload 1 /* impacts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.lucene.search.MaxScoreCache java.util.List float top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.Impact
            astore 3 /* impact */
        start local 3 // org.apache.lucene.index.Impact impact
         3: .line 64
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.scorer:Lorg/apache/lucene/search/similarities/Similarity$SimScorer;
            aload 3 /* impact */
            getfield org.apache.lucene.index.Impact.freq:I
            i2f
            aload 3 /* impact */
            getfield org.apache.lucene.index.Impact.norm:J
            invokevirtual org.apache.lucene.search.similarities.Similarity$SimScorer.score:(FJ)F
            fload 2 /* maxScore */
            invokestatic java.lang.Math.max:(FF)F
            fstore 2 /* maxScore */
        end local 3 // org.apache.lucene.index.Impact impact
         4: .line 63
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 66
            fload 2 /* maxScore */
            freturn
        end local 2 // float maxScore
        end local 1 // java.util.List impacts
        end local 0 // org.apache.lucene.search.MaxScoreCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/lucene/search/MaxScoreCache;
            0    6     1   impacts  Ljava/util/List<Lorg/apache/lucene/index/Impact;>;
            1    6     2  maxScore  F
            3    4     3    impact  Lorg/apache/lucene/index/Impact;
    Signature: (Ljava/util/List<Lorg/apache/lucene/index/Impact;>;)F
    MethodParameters:
         Name  Flags
      impacts  

  int getLevel(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.apache.lucene.search.MaxScoreCache this
        start local 1 // int upTo
         0: .line 74
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.impactsSource:Lorg/apache/lucene/index/ImpactsSource;
            invokeinterface org.apache.lucene.index.ImpactsSource.getImpacts:()Lorg/apache/lucene/index/Impacts;
            astore 2 /* impacts */
        start local 2 // org.apache.lucene.index.Impacts impacts
         1: .line 75
            iconst_0
            istore 3 /* level */
        start local 3 // int level
         2: aload 2 /* impacts */
            invokevirtual org.apache.lucene.index.Impacts.numLevels:()I
            istore 4 /* numLevels */
        start local 4 // int numLevels
         3: goto 8
         4: .line 76
      StackMap locals: org.apache.lucene.index.Impacts int int
      StackMap stack:
            aload 2 /* impacts */
            iload 3 /* level */
            invokevirtual org.apache.lucene.index.Impacts.getDocIdUpTo:(I)I
            istore 5 /* impactsUpTo */
        start local 5 // int impactsUpTo
         5: .line 77
            iload 1 /* upTo */
            iload 5 /* impactsUpTo */
            if_icmpgt 7
         6: .line 78
            iload 3 /* level */
            ireturn
        end local 5 // int impactsUpTo
         7: .line 75
      StackMap locals:
      StackMap stack:
            iinc 3 /* level */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* level */
            iload 4 /* numLevels */
            if_icmplt 4
        end local 4 // int numLevels
        end local 3 // int level
         9: .line 81
            iconst_m1
            ireturn
        end local 2 // org.apache.lucene.index.Impacts impacts
        end local 1 // int upTo
        end local 0 // org.apache.lucene.search.MaxScoreCache this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/apache/lucene/search/MaxScoreCache;
            0   10     1         upTo  I
            1   10     2      impacts  Lorg/apache/lucene/index/Impacts;
            2    9     3        level  I
            3    9     4    numLevels  I
            5    7     5  impactsUpTo  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      upTo  

  float getMaxScoreForLevel(int);
    descriptor: (I)F
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.apache.lucene.search.MaxScoreCache this
        start local 1 // int level
         0: .line 88
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.impactsSource:Lorg/apache/lucene/index/ImpactsSource;
            invokeinterface org.apache.lucene.index.ImpactsSource.getImpacts:()Lorg/apache/lucene/index/Impacts;
            astore 2 /* impacts */
        start local 2 // org.apache.lucene.index.Impacts impacts
         1: .line 89
            aload 0 /* this */
            iload 1 /* level */
            iconst_1
            iadd
            invokevirtual org.apache.lucene.search.MaxScoreCache.ensureCacheSize:(I)V
         2: .line 90
            aload 2 /* impacts */
            iload 1 /* level */
            invokevirtual org.apache.lucene.index.Impacts.getDocIdUpTo:(I)I
            istore 3 /* levelUpTo */
        start local 3 // int levelUpTo
         3: .line 91
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCacheUpTo:[I
            iload 1 /* level */
            iaload
            iload 3 /* levelUpTo */
            if_icmpge 6
         4: .line 92
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCache:[F
            iload 1 /* level */
            aload 0 /* this */
            aload 2 /* impacts */
            iload 1 /* level */
            invokevirtual org.apache.lucene.index.Impacts.getImpacts:(I)Ljava/util/List;
            invokevirtual org.apache.lucene.search.MaxScoreCache.computeMaxScore:(Ljava/util/List;)F
            fastore
         5: .line 93
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCacheUpTo:[I
            iload 1 /* level */
            iload 3 /* levelUpTo */
            iastore
         6: .line 95
      StackMap locals: org.apache.lucene.index.Impacts int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.maxScoreCache:[F
            iload 1 /* level */
            faload
            freturn
        end local 3 // int levelUpTo
        end local 2 // org.apache.lucene.index.Impacts impacts
        end local 1 // int level
        end local 0 // org.apache.lucene.search.MaxScoreCache this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/apache/lucene/search/MaxScoreCache;
            0    7     1      level  I
            1    7     2    impacts  Lorg/apache/lucene/index/Impacts;
            3    7     3  levelUpTo  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      level  

  private int getSkipLevel(org.apache.lucene.index.Impacts, float);
    descriptor: (Lorg/apache/lucene/index/Impacts;F)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.apache.lucene.search.MaxScoreCache this
        start local 1 // org.apache.lucene.index.Impacts impacts
        start local 2 // float minScore
         0: .line 103
            aload 1 /* impacts */
            invokevirtual org.apache.lucene.index.Impacts.numLevels:()I
            istore 3 /* numLevels */
        start local 3 // int numLevels
         1: .line 104
            iconst_0
            istore 4 /* level */
        start local 4 // int level
         2: goto 6
         3: .line 105
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* level */
            invokevirtual org.apache.lucene.search.MaxScoreCache.getMaxScoreForLevel:(I)F
            fload 2 /* minScore */
            fcmpl
            iflt 5
         4: .line 106
            iload 4 /* level */
            iconst_1
            isub
            ireturn
         5: .line 104
      StackMap locals:
      StackMap stack:
            iinc 4 /* level */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* level */
            iload 3 /* numLevels */
            if_icmplt 3
        end local 4 // int level
         7: .line 109
            iload 3 /* numLevels */
            iconst_1
            isub
            ireturn
        end local 3 // int numLevels
        end local 2 // float minScore
        end local 1 // org.apache.lucene.index.Impacts impacts
        end local 0 // org.apache.lucene.search.MaxScoreCache this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/apache/lucene/search/MaxScoreCache;
            0    8     1    impacts  Lorg/apache/lucene/index/Impacts;
            0    8     2   minScore  F
            1    8     3  numLevels  I
            2    7     4      level  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      impacts   
      minScore  

  int getSkipUpTo(float);
    descriptor: (F)I
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.lucene.search.MaxScoreCache this
        start local 1 // float minScore
         0: .line 118
            aload 0 /* this */
            getfield org.apache.lucene.search.MaxScoreCache.impactsSource:Lorg/apache/lucene/index/ImpactsSource;
            invokeinterface org.apache.lucene.index.ImpactsSource.getImpacts:()Lorg/apache/lucene/index/Impacts;
            astore 2 /* impacts */
        start local 2 // org.apache.lucene.index.Impacts impacts
         1: .line 119
            aload 0 /* this */
            aload 2 /* impacts */
            fload 1 /* minScore */
            invokevirtual org.apache.lucene.search.MaxScoreCache.getSkipLevel:(Lorg/apache/lucene/index/Impacts;F)I
            istore 3 /* level */
        start local 3 // int level
         2: .line 120
            iload 3 /* level */
            iconst_m1
            if_icmpne 4
         3: .line 121
            iconst_m1
            ireturn
         4: .line 123
      StackMap locals: org.apache.lucene.index.Impacts int
      StackMap stack:
            aload 2 /* impacts */
            iload 3 /* level */
            invokevirtual org.apache.lucene.index.Impacts.getDocIdUpTo:(I)I
            ireturn
        end local 3 // int level
        end local 2 // org.apache.lucene.index.Impacts impacts
        end local 1 // float minScore
        end local 0 // org.apache.lucene.search.MaxScoreCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/lucene/search/MaxScoreCache;
            0    5     1  minScore  F
            1    5     2   impacts  Lorg/apache/lucene/index/Impacts;
            2    5     3     level  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      minScore  
}
SourceFile: "MaxScoreCache.java"
InnerClasses:
  public abstract SimScorer = org.apache.lucene.search.similarities.Similarity$SimScorer of org.apache.lucene.search.similarities.Similarity