Source code for draugr.numpy_utilities.powers

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = "Christian Heider Nielsen"
__doc__ = r"""

           Created on 07-01-2021
           """

import numpy

from warg import Number

__all__ = [
    "next_pow_numpy",
    "next_pow_2_numpy",
    "next_pow_10_numpy",
    "next_power_2_numpy",
    "next_power_10_numpy",
]


[docs]def next_pow_numpy(x: Number, n: int) -> int: """Calculates the next power of n of a number.""" return int(pow(n, numpy.ceil(numpy.log(x) / numpy.log(n))))
[docs]def next_pow_2_numpy(x: Number) -> int: """Calculates the next power of 2 of a number.""" return int(pow(2, numpy.ceil(numpy.log2(x))))
next_power_2_numpy = next_pow_2_numpy
[docs]def next_pow_10_numpy(x: Number) -> int: """Calculates the next power of 10 of a number.""" return int(pow(10, numpy.ceil(numpy.log10(x))))
next_power_10_numpy = next_pow_10_numpy if __name__ == "__main__": for i in range(1, 11 + 1): print(next_pow_2_numpy(i)) print(next_pow_numpy(i, 2)) # print(next_pow(i, 3)) # print(next_pow_10(i)) print(next_pow_2_numpy(next_pow_2_numpy(next_pow_2_numpy(2))))