Skip to content

Instantly share code, notes, and snippets.

@pkofod
Created March 28, 2020 14:25
Show Gist options
  • Save pkofod/b3b35aef3810cca6ac9c7d8c33bfc59e to your computer and use it in GitHub Desktop.
Save pkofod/b3b35aef3810cca6ac9c7d8c33bfc59e to your computer and use it in GitHub Desktop.
julia> @code_warntype Pumas.vpc(pkres.model, pkres.data, coef(pkres), 1)
Variables
#self#::Core.Compiler.Const(Pumas.vpc, false)
m::PumasModel{ParamSet{NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Float64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Int64,TransformVariables.Infinity{true},Float64}}}},var"#3#12",var"#4#13",var"#5#15",Central1,var"#6#16",var"#9#19"}
population::Array{Subject{NamedTuple{(:dv,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1},Pumas.ConstantCovar{NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}}},Float64},1}
param::NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}}
reps::Int64
#675::Pumas.var"#675#677"{PumasModel{ParamSet{NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Float64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Int64,TransformVariables.Infinity{true},Float64}}}},var"#3#12",var"#4#13",var"#5#15",Central1,var"#6#16",var"#9#19"},Array{Subject{NamedTuple{(:dv,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1},Pumas.ConstantCovar{NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}}},Float64},1},NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}}}
#676::Pumas.var"#676#678"{Tuple{Float64,Float64,Float64},Symbol,Int64}
quantiles::Tuple{Float64,Float64,Float64}
ci_level::Float64
dvname::Symbol
h::Int64
empirical::Array{Any,1}
sims::Any
ci_quantiles::Tuple{Float64,Float64,Float64}
sim_quantiles::Any
sim_quantile_ci::Array{Any,1}
Body::Pumas.VPC{Array{Any,1},Array{Any,1}}
1 ─ (quantiles = Core.tuple(0.1, 0.5, 0.9))
│ %2 = Base.convert(Pumas.Float64, 0.95)::Core.Compiler.Const(0.95, false)
│ (ci_level = Core.typeassert(%2, Pumas.Float64))
│ %4 = :dv
│ %5 = Base.convert(Pumas.Symbol, %4)::Core.Compiler.Const(:dv, false)
│ (dvname = Core.typeassert(%5, Pumas.Symbol))
│ (h = 2)
│ %8 = (:h,)::Core.Compiler.Const((:h,), false)
│ %9 = Core.apply_type(Core.NamedTuple, %8)::Core.Compiler.Const(NamedTuple{(:h,),T} where T<:Tuple, false)
│ %10 = Core.tuple(h::Core.Compiler.Const(2, false))::Core.Compiler.Const((2,), false)
│ %11 = (%9)(%10)::NamedTuple{(:h,),Tuple{Int64}}
│ %12 = Core.kwfunc(Pumas.quantile_t_data)::Core.Compiler.Const(Pumas.var"#kw##quantile_t_data"(), false)
│ %13 = quantiles::Core.Compiler.Const((0.1, 0.5, 0.9), false)::Core.Compiler.Const((0.1, 0.5, 0.9), false)
│ (empirical = (%12)(%11, Pumas.quantile_t_data, population, %13, dvname::Core.Compiler.Const(:dv, false)))
│ %15 = Pumas.:(var"#675#677")::Core.Compiler.Const(Pumas.var"#675#677", false)
│ %16 = Core.typeof(m)::Core.Compiler.Const(PumasModel{ParamSet{NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Float64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Int64,TransformVariables.Infinity{true},Float64}}}},var"#3#12",var"#4#13",var"#5#15",Central1,var"#6#16",var"#9#19"}, false)
│ %17 = Core.typeof(population)::Core.Compiler.Const(Array{Subject{NamedTuple{(:dv,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1},Pumas.ConstantCovar{NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}}},Float64},1}, false)
│ %18 = Core.typeof(param)::Core.Compiler.Const(NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}}, false)
│ %19 = Core.apply_type(%15, %16, %17, %18)::Core.Compiler.Const(Pumas.var"#675#677"{PumasModel{ParamSet{NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Float64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Int64,TransformVariables.Infinity{true},Float64}}}},var"#3#12",var"#4#13",var"#5#15",Central1,var"#6#16",var"#9#19"},Array{Subject{NamedTuple{(:dv,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1},Pumas.ConstantCovar{NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}}},Float64},1},NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}}}, false)
│ (#675 = %new(%19, m, population, param))
│ %21 = #675::Pumas.var"#675#677"{PumasModel{ParamSet{NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Float64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Int64,TransformVariables.Infinity{true},Float64}}}},var"#3#12",var"#4#13",var"#5#15",Central1,var"#6#16",var"#9#19"},Array{Subject{NamedTuple{(:dv,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1},Pumas.ConstantCovar{NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}}},Float64},1},NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}}}
│ %22 = (1:reps)::Core.Compiler.PartialStruct(UnitRange{Int64}, Any[Core.Compiler.Const(1, false), Int64])
│ %23 = Base.Generator(%21, %22)::Core.Compiler.PartialStruct(Base.Generator{UnitRange{Int64},Pumas.var"#675#677"{PumasModel{ParamSet{NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Float64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Int64,TransformVariables.Infinity{true},Float64}}}},var"#3#12",var"#4#13",var"#5#15",Central1,var"#6#16",var"#9#19"},Array{Subject{NamedTuple{(:dv,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1},Pumas.ConstantCovar{NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}}},Float64},1},NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}}}}, Any[Pumas.var"#675#677"{PumasModel{ParamSet{NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Int64,TransformVariables.Infinity{true},Float64},RealDomain{Float64,TransformVariables.Infinity{true},Float64},PDiagDomain{PDMats.PDiagMat{Float64,Array{Float64,1}}},RealDomain{Int64,TransformVariables.Infinity{true},Float64}}}},var"#3#12",var"#4#13",var"#5#15",Central1,var"#6#16",var"#9#19"},Array{Subject{NamedTuple{(:dv,),Tuple{Array{Union{Missing, Float64},1}}},NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}},Array{Pumas.Event{Float64,Float64,Float64,Float64,Float64,Float64,Int64},1},Array{Float64,1},Pumas.ConstantCovar{NamedTuple{(:isPM, :wt),Tuple{Int64,Int64}}},Float64},1},NamedTuple{(:tvcl, :tvv, :pmoncl, :Ω, :σ_prop),Tuple{Float64,Float64,Float64,PDMats.PDiagMat{Float64,Array{Float64,1}},Float64}}}, Core.Compiler.PartialStruct(UnitRange{Int64}, Any[Core.Compiler.Const(1, false), Int64])])
│ (sims = Base.collect(%23))
│ %25 = (1 - ci_level::Core.Compiler.Const(0.95, false))::Core.Compiler.Const(0.050000000000000044, false)
│ %26 = (%25 / 2)::Core.Compiler.Const(0.025000000000000022, false)
│ %27 = (1 + ci_level::Core.Compiler.Const(0.95, false))::Core.Compiler.Const(1.95, false)
│ %28 = (%27 / 2)::Core.Compiler.Const(0.975, false)
│ (ci_quantiles = Core.tuple(%26, 0.5, %28))
│ %30 = Pumas.:(var"#676#678")::Core.Compiler.Const(Pumas.var"#676#678", false)
│ %31 = Core.typeof(quantiles::Core.Compiler.Const((0.1, 0.5, 0.9), false))::Core.Compiler.Const(Tuple{Float64,Float64,Float64}, false)
│ %32 = Core.typeof(dvname::Core.Compiler.Const(:dv, false))::Core.Compiler.Const(Symbol, false)
│ %33 = Core.typeof(h::Core.Compiler.Const(2, false))::Core.Compiler.Const(Int64, false)
│ %34 = Core.apply_type(%30, %31, %32, %33)::Core.Compiler.Const(Pumas.var"#676#678"{Tuple{Float64,Float64,Float64},Symbol,Int64}, false)
│ %35 = quantiles::Core.Compiler.Const((0.1, 0.5, 0.9), false)::Core.Compiler.Const((0.1, 0.5, 0.9), false)
│ %36 = dvname::Core.Compiler.Const(:dv, false)::Core.Compiler.Const(:dv, false)
│ (#676 = %new(%34, %35, %36, h::Core.Compiler.Const(2, false)))
│ %38 = #676::Core.Compiler.Const(Pumas.var"#676#678"{Tuple{Float64,Float64,Float64},Symbol,Int64}((0.1, 0.5, 0.9), :dv, 2), false)::Core.Compiler.Const(Pumas.var"#676#678"{Tuple{Float64,Float64,Float64},Symbol,Int64}((0.1, 0.5, 0.9), :dv, 2), false)
│ (sim_quantiles = Pumas.map(%38, sims))
│ (sim_quantile_ci = Pumas.quantile_sub_sim(sim_quantiles, quantiles::Core.Compiler.Const((0.1, 0.5, 0.9), false), ci_quantiles::Core.Compiler.Const((0.025000000000000022, 0.5, 0.975), false)))
│ %41 = Pumas.VPC(empirical, sim_quantile_ci)::Pumas.VPC{Array{Any,1},Array{Any,1}}
└── return %41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment