import math


def geometric_mean(values):
    """
    Evaluates the geometric mean for a list of numeric values.

    @param values: List with values.
    @return: Single value representing the geometric mean for the list values.
    @see: http://en.wikipedia.org/wiki/Geometric_mean
    """
    try:
        values = [int(value) for value in values]
    except ValueError:
        return None
    product = 1
    n = len(values)
    if n == 0:
        return None
    return math.exp(sum([math.log(x) for x in values])/n)