def METHOD_NAME(ty, pv, useScipy = True):
    """
    evaluations(ty, pv, useScipy) -> (ACC, MSE, SCC)
    ty, pv: list, tuple or ndarray
    useScipy: convert ty, pv to ndarray, and use scipy functions for the evaluation
    Calculate accuracy, mean squared error and squared correlation coefficient
    using the true values (ty) and predicted values (pv).
    """
    if scipy != None and useScipy:
        return evaluations_scipy(np.asarray(ty), np.asarray(pv))
    if len(ty) != len(pv):
        raise ValueError("len(ty) must be equal to len(pv)")
    total_correct = total_error = 0
    sumv = sumy = sumvv = sumyy = sumvy = 0
    for v, y in zip(pv, ty):
        if y == v:
            total_correct += 1
        total_error += (v-y)*(v-y)
        sumv += v
        sumy += y
        sumvv += v*v
        sumyy += y*y
        sumvy += v*y
    l = len(ty)
    ACC = 100.0*total_correct/l
    MSE = total_error/l
    try:
        SCC = ((l*sumvy-sumv*sumy)*(l*sumvy-sumv*sumy))/((l*sumvv-sumv*sumv)*(l*sumyy-sumy*sumy))
    except:
        SCC = float('nan')
    return (float(ACC), float(MSE), float(SCC))