# Path: gym3/internal/misc.py
# def intprod(xs):
# def allsame(xs):


from typing import Any, Callable, Tuple
from gym3.internal import misc


INTEGER_DTYPE_NAMES = set(
    ["int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64"]
)
FLOAT_DTYPE_NAMES = set(["float32", "float64"])
DTYPE_NAME_TO_MAX_VALUE = {}
DTYPE_NAME_TO_BIT_WIDTH = {}
for signed in [True, False]:
    for bit_width in (8, 16, 32, 64):
        if signed:
            max_value = 2 ** (bit_width - 1) - 1
        else:

# Path: gym3/internal/misc.py
# def intprod(xs):
# def allsame(xs):


# Path: gym3/types.py
from typing import Any, Callable, Tuple
from gym3.internal import misc



INTEGER_DTYPE_NAMES = set(
    ["int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64"]
)
FLOAT_DTYPE_NAMES = set(["float32", "float64"])
DTYPE_NAME_TO_MAX_VALUE = {}
DTYPE_NAME_TO_BIT_WIDTH = {}
for signed in [True, False]:
    for bit_width in (8, 16, 32, 64):
        if signed:
            max_value = 2 ** (bit_width - 1) - 1
        else:

            max_value = 2 ** bit_width