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

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 

7 

8 

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 

18 

19 

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 

30 

31 

32if __name__ == "__main__": 

33 gen_joint_w_omega()