Coverage for src/causalspyne/implicit_omega_condition_on_w.py: 0%
23 statements
« prev ^ index » next coverage.py v7.11.0, created at 2026-05-15 16:30 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2026-05-15 16:30 +0000
1"""
2"""
3import numpy as np
4from numpy.random import default_rng
5from causalspyne.erdo_renyi_plp import Erdos_Renyi_PLP
6from causalspyne.implicit_omega import gen_omega, get_extreme_eigenvalue
9def get_max_degree(mat_w):
10 d_max = 0
11 for ind_row, row in enumerate(mat_w):
12 # w_{i,j} j->i
13 in_degree = len(np.nonzero(row))
14 out_degree = len(np.nonzero(mat_w[:, ind_row]))
15 if in_degree + out_degree > d_max:
16 d_max = in_degree + out_degree
17 return d_max
20def gen_joint_w_omega(p_ob_v=4, ave_degree=2, max_omega=0.7):
21 mat_w = Erdos_Renyi_PLP(default_rng(0))(num_nodes=p_ob_v,
22 degree=ave_degree)
23 print(f"adjacency: \n {mat_w}")
24 mat_omega, rho = gen_omega(p_ob_v, max_omega)
25 print(f"omega: \n {mat_omega}")
26 max_eig, min_eig = get_extreme_eigenvalue(mat_omega)
27 print(f"min, max eigenvalue {min_eig, max_eig}")
28 print(f"rho, 2*rho: {rho}, {2 * rho}")
29 return mat_w, mat_omega
32if __name__ == "__main__":
33 gen_joint_w_omega()