1*10513Sdlw /* 2*10513Sdlw * "@(#)pow_hh.c 1.1" 3*10513Sdlw */ 4*10513Sdlw 5*10513Sdlw short pow_hh(ap, bp) 6*10513Sdlw short *ap, *bp; 7*10513Sdlw { 8*10513Sdlw short pow, x, n; 9*10513Sdlw 10*10513Sdlw pow = 1; 11*10513Sdlw x = *ap; 12*10513Sdlw n = *bp; 13*10513Sdlw 14*10513Sdlw if(n < 0) 15*10513Sdlw { } 16*10513Sdlw else if(n > 0) 17*10513Sdlw for( ; ; ) 18*10513Sdlw { 19*10513Sdlw if(n & 01) 20*10513Sdlw pow *= x; 21*10513Sdlw if(n >>= 1) 22*10513Sdlw x *= x; 23*10513Sdlw else 24*10513Sdlw break; 25*10513Sdlw } 26*10513Sdlw return(pow); 27*10513Sdlw } 28