Source code for openskill.models.common

"""
Common functions for all models.
"""

from typing import Any, List


[docs] def _unary_minus(number: float) -> float: """ Takes value of a number and makes it negative. :param number: A number to convert. :return: Converted number. """ return -number
[docs] def _matrix_transpose(matrix: List[List[Any]]) -> List[List[Any]]: """ Transpose a matrix. :param matrix: A matrix in the form of a list of lists. :return: A transposed matrix. """ return [list(row) for row in zip(*matrix)]
[docs] def _normalize( vector: List[float], target_minimum: float, target_maximum: float ) -> List[float]: """ Normalizes a vector to a target range of values. :param vector: A vector to normalize. :param target_minimum: Minimum value to scale the values between. :param target_maximum: Maximum value to scale the values between. :return: Normalized vector. """ if len(vector) == 1: return [target_maximum] source_minimum = min(vector) source_maximum = max(vector) source_range = source_maximum - source_minimum target_range = target_maximum - target_minimum if source_range == 0: source_range = 0.0001 scaled_vector = [ ((((value - source_minimum) / source_range) * target_range) + target_minimum) for value in vector ] return scaled_vector