def find_lpc_svd(D, d):
    L = D.shape[0]
    m = D.shape[1]
    U, s, Vh = scipy.linalg.svd(D)  # SVD decomposition
    U, Vh = np.mat(U), np.mat(Vh)   # make U and Vh matrices
    Si = pinv_diagsvd(s, m, L)      # construct the pseudo-inverse sigma matrix
    return np.array(Vh.H * Si * U.H * d)

# the next 3 lines and the pinv_diagsvd function were adapted from the
# scipy.linalg.pinv2 function - jjh
Test if updating a slice when there are some opt-ins actually update the opt-ins
dataset/ETHPy150Open jjhelmus/nmrglue/nmrglue/process/proc_lp.py/find_lpc_svd--crossover with--dataset/ETHPy150Open fp7-ofelia/ocf/optin_manager/src/python/openflow/optin_manager/xmlrpc_server/tests.py/Tests.test_update_slice_and_optin