1*2813126eSlogin #include <common/math.h> 2*2813126eSlogin #include <common/stddef.h> 3*2813126eSlogin pow(int64_t x,int y)4*2813126eSloginint64_t pow(int64_t x, int y) 5*2813126eSlogin { 6*2813126eSlogin if (y == 0) 7*2813126eSlogin return 1; 8*2813126eSlogin if (y == 1) 9*2813126eSlogin return x; 10*2813126eSlogin if (y == 2) 11*2813126eSlogin return x * x; 12*2813126eSlogin int64_t res = 1; 13*2813126eSlogin while (y != 0) 14*2813126eSlogin { 15*2813126eSlogin if (y & 1) 16*2813126eSlogin res *= x; 17*2813126eSlogin y >>= 1; 18*2813126eSlogin x *= x; 19*2813126eSlogin } 20*2813126eSlogin return res; 21*2813126eSlogin }