16 lines
280 B
Text
16 lines
280 B
Text
fcn pow(n,exp){
|
|
reg v;
|
|
if(n.isType(1)){ // Int
|
|
if (exp<0) return(if(n*n!=1) 0 else (if(exp.isOdd) n else 1));
|
|
v=1;
|
|
}else{
|
|
if(exp<0){ n=1.0/n; exp=-exp; }
|
|
v=1.0;
|
|
}
|
|
while(exp>0){
|
|
if(exp.isOdd) v*=n;
|
|
n*=n;
|
|
exp/=2;
|
|
}
|
|
v
|
|
}
|