@@ -8,35 +8,38 @@ using ProgressMeter
88
99BLAS. set_num_threads (1 )
1010
11- function compute_fig1 (; α, d, μ, ρ, N_values, λ_values, trials)
11+ function compute_fig1_csbm (; α, d, μ, ρ, N_values, λ_values, trials)
1212 rng = default_rng ()
1313 I, J, K = length (N_values), length (λ_values), trials
1414 qu_values = zeros (I, J, K)
1515 qv_values = zeros (I, J, K)
1616 converged_values = zeros (Bool, I, J, K)
1717 prog = Progress (I * J * K; desc= " CSBM - Fig 1" )
18- @threads for i in 1 : I, j in 1 : J, k in 1 : K
19- N, λ = N_values[i], λ_values[j]
20- P = ceil (Int, N / α)
21- csbm = CSBM (; N, P, d, μ, λ, ρ)
22- (qu, qv, converged) = evaluate_amp (rng, csbm)
23- qu_values[i, j, k] = qu
24- qv_values[i, j, k] = qv
25- converged_values[i, j, k] = converged
26- next! (prog)
18+ for i in 1 : I
19+ for j in 1 : J
20+ @threads for k in 1 : K
21+ N, λ = N_values[i], λ_values[j]
22+ P = ceil (Int, N / α)
23+ csbm = CSBM (; N, P, d, μ, λ, ρ)
24+ (qu, qv, converged) = evaluate_amp (rng, csbm)
25+ qu_values[i, j, k] = qu
26+ qv_values[i, j, k] = qv
27+ converged_values[i, j, k] = converged
28+ next! (prog)
29+ end
30+ end
2731 end
2832 return (; qu_values, qv_values)
2933end
3034
31- function plot_fig1 (res; N_values, λ_values)
35+ function plot_fig1_csbm (res; N_values, λ_values)
3236 qu_values, qv_values = res
3337 f = Figure ()
3438 for (i, N) in enumerate (N_values)
35- ax = Axis (f[i, 1 ]; title= " N = $N " , xlabel= " λ" , ylabel= " qᵤ " , limits= (0 , 2 , 0 , 1 ))
36- qu_means = dropdims (mean (qu_values[i, :, :]; dims= 1 ); dims= 1 )
37- qu_stds = dropdims (std (qu_values[i, :, :]; dims= 1 ); dims= 1 )
39+ ax = Axis (f[i, 1 ]; title= " N = $N " , xlabel= " λ" , ylabel= " q_u " , limits= (0 , 2 , 0 , 1 ))
40+ qu_means = dropdims (mean (qu_values[i, :, :]; dims= 2 ); dims= 2 )
41+ qu_stds = dropdims (std (qu_values[i, :, :]; dims= 2 ); dims= 2 )
3842 lines! (ax, λ_values, qu_means)
39- scatter! (ax, λ_values, qu_means)
4043 errorbars! (ax, λ_values, qu_means, qu_stds)
4144 end
4245 return f
4548α = 10
4649d = 5
4750μ = 2
48- ρ = 0.1
51+ ρ = 0.0
4952N_values = reverse ([3 * 10 ^ 3 , 10 ^ 4 , 3 * 10 ^ 4 , 10 ^ 5 ])
5053N_values = reverse ([3 * 10 ^ 3 , 10 ^ 4 ])
5154λ_values = 0 : 0.1 : 2
5255trials = 10
53- res1 = compute_fig1 (; α, d, μ, ρ, N_values, λ_values, trials)
54- plot_fig1 (res1; N_values, λ_values)
56+ res1 = compute_fig1_csbm (; α, d, μ, ρ, N_values, λ_values, trials)
57+ plot_fig1_csbm (res1; N_values, λ_values)
0 commit comments