Commit d1718d1d authored by Javier's avatar Javier

bug juobs.apply_rw

mean(rw) was computed replica by replica
parent 9285d600
......@@ -204,7 +204,7 @@ function comp_t0(Y::Vector{YData}, plat::Vector{Int64}; L::Int64, pl::Bool=false
return nothing
end
Ysl = isnothing(rw) ? Ysl : apply_rw.(Ysl, rw)
Ysl = isnothing(rw) ? Ysl : apply_rw(Ysl, rw)
tmp = Ysl[1]
[tmp = cat(tmp, Ysl[k], dims=1) for k = 2:nr]
nt0 = t0_guess(t, tmp, plat, L)
......
#TODO: apply_rw with gaps
function apply_rw(cdata::CData, W::Array{Float64, 2})
nc = maximum(cdata.vcfg)
function apply_rw(data::Array{Float64}, W::Matrix{Float64})
nc = size(data, 1)
W1 = W[1, 1:nc]
W2 = W[2, 1:nc]
cdata_r = copy(cdata)
cdata_r.re_data = cdata.re_data .* W1 .* W2 / mean(W1 .* W2)
cdata_r.im_data = cdata.im_data .* W1 .* W2 / mean(W1 .* W2)
return cdata_r
data_r = data .* W1 .* W2 / mean(W1 .* W2)
return data_r
end
function apply_rw(data::Array{Float64}, W::Array{Float64, 2})
nc = size(data)[1]
W1 = W[1, 1:nc]
W2 = W[2, 1:nc]
function apply_rw(data::Vector{<:Array{Float64}}, W::Vector{Matrix{Float64}})
if length(W) != length(data)
error("Lenghts must match")
end
nc = size.(data, 1)
data_r = data .* W1 .* W2 / mean(W1 .* W2)
rw1 = [W[k][1, 1:nc[k]] for k=1:length(W)]
rw2 = [W[k][2, 1:nc[k]] for k=1:length(W)]
rw1_cat = rw1[1]
rw2_cat = rw2[1]
for k = 2:length(W)
rw1_cat = cat(rw1_cat, rw1[k], dims=1)
rw2_cat = cat(rw2_cat, rw2[k], dims=1)
end
rw_mean = mean(rw1_cat .* rw2_cat)
data_r = [data[k] .* rw1[k].* rw2[k] / rw_mean for k=1:length(data)]
return data_r
end
@doc raw"""
......@@ -52,7 +62,7 @@ corr_pp_r = corr_obs.(cdata, rw=[rw1, rw2])
function corr_obs(cdata::CData; real::Bool=true, rw::Union{Array{Float64, 2}, Nothing}=nothing, L::Int64=1)
real ? data = cdata.re_data ./ L^3 : data = cdata.im_data ./ L^3
isnothing(rw) ? data_r = data : data_r = apply_rw(data, rw)
data_r = isnothing(rw) ? data : apply_rw(data, rw)
nt = size(data)[2]
obs = Vector{uwreal}(undef, nt)
......@@ -74,8 +84,7 @@ function corr_obs(cdata::Array{CData, 1}; real::Bool=true, rw::Union{Array{Array
end
real ? data = getfield.(cdata, :re_data) ./ L^3 : data = getfield.(cdata, :im_data) ./ L^3
isnothing(rw) ? data_r = data : data_r = apply_rw.(data, rw)
data_r = isnothing(rw) ? data : apply_rw(data, rw)
tmp = data_r[1]
[tmp = cat(tmp, data_r[k], dims=1) for k = 2:nr]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment