public class org.apache.commons.math3.transform.FastSineTransformer implements org.apache.commons.math3.transform.RealTransformer, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.math3.transform.FastSineTransformer
  super_class: java.lang.Object
{
  static final long serialVersionUID;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 20120211

  private final org.apache.commons.math3.transform.DstNormalization normalization;
    descriptor: Lorg/apache/commons/math3/transform/DstNormalization;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.apache.commons.math3.transform.DstNormalization);
    descriptor: (Lorg/apache/commons/math3/transform/DstNormalization;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.math3.transform.FastSineTransformer this
        start local 1 // org.apache.commons.math3.transform.DstNormalization normalization
         0: .line 83
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            aload 1 /* normalization */
            putfield org.apache.commons.math3.transform.FastSineTransformer.normalization:Lorg/apache/commons/math3/transform/DstNormalization;
         2: .line 85
            return
        end local 1 // org.apache.commons.math3.transform.DstNormalization normalization
        end local 0 // org.apache.commons.math3.transform.FastSineTransformer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/apache/commons/math3/transform/FastSineTransformer;
            0    3     1  normalization  Lorg/apache/commons/math3/transform/DstNormalization;
    MethodParameters:
               Name  Flags
      normalization  final

  public double[] transform(double[], org.apache.commons.math3.transform.TransformType);
    descriptor: ([DLorg/apache/commons/math3/transform/TransformType;)[D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.apache.commons.math3.transform.FastSineTransformer this
        start local 1 // double[] f
        start local 2 // org.apache.commons.math3.transform.TransformType type
         0: .line 96
            aload 0 /* this */
            getfield org.apache.commons.math3.transform.FastSineTransformer.normalization:Lorg/apache/commons/math3/transform/DstNormalization;
            getstatic org.apache.commons.math3.transform.DstNormalization.ORTHOGONAL_DST_I:Lorg/apache/commons/math3/transform/DstNormalization;
            if_acmpne 3
         1: .line 97
            ldc 2.0
            aload 1 /* f */
            arraylength
            i2d
            ddiv
            invokestatic org.apache.commons.math3.util.FastMath.sqrt:(D)D
            dstore 3 /* s */
        start local 3 // double s
         2: .line 98
            aload 0 /* this */
            aload 1 /* f */
            invokevirtual org.apache.commons.math3.transform.FastSineTransformer.fst:([D)[D
            dload 3 /* s */
            invokestatic org.apache.commons.math3.transform.TransformUtils.scaleArray:([DD)[D
            areturn
        end local 3 // double s
         3: .line 100
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            getstatic org.apache.commons.math3.transform.TransformType.FORWARD:Lorg/apache/commons/math3/transform/TransformType;
            if_acmpne 5
         4: .line 101
            aload 0 /* this */
            aload 1 /* f */
            invokevirtual org.apache.commons.math3.transform.FastSineTransformer.fst:([D)[D
            areturn
         5: .line 103
      StackMap locals:
      StackMap stack:
            ldc 2.0
            aload 1 /* f */
            arraylength
            i2d
            ddiv
            dstore 3 /* s */
        start local 3 // double s
         6: .line 104
            aload 0 /* this */
            aload 1 /* f */
            invokevirtual org.apache.commons.math3.transform.FastSineTransformer.fst:([D)[D
            dload 3 /* s */
            invokestatic org.apache.commons.math3.transform.TransformUtils.scaleArray:([DD)[D
            areturn
        end local 3 // double s
        end local 2 // org.apache.commons.math3.transform.TransformType type
        end local 1 // double[] f
        end local 0 // org.apache.commons.math3.transform.FastSineTransformer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/commons/math3/transform/FastSineTransformer;
            0    7     1     f  [D
            0    7     2  type  Lorg/apache/commons/math3/transform/TransformType;
            2    3     3     s  D
            6    7     3     s  D
    MethodParameters:
      Name  Flags
      f     final
      type  final

  public double[] transform(org.apache.commons.math3.analysis.UnivariateFunction, double, double, int, org.apache.commons.math3.transform.TransformType);
    descriptor: (Lorg/apache/commons/math3/analysis/UnivariateFunction;DDILorg/apache/commons/math3/transform/TransformType;)[D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=6
        start local 0 // org.apache.commons.math3.transform.FastSineTransformer this
        start local 1 // org.apache.commons.math3.analysis.UnivariateFunction f
        start local 2 // double min
        start local 4 // double max
        start local 6 // int n
        start local 7 // org.apache.commons.math3.transform.TransformType type
         0: .line 122
            aload 1 /* f */
            dload 2 /* min */
            dload 4 /* max */
            iload 6 /* n */
            invokestatic org.apache.commons.math3.analysis.FunctionUtils.sample:(Lorg/apache/commons/math3/analysis/UnivariateFunction;DDI)[D
            astore 8 /* data */
        start local 8 // double[] data
         1: .line 123
            aload 8 /* data */
            iconst_0
            dconst_0
            dastore
         2: .line 124
            aload 0 /* this */
            aload 8 /* data */
            aload 7 /* type */
            invokevirtual org.apache.commons.math3.transform.FastSineTransformer.transform:([DLorg/apache/commons/math3/transform/TransformType;)[D
            areturn
        end local 8 // double[] data
        end local 7 // org.apache.commons.math3.transform.TransformType type
        end local 6 // int n
        end local 4 // double max
        end local 2 // double min
        end local 1 // org.apache.commons.math3.analysis.UnivariateFunction f
        end local 0 // org.apache.commons.math3.transform.FastSineTransformer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/math3/transform/FastSineTransformer;
            0    3     1     f  Lorg/apache/commons/math3/analysis/UnivariateFunction;
            0    3     2   min  D
            0    3     4   max  D
            0    3     6     n  I
            0    3     7  type  Lorg/apache/commons/math3/transform/TransformType;
            1    3     8  data  [D
    MethodParameters:
      Name  Flags
      f     final
      min   final
      max   final
      n     final
      type  final

  protected double[] fst(double[]);
    descriptor: ([D)[D
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=10, args_size=2
        start local 0 // org.apache.commons.math3.transform.FastSineTransformer this
        start local 1 // double[] f
         0: .line 138
            aload 1 /* f */
            arraylength
            newarray 7
            astore 2 /* transformed */
        start local 2 // double[] transformed
         1: .line 140
            aload 1 /* f */
            arraylength
            i2l
            invokestatic org.apache.commons.math3.util.ArithmeticUtils.isPowerOfTwo:(J)Z
            ifne 6
         2: .line 141
            new org.apache.commons.math3.exception.MathIllegalArgumentException
            dup
         3: .line 142
            getstatic org.apache.commons.math3.exception.util.LocalizedFormats.NOT_POWER_OF_TWO_CONSIDER_PADDING:Lorg/apache/commons/math3/exception/util/LocalizedFormats;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 143
            aload 1 /* f */
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         5: .line 141
            aastore
            invokespecial org.apache.commons.math3.exception.MathIllegalArgumentException.<init>:(Lorg/apache/commons/math3/exception/util/Localizable;[Ljava/lang/Object;)V
            athrow
         6: .line 145
      StackMap locals: double[]
      StackMap stack:
            aload 1 /* f */
            iconst_0
            daload
            dconst_0
            dcmpl
            ifeq 11
         7: .line 146
            new org.apache.commons.math3.exception.MathIllegalArgumentException
            dup
         8: .line 147
            getstatic org.apache.commons.math3.exception.util.LocalizedFormats.FIRST_ELEMENT_NOT_ZERO:Lorg/apache/commons/math3/exception/util/LocalizedFormats;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 148
            aload 1 /* f */
            iconst_0
            daload
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
        10: .line 146
            aastore
            invokespecial org.apache.commons.math3.exception.MathIllegalArgumentException.<init>:(Lorg/apache/commons/math3/exception/util/Localizable;[Ljava/lang/Object;)V
            athrow
        11: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* f */
            arraylength
            istore 3 /* n */
        start local 3 // int n
        12: .line 151
            iload 3 /* n */
            iconst_1
            if_icmpne 15
        13: .line 152
            aload 2 /* transformed */
            iconst_0
            dconst_0
            dastore
        14: .line 153
            aload 2 /* transformed */
            areturn
        15: .line 157
      StackMap locals: int
      StackMap stack:
            iload 3 /* n */
            newarray 7
            astore 4 /* x */
        start local 4 // double[] x
        16: .line 158
            aload 4 /* x */
            iconst_0
            dconst_0
            dastore
        17: .line 159
            aload 4 /* x */
            iload 3 /* n */
            iconst_1
            ishr
            ldc 2.0
            aload 1 /* f */
            iload 3 /* n */
            iconst_1
            ishr
            daload
            dmul
            dastore
        18: .line 160
            iconst_1
            istore 5 /* i */
        start local 5 // int i
        19: goto 25
        20: .line 161
      StackMap locals: double[] int
      StackMap stack:
            iload 5 /* i */
            i2d
            ldc 3.141592653589793
            dmul
            iload 3 /* n */
            i2d
            ddiv
            invokestatic org.apache.commons.math3.util.FastMath.sin:(D)D
            aload 1 /* f */
            iload 5 /* i */
            daload
            aload 1 /* f */
            iload 3 /* n */
            iload 5 /* i */
            isub
            daload
            dadd
            dmul
            dstore 6 /* a */
        start local 6 // double a
        21: .line 162
            ldc 0.5
            aload 1 /* f */
            iload 5 /* i */
            daload
            aload 1 /* f */
            iload 3 /* n */
            iload 5 /* i */
            isub
            daload
            dsub
            dmul
            dstore 8 /* b */
        start local 8 // double b
        22: .line 163
            aload 4 /* x */
            iload 5 /* i */
            dload 6 /* a */
            dload 8 /* b */
            dadd
            dastore
        23: .line 164
            aload 4 /* x */
            iload 3 /* n */
            iload 5 /* i */
            isub
            dload 6 /* a */
            dload 8 /* b */
            dsub
            dastore
        end local 8 // double b
        end local 6 // double a
        24: .line 160
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 5 /* i */
            iload 3 /* n */
            iconst_1
            ishr
            if_icmplt 20
        end local 5 // int i
        26: .line 167
            new org.apache.commons.math3.transform.FastFourierTransformer
            dup
            getstatic org.apache.commons.math3.transform.DftNormalization.STANDARD:Lorg/apache/commons/math3/transform/DftNormalization;
            invokespecial org.apache.commons.math3.transform.FastFourierTransformer.<init>:(Lorg/apache/commons/math3/transform/DftNormalization;)V
            astore 5 /* transformer */
        start local 5 // org.apache.commons.math3.transform.FastFourierTransformer transformer
        27: .line 168
            aload 5 /* transformer */
            aload 4 /* x */
            getstatic org.apache.commons.math3.transform.TransformType.FORWARD:Lorg/apache/commons/math3/transform/TransformType;
            invokevirtual org.apache.commons.math3.transform.FastFourierTransformer.transform:([DLorg/apache/commons/math3/transform/TransformType;)[Lorg/apache/commons/math3/complex/Complex;
            astore 6 /* y */
        start local 6 // org.apache.commons.math3.complex.Complex[] y
        28: .line 171
            aload 2 /* transformed */
            iconst_0
            dconst_0
            dastore
        29: .line 172
            aload 2 /* transformed */
            iconst_1
            ldc 0.5
            aload 6 /* y */
            iconst_0
            aaload
            invokevirtual org.apache.commons.math3.complex.Complex.getReal:()D
            dmul
            dastore
        30: .line 173
            iconst_1
            istore 7 /* i */
        start local 7 // int i
        31: goto 35
        32: .line 174
      StackMap locals: org.apache.commons.math3.transform.FastSineTransformer double[] double[] int double[] org.apache.commons.math3.transform.FastFourierTransformer org.apache.commons.math3.complex.Complex[] int
      StackMap stack:
            aload 2 /* transformed */
            iconst_2
            iload 7 /* i */
            imul
            aload 6 /* y */
            iload 7 /* i */
            aaload
            invokevirtual org.apache.commons.math3.complex.Complex.getImaginary:()D
            dneg
            dastore
        33: .line 175
            aload 2 /* transformed */
            iconst_2
            iload 7 /* i */
            imul
            iconst_1
            iadd
            aload 6 /* y */
            iload 7 /* i */
            aaload
            invokevirtual org.apache.commons.math3.complex.Complex.getReal:()D
            aload 2 /* transformed */
            iconst_2
            iload 7 /* i */
            imul
            iconst_1
            isub
            daload
            dadd
            dastore
        34: .line 173
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 7 /* i */
            iload 3 /* n */
            iconst_1
            ishr
            if_icmplt 32
        end local 7 // int i
        36: .line 178
            aload 2 /* transformed */
            areturn
        end local 6 // org.apache.commons.math3.complex.Complex[] y
        end local 5 // org.apache.commons.math3.transform.FastFourierTransformer transformer
        end local 4 // double[] x
        end local 3 // int n
        end local 2 // double[] transformed
        end local 1 // double[] f
        end local 0 // org.apache.commons.math3.transform.FastSineTransformer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   37     0         this  Lorg/apache/commons/math3/transform/FastSineTransformer;
            0   37     1            f  [D
            1   37     2  transformed  [D
           12   37     3            n  I
           16   37     4            x  [D
           19   26     5            i  I
           21   24     6            a  D
           22   24     8            b  D
           27   37     5  transformer  Lorg/apache/commons/math3/transform/FastFourierTransformer;
           28   37     6            y  [Lorg/apache/commons/math3/complex/Complex;
           31   36     7            i  I
    Exceptions:
      throws org.apache.commons.math3.exception.MathIllegalArgumentException
    MethodParameters:
      Name  Flags
      f     
}
SourceFile: "FastSineTransformer.java"