def steiltjes_from_gamma(s_vector, gamma_function, itr=200): return (1 / s_vector) * ( 1 + fixed_point(gamma_function, 1 / s_vector, itr, 1e-2))
def half_circle_stieltjes_gamma(s_vector, iterations): return -(1 / s_vector) * ( fixed_point(half_circle_gamma_s_recip, s_vector, iterations) + 1)
def steiltjes_from_r_transform(s_vector, R_Transform, itr=200): return fixed_point(R_Transform, s_vector, itr, 1e-3)
def quarter_gamma_s_fixed(z): return fixed_point(quarter_gamma_s, z, 1000)
def quarter_gamma_fixed(z, alpha): return fixed_point(quarter_gamma4, z, 100, func_param=alpha)
def gamma(z): check = fixed_point(gamma_fixed, z, 100) return check
def inverse_gamma(z_vector): check = fixed_point(inv_gamma_fixed, z_vector, 100, unique_half_plane=True) return check
import seaborn size = 100 rows = 100 cols = 100 def gamma(z, gamma_z): return np.power(gamma_z / z, 1 / 4) - 1 y = 1e-6 x, step = np.linspace(0.01, 10, 100, retstep=True) s_vector = x + 1j * y steiltjes_values = (1 / s_vector) * ( 1 + fixed_point(gamma, 1 / s_vector, 100, 1e-2)) aed = estimated_pdf(steiltjes_values) theoretic_capacity = aed_capacity(x, aed, 1 / cols, rows, step=step) bins = int(size / 2) main_terms = [] no_irs = [] irs = [] numeric_cacacity = [] average = 10 for i in range(average): H = c_rand(rows, cols) @ c_rand(rows, cols) @ c_rand(rows, cols) HH = H @ np.conj(H.T) total_irs = HH e_val_total_irs, e_vec_total_irs = np.linalg.eig(total_irs) irs.append(np.real(e_val_total_irs))