def aobrientransform(*args):
    TINY = 1e-10
    k = len(args)
    n = N.zeros(k,N.float_)
    v = N.zeros(k,N.float_)
    m = N.zeros(k,N.float_)
    nargs = []
    for i in range(k):
        nargs.append(args[i].astype(N.float_))
        n[i] = float(len(nargs[i]))
        v[i] = var(nargs[i])
        m[i] = mean(nargs[i])
    for j in range(k):
        for i in range(n[j]):
            t1 = (n[j]-1.5)*n[j]*(nargs[j][i]-m[j])**2
            t2 = 0.5*v[j]*(n[j]-1.0)
            t3 = (n[j]-1.0)*(n[j]-2.0)
            nargs[j][i] = (t1-t2) / float(t3)
    check = 1
    for j in range(k):
        if v[j] - mean(nargs[j]) > TINY:
            check = 0
    if check <> 1:
        raise ValueError, 'Lack of convergence in obrientransform.'
    else:
        return N.array(nargs)
removeCriticalAlarm()
dataset/ETHPy150Open radlab/sparrow/src/main/python/third_party/stats.py/aobrientransform--crossover with--dataset/ETHPy150Open graycatlabs/PyBBIO/bbio/libraries/ADT7310/adt7310.py/ADT7310.removeCriticalAlarm