1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * An integer based power function 4 * 5 * Derived from drivers/video/backlight/pwm_bl.c 6 */ 7 8 #include <linux/export.h> 9 #include <linux/kernel.h> 10 #include <linux/types.h> 11 12 /** 13 * int_pow - computes the exponentiation of the given base and exponent 14 * @base: base which will be raised to the given power 15 * @exp: power to be raised to 16 * 17 * Computes: pow(base, exp), i.e. @base raised to the @exp power 18 */ 19 u64 int_pow(u64 base, unsigned int exp) 20 { 21 u64 result = 1; 22 23 while (exp) { 24 if (exp & 1) 25 result *= base; 26 exp >>= 1; 27 base *= base; 28 } 29 30 return result; 31 } 32 EXPORT_SYMBOL_GPL(int_pow);