@code_warntype ransac_fit_fund_mat(pc,1.0)
MethodInstance for VisualGeometryToolkit.ransac_fit_fund_mat(::StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}, ::Float64)
from ransac_fit_fund_mat(pc, σ) in VisualGeometryToolkit at /home/jbpritts/.julia/dev/VisualGeometryToolkit/src/projective/fund_mat/ransac.jl:38
Arguments
#self#::Core.Const(VisualGeometryToolkit.ransac_fit_fund_mat)
pc::StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}
σ@_3::Float64
Locals
@_4::Int64
#427::VisualGeometryToolkit.var"#427#428"
cost::Any
mask::BitVector
model::Any
verifiers::Tuple{NamedTuple{(:calc_loss, :mask_inliers), Tuple{CalcLosses{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, MaskInliers}}}
proposers::Tuple{NamedTuple{(:sample, :test_sample, :solve), Tuple{SamplePc7{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, VisualGeometryToolkit.var"#427#428", typeof(pc7_to_fund_mat)}}}
mask_inliers::MaskInliers
calc_loss::CalcLosses{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}
sample_pc7::SamplePc7{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}
t::Float64
σ@_15::Float64
Body::Tuple{Any, BitVector, Any}
1 ─ (σ@_15 = σ@_3)
│ %2 = Core.tuple(σ@_15, 0.0001)::Core.PartialStruct(Tuple{Float64, Float64}, Any[Float64, Core.Const(0.0001)])
│ (σ@_15 = VisualGeometryToolkit.maximum(%2))
│ %4 = Base.getproperty(pc, :first)::Vector{SVector{3, Float64}}
│ %5 = VisualGeometryToolkit.neltype(%4)::Core.Const(Float64)
│ %6 = VisualGeometryToolkit.one(%5)::Core.Const(1.0)
│ (t = VisualGeometryToolkit.cauchy_ρ(3.84, %6))
│ %8 = Core.apply_type(VisualGeometryToolkit.FmMinPtSample, VisualGeometryToolkit.Float64)::Core.Const(MVector{7, SVector{3, Float64}})
│ %9 = (%8)(VisualGeometryToolkit.undef)::MVector{7, SVector{3, Float64}}
│ %10 = Core.apply_type(VisualGeometryToolkit.FmMinPtSample, VisualGeometryToolkit.Float64)::Core.Const(MVector{7, SVector{3, Float64}})
│ %11 = (%10)(VisualGeometryToolkit.undef)::MVector{7, SVector{3, Float64}}
│ %12 = Core.apply_type(VisualGeometryToolkit.MVector, 7, VisualGeometryToolkit.UInt32)::Core.Const(MVector{7, UInt32})│ %13 = (%12)(VisualGeometryToolkit.undef)::MVector{7, UInt32}
│ (sample_pc7 = VisualGeometryToolkit.SamplePc7(pc, %9, %11, %13))
│ %15 = Core.apply_type(VisualGeometryToolkit.Vector, VisualGeometryToolkit.Float64)::Core.Const(Vector{Float64})
│ %16 = VisualGeometryToolkit.length(pc)::Int64
│ %17 = (%15)(VisualGeometryToolkit.undef, %16)::Vector{Float64}
│ (calc_loss = VisualGeometryToolkit.CalcLosses(pc, %17, σ@_15))
│ %19 = VisualGeometryToolkit.length(pc)::Int64
│ %20 = VisualGeometryToolkit.BitVector(VisualGeometryToolkit.undef, %19)::BitVector
│ (mask_inliers = VisualGeometryToolkit.MaskInliers(%20, t::Core.Const(2.756560961162584)))
│ %22 = (:sample, :test_sample, :solve)::Core.Const((:sample, :test_sample, :solve))
│ %23 = Core.apply_type(Core.NamedTuple, %22)::Core.Const(NamedTuple{(:sample, :test_sample, :solve)})
│ %24 = sample_pc7::SamplePc7{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}
│ (#427 = %new(VisualGeometryToolkit.:(var"#427#428")))
│ %26 = #427::Core.Const(VisualGeometryToolkit.var"#427#428"())
│ %27 = Core.tuple(%24, %26, VisualGeometryToolkit.pc7_to_fund_mat)::Tuple{SamplePc7{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, VisualGeometryToolkit.var"#427#428", typeof(pc7_to_fund_mat)}
│ %28 = (%23)(%27)::NamedTuple{(:sample, :test_sample, :solve), Tuple{SamplePc7{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, VisualGeometryToolkit.var"#427#428", typeof(pc7_to_fund_mat)}}
│ (proposers = Core.tuple(%28))
│ %30 = (:calc_loss, :mask_inliers)::Core.Const((:calc_loss, :mask_inliers))
│ %31 = Core.apply_type(Core.NamedTuple, %30)::Core.Const(NamedTuple{(:calc_loss, :mask_inliers)})
│ %32 = Core.tuple(calc_loss, mask_inliers::Core.PartialStruct(MaskInliers, Any[BitVector, Core.Const(2.756560961162584)]))::Core.PartialStruct(Tuple{CalcLosses{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, MaskInliers}, Any[CalcLosses{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, Core.PartialStruct(MaskInliers, Any[BitVector, Core.Const(2.756560961162584)])])
│ %33 = (%31)(%32)::Core.PartialStruct(NamedTuple{(:calc_loss, :mask_inliers), Tuple{CalcLosses{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, MaskInliers}}, Any[CalcLosses{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, Core.PartialStruct(MaskInliers, Any[BitVector, Core.Const(2.756560961162584)])])
│ (verifiers = Core.tuple(%33))
│ %35 = VisualGeometryToolkit.ransac_fit(proposers, verifiers::Core.PartialStruct(Tuple{NamedTuple{(:calc_loss, :mask_inliers), Tuple{CalcLosses{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, MaskInliers}}}, Any[Core.PartialStruct(NamedTuple{(:calc_loss, :mask_inliers), Tuple{CalcLosses{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, MaskInliers}}, Any[CalcLosses{StructArrays.StructVector{NamedTuple{(:first, :second), Tuple{SVector{3, Float64}, SVector{3, Float64}}}, NamedTuple{(:first, :second), Tuple{Vector{SVector{3, Float64}}, Vector{SVector{3, Float64}}}}, Int64}}, Core.PartialStruct(MaskInliers, Any[BitVector, Core.Const(2.756560961162584)])])]))::Tuple{Any, BitVector, Any}
│ %36 = Base.indexed_iterate(%35, 1)::Core.PartialStruct(Tuple{Any, Int64}, Any[Any, Core.Const(2)])
│ (model = Core.getfield(%36, 1))
│ (@_4 = Core.getfield(%36, 2))
│ %39 = Base.indexed_iterate(%35, 2, @_4::Core.Const(2))::Core.PartialStruct(Tuple{BitVector, Int64}, Any[BitVector, Core.Const(3)])
│ (mask = Core.getfield(%39, 1))
│ (@_4 = Core.getfield(%39, 2))
│ %42 = Base.indexed_iterate(%35, 3, @_4::Core.Const(3))::Core.PartialStruct(Tuple{Any, Int64}, Any[Any, Core.Const(4)])
│ (cost = Core.getfield(%42, 1))
│ %44 = Core.tuple(model, mask, cost)::Tuple{Any, BitVector, Any}
└── return %44