summary |
tags |
clone url |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
b8dd5ec)
SCCS-vsn: usr.bin/f77/libF77/pow_di.c 1.1
--- /dev/null
+/*
+ * "@(#)pow_di.c 1.1"
+ */
+
+double pow_di(ap, bp)
+double *ap;
+long int *bp;
+{
+double pow, x;
+long int n;
+
+pow = 1;
+x = *ap;
+n = *bp;
+
+if(n != 0)
+ {
+ if(n < 0)
+ {
+ if(x == 0)
+ {
+ return(pow);
+ }
+ n = -n;
+ x = 1/x;
+ }
+ for( ; ; )
+ {
+ if(n & 01)
+ pow *= x;
+ if(n >>= 1)
+ x *= x;
+ else
+ break;
+ }
+ }
+return(pow);
+}