public class com.codahale.metrics.EWMA
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.codahale.metrics.EWMA
  super_class: java.lang.Object
{
  private static final int INTERVAL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final double SECONDS_PER_MINUTE;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 60.0

  private static final int ONE_MINUTE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int FIVE_MINUTES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final int FIFTEEN_MINUTES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 15

  private static final double M1_ALPHA;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final double M5_ALPHA;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final double M15_ALPHA;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private volatile boolean initialized;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile double rate;
    descriptor: D
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.util.concurrent.atomic.LongAdder uncounted;
    descriptor: Ljava/util/concurrent/atomic/LongAdder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 23
            dconst_1
            ldc -0.08333333333333333
            invokestatic java.lang.Math.exp:(D)D
            dsub
            putstatic com.codahale.metrics.EWMA.M1_ALPHA:D
         1: .line 24
            dconst_1
            ldc -0.016666666666666666
            invokestatic java.lang.Math.exp:(D)D
            dsub
            putstatic com.codahale.metrics.EWMA.M5_ALPHA:D
         2: .line 25
            dconst_1
            ldc -0.005555555555555555
            invokestatic java.lang.Math.exp:(D)D
            dsub
            putstatic com.codahale.metrics.EWMA.M15_ALPHA:D
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.codahale.metrics.EWMA oneMinuteEWMA();
    descriptor: ()Lcom/codahale/metrics/EWMA;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 40
            new com.codahale.metrics.EWMA
            dup
            getstatic com.codahale.metrics.EWMA.M1_ALPHA:D
            ldc 5
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokespecial com.codahale.metrics.EWMA.<init>:(DJLjava/util/concurrent/TimeUnit;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.codahale.metrics.EWMA fiveMinuteEWMA();
    descriptor: ()Lcom/codahale/metrics/EWMA;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 50
            new com.codahale.metrics.EWMA
            dup
            getstatic com.codahale.metrics.EWMA.M5_ALPHA:D
            ldc 5
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokespecial com.codahale.metrics.EWMA.<init>:(DJLjava/util/concurrent/TimeUnit;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.codahale.metrics.EWMA fifteenMinuteEWMA();
    descriptor: ()Lcom/codahale/metrics/EWMA;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 60
            new com.codahale.metrics.EWMA
            dup
            getstatic com.codahale.metrics.EWMA.M15_ALPHA:D
            ldc 5
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokespecial com.codahale.metrics.EWMA.<init>:(DJLjava/util/concurrent/TimeUnit;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(double, long, java.util.concurrent.TimeUnit);
    descriptor: (DJLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.codahale.metrics.EWMA this
        start local 1 // double alpha
        start local 3 // long interval
        start local 5 // java.util.concurrent.TimeUnit intervalUnit
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 27
            aload 0 /* this */
            iconst_0
            putfield com.codahale.metrics.EWMA.initialized:Z
         2: .line 28
            aload 0 /* this */
            dconst_0
            putfield com.codahale.metrics.EWMA.rate:D
         3: .line 30
            aload 0 /* this */
            new java.util.concurrent.atomic.LongAdder
            dup
            invokespecial java.util.concurrent.atomic.LongAdder.<init>:()V
            putfield com.codahale.metrics.EWMA.uncounted:Ljava/util/concurrent/atomic/LongAdder;
         4: .line 71
            aload 0 /* this */
            aload 5 /* intervalUnit */
            lload 3 /* interval */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            l2d
            putfield com.codahale.metrics.EWMA.interval:D
         5: .line 72
            aload 0 /* this */
            dload 1 /* alpha */
            putfield com.codahale.metrics.EWMA.alpha:D
         6: .line 73
            return
        end local 5 // java.util.concurrent.TimeUnit intervalUnit
        end local 3 // long interval
        end local 1 // double alpha
        end local 0 // com.codahale.metrics.EWMA this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/codahale/metrics/EWMA;
            0    7     1         alpha  D
            0    7     3      interval  J
            0    7     5  intervalUnit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
              Name  Flags
      alpha         
      interval      
      intervalUnit  

  public void update(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.codahale.metrics.EWMA this
        start local 1 // long n
         0: .line 81
            aload 0 /* this */
            getfield com.codahale.metrics.EWMA.uncounted:Ljava/util/concurrent/atomic/LongAdder;
            lload 1 /* n */
            invokevirtual java.util.concurrent.atomic.LongAdder.add:(J)V
         1: .line 82
            return
        end local 1 // long n
        end local 0 // com.codahale.metrics.EWMA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/codahale/metrics/EWMA;
            0    2     1     n  J
    MethodParameters:
      Name  Flags
      n     

  public void tick();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=7, args_size=1
        start local 0 // com.codahale.metrics.EWMA this
         0: .line 88
            aload 0 /* this */
            getfield com.codahale.metrics.EWMA.uncounted:Ljava/util/concurrent/atomic/LongAdder;
            invokevirtual java.util.concurrent.atomic.LongAdder.sumThenReset:()J
            lstore 1 /* count */
        start local 1 // long count
         1: .line 89
            lload 1 /* count */
            l2d
            aload 0 /* this */
            getfield com.codahale.metrics.EWMA.interval:D
            ddiv
            dstore 3 /* instantRate */
        start local 3 // double instantRate
         2: .line 90
            aload 0 /* this */
            getfield com.codahale.metrics.EWMA.initialized:Z
            ifeq 6
         3: .line 91
            aload 0 /* this */
            getfield com.codahale.metrics.EWMA.rate:D
            dstore 5 /* oldRate */
        start local 5 // double oldRate
         4: .line 92
            aload 0 /* this */
            dload 5 /* oldRate */
            aload 0 /* this */
            getfield com.codahale.metrics.EWMA.alpha:D
            dload 3 /* instantRate */
            dload 5 /* oldRate */
            dsub
            dmul
            dadd
            putfield com.codahale.metrics.EWMA.rate:D
        end local 5 // double oldRate
         5: .line 93
            goto 8
         6: .line 94
      StackMap locals: long double
      StackMap stack:
            aload 0 /* this */
            dload 3 /* instantRate */
            putfield com.codahale.metrics.EWMA.rate:D
         7: .line 95
            aload 0 /* this */
            iconst_1
            putfield com.codahale.metrics.EWMA.initialized:Z
         8: .line 97
      StackMap locals:
      StackMap stack:
            return
        end local 3 // double instantRate
        end local 1 // long count
        end local 0 // com.codahale.metrics.EWMA this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/codahale/metrics/EWMA;
            1    9     1        count  J
            2    9     3  instantRate  D
            4    5     5      oldRate  D

  public double getRate(java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/TimeUnit;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.codahale.metrics.EWMA this
        start local 1 // java.util.concurrent.TimeUnit rateUnit
         0: .line 106
            aload 0 /* this */
            getfield com.codahale.metrics.EWMA.rate:D
            aload 1 /* rateUnit */
            lconst_1
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            l2d
            dmul
            dreturn
        end local 1 // java.util.concurrent.TimeUnit rateUnit
        end local 0 // com.codahale.metrics.EWMA this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/codahale/metrics/EWMA;
            0    1     1  rateUnit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
          Name  Flags
      rateUnit  
}
SourceFile: "EWMA.java"