nonfatal internal JIT (3.00.078(x)) error 'GetRegisterA' (win98)

XMLWordPrintable



      Name: krT82822 Date: 03/06/99


      Place the included source in a file called "foo.java"
      Place the "foo.java" file in a directory called "bug"
      javac bug\foo.java
      java -classpath . bug.foo

      The error message is :

      A nonfatal internal JIT (3.00.078(x)) error 'GetRegisterA' has occurred in :
        'bug/foo.interleave_complex_fft ([FF)V': Interpreting method.
        Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cgi


      Note : This works without error for jdk 1.0, jdk 1.1, and Microsoft's jview JIT.

      Here's the source for "foo.java" :

      package bug;

      public final class foo extends Object
      {
      private static final float FORWARD_FFT = -1.0f;
      private static final float INVERSE_FFT = 1.0f;
      private static final int FFT_MAX_LOGSIZE = 20;

      private static final float[] CosArray = new float[FFT_MAX_LOGSIZE];
      private static final float[] SinArray = new float[FFT_MAX_LOGSIZE];

      static
      {
      for(int i = 0; i<FFT_MAX_LOGSIZE ; i++)
      {
      CosArray[i] = (float) Math.cos(Math.PI / Math.pow(2.0,i));
      SinArray[i] = (float) Math.sin(Math.PI / Math.pow(2.0,i));
      }
      }
      /**
      * Takes one array containing real and imaginary values that
      * are interleaved and performs a forward in-place complex fft (fft length = array length / 2)
      * @param interleaved_array floating point array containing real and imaginary parts (fft length is interleaved array length / 2)
           */
      public static void interleave_complex(float[] interleaved_array)
      {
      interleave_complex_fft(interleaved_array,FORWARD_FFT);
      }

      // Performs an in-place forward or inverse complex fft. Real and
      // imaginary values are stored in one interleaved array
      // Adapted from Oppenheim & Shafer
      private static void interleave_complex_fft(float[] realx,float forrevval)
      {
      int n = realx.length >> 1;
      int logsize = (int) (Math.log(n) / Math.log(2) + .5);
      int le = n;
      int i,j,ip;
      int l,le1,k,nv2,nm1;
      float realu,imagu,realw,imagw,realtemp,imagtemp,a,b;

      for( l = 1; l <= logsize; l++)
      {
      le1 = le >> 1;
      realu = 1.0f;
      imagu = 0.0f;
      realw = CosArray[logsize-1];
      imagw = forrevval*SinArray[logsize - l];
      for( j = 1;j<=le1; j++)
      {
      for( i=j; i<= n; i = i+ le)
      {
      ip = i + le1 - 1;
      int index_real = 2*(i-1);
      int index_imag = index_real+1;
      int ip_real = 2*ip;
      int ip_imag = ip_real + 1;

      realtemp = realx[index_real] + realx[ip_real];
      a = realx[index_real] - realx[ip_real];
      realx[index_real] = realtemp;
      imagtemp = realx[index_imag] + realx[ip_imag];
      b = realx[index_imag] - realx[ip_imag];
      realx[index_imag] = imagtemp;
      realx[ip_real] = ((a*realu) - (b*imagu));
      realx[ip_imag] = ((a*imagu) + (b*realu));
      }
      realtemp = (realu*realw) - (imagu*imagw);
      imagu = (imagu*realw)+(realu*imagw);
      realu = realtemp;
      }
      le =le >> 1;
      }
      nv2 = n >> 1;
      nm1 = n - 1;
      j = 1;
      for (i=1;i<=nm1;i++)
      {
      if(i < j)
      {
      int j_real = (j-1)*2;
      int j_imag = j_real +1;
      int i_real = (i-1)*2;
      int i_imag = i_real+1;
      realtemp = realx[j_real];
      imagtemp = realx[j_imag];
      realx[j_real] = realx[i_real];
      realx[j_imag] = realx[i_imag];
      realx[i_real] = realtemp;
      realx[i_imag] = imagtemp;
      }
      k = nv2;
      while(k<j)
      {
      j = j-k;
      k= k >> 1;
      }
      j = j + k;
      }
      }
      public static void main(String args[])
      {
                  foo.interleave_complex(new float[4]);
            }


      }
      (Review ID: 52800)
      ======================================================================

            Assignee:
            Unassigned
            Reporter:
            Kevin Ryan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: