public class org.jruby.RubyMath$NemesLogGamma
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.RubyMath$NemesLogGamma
  super_class: java.lang.Object
{
  public final double value;
    descriptor: D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final double sign;
    descriptor: D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public void <init>(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=2
        start local 0 // org.jruby.RubyMath$NemesLogGamma this
        start local 1 // double x
         0: .line 770
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 771
            dload 1 /* x */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifeq 4
         2: .line 772
            aload 0 /* this */
            ldc Infinity
            putfield org.jruby.RubyMath$NemesLogGamma.value:D
            aload 0 /* this */
            dconst_1
            putfield org.jruby.RubyMath$NemesLogGamma.sign:D
         3: .line 773
            return
         4: .line 776
      StackMap locals: org.jruby.RubyMath$NemesLogGamma double
      StackMap stack:
            dload 1 /* x */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifeq 7
         5: .line 777
            aload 0 /* this */
            ldc NaN
            putfield org.jruby.RubyMath$NemesLogGamma.value:D
            aload 0 /* this */
            dconst_1
            putfield org.jruby.RubyMath$NemesLogGamma.sign:D
         6: .line 778
            return
         7: .line 781
      StackMap locals:
      StackMap stack:
            dload 1 /* x */
            d2i
            i2d
            dstore 3 /* int_part */
        start local 3 // double int_part
         8: .line 782
            aload 0 /* this */
            dload 1 /* x */
            dload 3 /* int_part */
            invokestatic org.jruby.RubyMath$NemesLogGamma.signum:(DD)I
            i2d
            putfield org.jruby.RubyMath$NemesLogGamma.sign:D
         9: .line 783
            dload 1 /* x */
            dload 3 /* int_part */
            dsub
            dconst_0
            dcmpl
            ifne 12
            dconst_0
            dload 3 /* int_part */
            dcmpg
            ifge 12
            dload 3 /* int_part */
            getstatic org.jruby.RubyMath.FACTORIAL:[D
            arraylength
            i2d
            dcmpg
            ifgt 12
        10: .line 784
            aload 0 /* this */
            getstatic org.jruby.RubyMath.FACTORIAL:[D
            dload 3 /* int_part */
            d2i
            iconst_1
            isub
            daload
            invokestatic java.lang.Math.log:(D)D
            putfield org.jruby.RubyMath$NemesLogGamma.value:D
        11: .line 785
            goto 31
        12: .line 786
      StackMap locals: double
      StackMap stack:
            dload 1 /* x */
            ldc 10.0
            dcmpg
            ifge 22
        13: .line 787
            dconst_1
            dstore 5 /* rising_factorial */
        start local 5 // double rising_factorial
        14: .line 788
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        15: goto 18
        16: .line 789
      StackMap locals: double int
      StackMap stack:
            dload 5 /* rising_factorial */
            dload 1 /* x */
            iload 7 /* i */
            i2d
            dadd
            dmul
            dstore 5 /* rising_factorial */
        17: .line 788
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 7 /* i */
            i2d
            dload 1 /* x */
            invokestatic java.lang.Math.abs:(D)D
            d2i
            i2d
            dload 3 /* int_part */
            dsub
            ldc 10.0
            dadd
            dcmpg
            iflt 16
        end local 7 // int i
        19: .line 791
            new org.jruby.RubyMath$NemesLogGamma
            dup
            dload 1 /* x */
            dload 1 /* x */
            invokestatic java.lang.Math.abs:(D)D
            d2i
            i2d
            dadd
            dload 3 /* int_part */
            dsub
            ldc 10.0
            dadd
            invokespecial org.jruby.RubyMath$NemesLogGamma.<init>:(D)V
            astore 7 /* l */
        start local 7 // org.jruby.RubyMath$NemesLogGamma l
        20: .line 792
            aload 0 /* this */
            aload 7 /* l */
            getfield org.jruby.RubyMath$NemesLogGamma.value:D
            dload 5 /* rising_factorial */
            invokestatic java.lang.Math.abs:(D)D
            invokestatic java.lang.Math.log:(D)D
            dsub
            putfield org.jruby.RubyMath$NemesLogGamma.value:D
        end local 7 // org.jruby.RubyMath$NemesLogGamma l
        end local 5 // double rising_factorial
        21: .line 793
            goto 31
        22: .line 794
      StackMap locals:
      StackMap stack:
            dconst_0
            dstore 5 /* temp */
        start local 5 // double temp
        23: .line 795
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        24: goto 27
        25: .line 796
      StackMap locals: double int
      StackMap stack:
            dload 5 /* temp */
            getstatic org.jruby.RubyMath.NEMES_GAMMA_COEFF:[D
            iload 7 /* i */
            daload
            dconst_1
            dmul
            dload 1 /* x */
            iload 7 /* i */
            i2d
            invokestatic java.lang.Math.pow:(DD)D
            ddiv
            dadd
            dstore 5 /* temp */
        26: .line 795
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 7 /* i */
            getstatic org.jruby.RubyMath.NEMES_GAMMA_COEFF:[D
            arraylength
            if_icmplt 25
        end local 7 // int i
        28: .line 799
            aload 0 /* this */
            dload 1 /* x */
            dload 1 /* x */
            invokestatic java.lang.Math.log:(D)D
            dconst_1
            dsub
            dload 5 /* temp */
            invokestatic java.lang.Math.log:(D)D
            dadd
            dmul
        29: .line 800
            ldc 2.0
            invokestatic java.lang.Math.log:(D)D
            ldc 3.141592653589793
            invokestatic java.lang.Math.log:(D)D
            dadd
            dload 1 /* x */
            invokestatic java.lang.Math.log:(D)D
            dsub
            ldc 2.0
            ddiv
            dadd
        30: .line 799
            putfield org.jruby.RubyMath$NemesLogGamma.value:D
        end local 5 // double temp
        31: .line 802
      StackMap locals:
      StackMap stack:
            return
        end local 3 // double int_part
        end local 1 // double x
        end local 0 // org.jruby.RubyMath$NemesLogGamma this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   32     0              this  Lorg/jruby/RubyMath$NemesLogGamma;
            0   32     1                 x  D
            8   32     3          int_part  D
           14   21     5  rising_factorial  D
           15   19     7                 i  I
           20   21     7                 l  Lorg/jruby/RubyMath$NemesLogGamma;
           23   31     5              temp  D
           24   28     7                 i  I
    MethodParameters:
      Name  Flags
      x     

  private static int signum(double, double);
    descriptor: (DD)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // double x
        start local 2 // double int_part
         0: .line 805
            dload 2 /* int_part */
            ldc 2.0
            drem
            dconst_0
            dcmpl
            ifne 1
            dload 0 /* x */
            dload 2 /* int_part */
            dsub
            dconst_0
            dcmpl
            ifeq 1
            dload 0 /* x */
            dconst_0
            dcmpg
            iflt 2
      StackMap locals:
      StackMap stack:
         1: dload 0 /* x */
            invokestatic org.jruby.RubyMath$NemesLogGamma.negZero:(D)Z
            ifeq 3
      StackMap locals:
      StackMap stack:
         2: iconst_m1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 2 // double int_part
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0         x  D
            0    5     2  int_part  D
    MethodParameters:
          Name  Flags
      x         final
      int_part  final

  private static boolean negZero(double);
    descriptor: (D)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double x
         0: .line 809
            dload 0 /* x */
            dconst_0
            dcmpl
            ifne 1
            dload 0 /* x */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  D
    MethodParameters:
      Name  Flags
      x     final
}
SourceFile: "RubyMath.java"
NestHost: org.jruby.RubyMath
InnerClasses:
  public NemesLogGamma = org.jruby.RubyMath$NemesLogGamma of org.jruby.RubyMath