""" This module contains some utility functions for math operations. """ import numpy as np def get_mean(values:list): """ Get the mean of the values. """ return np.mean(values) def get_x_y_mean(discrete_values:list): """ Get the mean of the x and y coordinates in the discrete range. :param x: x coordinates :param y: y coordinates :return: mean of x and y coordinates in the discrete range """ x = [vertex[0] for vertex in discrete_values] y = [vertex[1] for vertex in discrete_values] z = [vertex[2] for vertex in discrete_values] return get_mean(x), get_mean(y), get_mean(z) def get_radius_from_x_y(xi:float, yi:float, x_mean:float, y_mean:float): """ Get the radius from the x and y coordinates. :param xi: x coordinate :param yi: y coordinate :param x_mean: mean of x coordinates in the discrete range :param y_mean: mean of y coordinates in the discrete range :return: radius for this point """ return np.sqrt((xi - x_mean) ** 2 + (yi - y_mean) ** 2) def get_teta_from_x_y(xi:float, yi:float, x_mean:float, y_mean:float): """ Get the teta from the x and y coordinates. :param xi: x coordinate :param yi: y coordinate :param x_mean: mean of x coordinates in the discrete range :param y_mean: mean of y coordinates in the discrete range :return: teta for this point """ return np.arctan2((xi - x_mean)/(yi - y_mean))