linux/lib/math/int_pow.c
<<
>>
Prefs
   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/math.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 */
  19u64 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}
  32EXPORT_SYMBOL_GPL(int_pow);
  33