Source code for suiteeval.utility
from typing import Sequence
[docs]
def geometric_mean(sequence: Sequence[float]) -> float:
"""Compute the geometric mean of a sequence of numbers.
Args:
sequence (Sequence[float]): A sequence of numbers.
Returns:
float: The geometric mean of the sequence.
"""
product = 1.0
n = len(sequence)
for x in sequence:
product *= x
return product ** (1.0 / n) if n > 0 else 0.0
[docs]
def harmonic_mean(sequence: Sequence[float]) -> float:
"""Compute the harmonic mean of a sequence of numbers.
Args:
sequence (Sequence[float]): A sequence of numbers.
Returns:
float: The harmonic mean of the sequence.
"""
n = len(sequence)
if n == 0:
return 0.0
denominator = sum(1.0 / x for x in sequence if x > 0)
return n / denominator if denominator > 0 else 0.0