I did a test -- I did it on a real slow (800mhz) machine so the
differences are magnified but the shift clamp method works a little
faster than the logical test.  Enough to include it in my code.
Results at the bottom.  And surely enough to be used as the clamping
strategy in:

com.sun.media.jai.util.ImageUtil.java


       int foo = 0;
       int bar = 0;
       long t0 = 0l;
       long t1 = 0l;
       for(int j = 0; j < 100; j++)
       {
           t0 = System.currentTimeMillis();
           for(int i = -10000000; i < 10000000; i++)
           {
               //foo = (i >>> 31) | (i & 0xFF);
               //foo = (i & 0xff);
               foo = i;
               bar = (((((foo << 23) >> 31) | foo) & 0xFF) & ~(foo>>31))&0xFF;

               //System.err.println(i + ": foo = " + foo + ", bar = " + bar );

           }
           t1 = System.currentTimeMillis();
           System.err.println("(1)Time = " +(t1 - t0));

           t0 = System.currentTimeMillis();
           for(int i = -10000000; i < 10000000; i++)
           {

               foo = i;
               if(foo > 255)foo = 255;
               else if(foo < 0)foo = 0;

               //System.err.println(i + ": foo = " + foo + ", bar = " + bar );

           }
           t1 = System.currentTimeMillis();
           System.err.println("(2)Time = " +(t1 - t0));
           System.err.println("----------------");

       }

Ken Warner wrote:
Hey Peter, it works!  Nice job!  I'll work it into my code and see
if I get any speed up.  I only time to the milliseconds but a millisecond
here -- a millisecond there.  Pretty soon it adds up to a decisecond...


      int foo = 0;
      int bar = 0;
      for(int i = -10; i < 265; i++)
      {
          //foo = (i >>> 31) | (i & 0xFF);
          //foo = (i & 0xff);
          foo = i;
          bar = (((((foo << 23) >> 31) | foo) & 0xFF) & ~(foo>>31))&0xFF;
          System.err.println(i + ": foo = " + foo + ", bar = " + bar );
                 }
-5: foo = -5, bar = 0
-4: foo = -4, bar = 0
-3: foo = -3, bar = 0
-2: foo = -2, bar = 0
-1: foo = -1, bar = 0
0: foo = 0, bar = 0
1: foo = 1, bar = 1
2: foo = 2, bar = 2
3: foo = 3, bar = 3
.
.
.
252: foo = 252, bar = 252
253: foo = 253, bar = 253
254: foo = 254, bar = 254
255: foo = 255, bar = 255
256: foo = 256, bar = 255
257: foo = 257, bar = 255
258: foo = 258, bar = 255

1)Time = 200
(2)Time = 221
----------------
(1)Time = 220
(2)Time = 210
----------------
(1)Time = 231
(2)Time = 250
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 220
----------------
(1)Time = 221
(2)Time = 270
----------------
(1)Time = 190
(2)Time = 221
----------------
(1)Time = 190
(2)Time = 220
----------------
(1)Time = 160
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 210
----------------
(1)Time = 191
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 251
----------------
(1)Time = 210
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 200
(2)Time = 370
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 291
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 230
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 230
----------------
(1)Time = 190
(2)Time = 211
----------------
(1)Time = 190
(2)Time = 250
----------------
(1)Time = 191
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 160
(2)Time = 230
----------------
(1)Time = 220
(2)Time = 241
----------------
(1)Time = 180
(2)Time = 250
----------------
(1)Time = 191
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 160
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 240
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 191
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 300
(2)Time = 361
----------------
(1)Time = 230
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 220
(2)Time = 250
----------------
(1)Time = 211
(2)Time = 320
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 230
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 230
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 171
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 271
----------------
(1)Time = 310
(2)Time = 371
----------------
(1)Time = 170
(2)Time = 240
----------------
(1)Time = 181
(2)Time = 290
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 231
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 330
----------------
(1)Time = 331
(2)Time = 230
----------------
(1)Time = 180
(2)Time = 271
----------------
(1)Time = 260
(2)Time = 270
----------------

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to