def METHOD_NAME(data):
    """Walsh-Hadamaard Transform (sequency ordered)
    adapted from MATLAB algorithm published on the web by
    Author: Gylson Thomas
    e-mail: gylson_thomas@yahoo.com
    Asst. Professor, Electrical and Electronics Engineering Dept.
    MES College of Engineering Kuttippuram,
    Kerala, India, February 2005.
    copyright 2005.
    Reference: N.Ahmed, K.R. Rao, "Orthogonal Transformations for 
    Digital Signal Processing" Spring Verlag, New York 1975. page-111.
    """
    N = len(data)
    L=log2(N);
    if ((L-floor(L)) > 0.0):
        raise ValueError("Length must be power of 2")
    x=bitrevorder(data);
    k1=N; k2=1; k3=N/2;
    for i1 in range(1,L+1):  #Iteration stage 
        L1=1;
        for i2 in range(1,k2+1):
            for i3 in range(1,k3+1):
                i=i3+L1-1; j=i+k3;
                temp1= x[i-1]; temp2 = x[j-1]; 
                if (i2 % 2) == 0:
                  x[i-1] = temp1 - temp2;
                  x[j-1] = temp1 + temp2;
                  x[i-1] = temp1 + temp2;
                  x[j-1] = temp1 - temp2;
                L1=L1+k1;
            k1 = k1/2;  k2 = k2*2;  k3 = k3/2;
    x = x*1.0/N; # Delete this line for inverse wht
    return x