def inv_std_norm_cdf(x):
z = <NUM_LIT:2>*x -<NUM_LIT:1><EOL>ln1z2 = np.log(<NUM_LIT:1>-z**<NUM_LIT:2>)<EOL>a = <NUM_LIT:8>*(np.pi -<NUM_LIT:3>)/(<NUM_LIT:3>*np.pi*(<NUM_LIT:4>-np.pi))<EOL>b = <NUM_LIT:2>/(np.pi * a) + ln1z2/<NUM_LIT:2><EOL>inv_erf = np.sign(z) * np.sqrt( np.sqrt(b**<NUM_LIT:2> - ln1z2/a) - b )<EOL>return np.sqrt(<NUM_LIT:2>) * inv_erf<EOL>
Inverse cumulative standard Gaussian distribution
Based on Winitzki, S. (2008)