class IsInfinity { 
    private void zeroIfInfiniteInlined(float[] samples){ 
        for (int i = 0; i < samples.length; i++) { 
                if (samples[i] == Float.POSITIVE_INFINITY || samples[i] == Float.NEGATIVE_INFINITY){ 
                    samples[i] = 0.0f; 
                } 
        } 
    } 
    private void zeroIfInfinite(float[] samples) { 
            for (int i = 0; i < samples.length; i++) { 
                if (Float.isInfinite(samples[i])) { 
                    samples[i] = 0.0f; 
                } 
        } 
    } 
    private void zeroIfNaN(float[] samples) { 
            for (int i = 0; i < samples.length; i++) { 
                if (Float.isNaN(samples[i])) { 
                    samples[i] = 0.0f; 
                } 
        } 
    } 
    private void zeroIfNaNInlined(float[] samples) { 
            for (int i = 0; i < samples.length; i++) { 
                if (samples[i]!=samples[i]) { 
                    samples[i] = 0.0f; 
                } 
        } 
    } 


    public static void main(String[] argv) throws Exception { 
        float samples[] = new float[4000]; 
        for (int i=0;i<samples.length;i++){ 
                samples[i] = i; 

        } 
        IsInfinity inf = new IsInfinity(); 
        for (int i=0;i<10000;i++){ 
                inf.zeroIfInfinite(samples); 
                inf.zeroIfInfiniteInlined(samples); 
                inf.zeroIfNaN(samples); 
                inf.zeroIfNaNInlined(samples); 
        } 

    } 
} 