5 #include <grass/raster.h>
6 #include <grass/calc.h>
13 static int ipow(
int x,
int y)
26 int f_pow(
int argc,
const int *argt,
void **args)
35 if (argt[1] != argt[0] || argt[2] != argt[0])
46 if (IS_NULL_C(&arg1[i]) || IS_NULL_C(&arg2[i]) || arg2[i] < 0)
49 res[i] = ipow(arg1[i], arg2[i]);
56 FCELL *arg1 = args[1];
57 FCELL *arg2 = args[2];
60 if (IS_NULL_F(&arg1[i]) || IS_NULL_F(&arg2[i]))
62 else if (arg1[i] < 0 && arg2[i] != ceil(arg2[i]))
66 res[i] = pow(arg1[i], arg2[i]);
76 DCELL *arg1 = args[1];
77 DCELL *arg2 = args[2];
80 if (IS_NULL_D(&arg1[i]) || IS_NULL_D(&arg2[i]))
82 else if (arg1[i] < 0 && arg2[i] != ceil(arg2[i]))
86 res[i] = pow(arg1[i], arg2[i]);