Package evaluation to load BplusCore on Julia 1.14.0-DEV.2309 (6e1a27e459*) started at 2026-06-06T08:12:18.777 ################################################################################ # Set-up # Set-up completed after 0.15s ################################################################################ # Installation # Installing BplusCore... Resolving package versions... Installed BitFlags ───────── v0.1.10 Installed NamedTupleTools ── v0.14.3 Installed JSON3 ──────────── v1.14.3 Installed Setfield ───────── v1.1.2 Installed ConstructionBase ─ v1.6.0 Installed MacroTools ─────── v0.5.16 Installed Parsers ────────── v2.8.5 Installed BplusCore ──────── v0.3.3 Installed Preferences ────── v1.5.2 Installed StaticArrays ───── v1.9.18 Installed PrecompileTools ── v1.3.4 Installed StructTypes ────── v1.11.0 Installed TupleTools ─────── v1.6.0 Installed StaticArraysCore ─ v1.4.4 Updating `~/.julia/environments/v1.14/Project.toml` [1fb136ff] + BplusCore v0.3.3 Updating `~/.julia/environments/v1.14/Manifest.toml` [d1d4a3ce] + BitFlags v0.1.10 [1fb136ff] + BplusCore v0.3.3 [187b0558] + ConstructionBase v1.6.0 [0f8b85d8] + JSON3 v1.14.3 [1914dd2f] + MacroTools v0.5.16 [d9ec5142] + NamedTupleTools v0.14.3 [69de0a69] + Parsers v2.8.5 [aea7be01] + PrecompileTools v1.3.4 [21216c6a] + Preferences v1.5.2 [efcf1570] + Setfield v1.1.2 [90137ffa] + StaticArrays v1.9.18 [1e83bf80] + StaticArraysCore v1.4.4 [856f2bd8] + StructTypes v1.11.0 [9d95972d] + TupleTools v1.6.0 [56f22d72] + Artifacts v1.11.0 [ade2ca70] + Dates v1.11.0 [9fa8497b] + Future v1.11.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.14.0 [a63ad114] + Mmap v1.11.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.13.0 [fa267f1f] + TOML v1.0.3 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.5.2+0 [4536629a] + OpenBLAS_jll v0.3.33+0 [8e850b90] + libblastrampoline_jll v5.15.0+0 Installation completed after 9.82s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Project No packages added to or removed from `~/.julia/environments/pkgeval/Project.toml` Manifest No packages added to or removed from `~/.julia/environments/pkgeval/Manifest.toml` Precompiling package dependencies... Precompiling project... 4.9 s ✓ MacroTools 1.1 s ✓ NamedTupleTools 0.9 s ✓ StaticArraysCore 39.4 s ✓ BitFlags 1.0 s ✓ TupleTools 1.1 s ✓ ConstructionBase 3.5 s ✓ StructTypes 3.0 s ✓ Preferences 0.6 s ✓ ConstructionBase → ConstructionBaseLinearAlgebraExt 3.1 s ✓ PrecompileTools 3.4 s ✓ Setfield 352.4 s ✓ StaticArrays 37.4 s ✓ Parsers 34.0 s ✓ ConstructionBase → ConstructionBaseStaticArraysExt 39.6 s ✓ JSON3 ┌ Info: JuliaLowering threw given input: │ code = │ :(function (intersections(c::Capsule{N, F}, r::Ray{N, F}, ::Val{ShouldCalcNormal} = Val(false); min_t::F = zero(F), max_t::F = typemax_finite(F), atol::F = zero(F))::Union{UpTo{2, F}, Tuple{UpTo{2, F}, Vec3{F}}}) where {N, F, ShouldCalcNormal} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:18 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:28 =# │ ZERO = zero(F) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:29 =# │ ONE = one(F) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:30 =# │ V = Vec{N, F} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:31 =# │ NULL_RESULT = if ShouldCalcNormal │ (UpTo{2, F}(()), zero(Vec3{F})) │ else │ UpTo{2, F}(()) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:37 =# │ if N == 3 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:43 =# │ kW::V = c.b - c.a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:44 =# │ fW_length::F = vlength(kW) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:48 =# │ if isapprox(fW_length, ZERO; atol = atol) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:49 =# │ return intersections(Sphere{N, F}(c.a, c.radius), r, Val(ShouldCalcNormal); min_t = min_t, max_t = max_t, atol = atol) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:58 =# │ kW /= fW_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:61 =# │ local kU::V │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:63 =# │ if fW_length > ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:65 =# │ if abs(kW.x) >= abs(kW.y) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:67 =# │ inv_length = ONE / vlength(kW.xz) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:68 =# │ kU = V(-(kW.z) * inv_length, 0, kW.x * inv_length) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:73 =# │ inv_length = ONE / vlength(kW.yz) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:74 =# │ kU = V(0, kW.z * inv_length, -(kW.y) * inv_length) │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:79 =# │ kV::V = vnorm(v_rightward(kW, kU)) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:83 =# │ kD::V = V(kU ⋅ r.dir, kV ⋅ r.dir, kW ⋅ r.dir) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:86 =# │ fD_length::F = vlength(kD) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:87 =# │ fD_inv_length::F = if isapprox(fD_length, 0; atol = atol) │ ZERO │ else │ ONE / fD_length │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:90 =# │ kD *= fD_inv_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:94 =# │ kDiff::V = r.start - c.a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:95 =# │ kP::V = V(kU ⋅ kDiff, kV ⋅ kDiff, kW ⋅ kDiff) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:98 =# │ c_radius_sqr::F = c.radius * c.radius │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:100 =# │ local hits::NTuple{2, F} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:104 =# │ if abs(kD.z) >= ONE - atol || fD_length < atol │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:105 =# │ axis_dir::F = r.dir ⋅ kW │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:106 =# │ determinant::F = (c_radius_sqr - kP.x * kP.x) - kP.y * kP.y │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:107 =# │ local hit_sides::NTuple{2, Int8} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:108 =# │ if axis_dir < ZERO && determinant >= ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:109 =# │ root::F = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:110 =# │ hits = ((kP.z + root) * fD_inv_length, -(((fW_length - kP.z) + root)) * fD_inv_length) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:112 =# │ hit_sides = Int8.((2, 1)) │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:113 =# axis_dir > ZERO && determinant >= ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:114 =# │ root = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:115 =# │ hits = ((-(kP.z) + root) * fD_inv_length, ((fW_length - kP.z) + root) * fD_inv_length) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:117 =# │ hit_sides = Int8.((1, 2)) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:119 =# │ return NULL_RESULT │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:122 =# │ hits_output = UpTo{2, F}(hits) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:123 =# │ if !ShouldCalcNormal │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:124 =# │ return hits_output │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:128 =# │ local closest_hit_normal::V │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:129 =# │ closest_hit_pos::V = ray_at(r, hits_output[1]) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:130 =# │ if hit_sides[1] == 1 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:131 =# │ closest_hit_normal = vnorm(closest_hit_pos - c.a) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:133 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:133 =# @bp_math_assert hit_sides[2] == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:134 =# │ closest_hit_normal = vnorm(closest_hit_pos - c.b) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:136 =# │ return (hits_output, closest_hit_normal) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:142 =# │ n_capsule_hits::Int8 = 0 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:143 =# │ hits = (typemax(F), typemax(F)) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:144 =# │ hit_types::NTuple{2, E_CapsuleHitTypes} = (CapsuleHitTypes.null, CapsuleHitTypes.null) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:146 =# │ capsule_local_z_range = Interval{F}(min = 0, max = fW_length) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147 =# │ function calc_normal(t::F, type::E_CapsuleHitTypes)::Vec3{F} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:148 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:148 =# @bp_math_assert type != CapsuleHitTypes.null "Asked to calculate the normal of a 'null' intersection" │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:150 =# │ hit_pos::V = ray_at(r, t) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:151 =# │ if type == CapsuleHitTypes.pA │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:152 =# │ return vnorm(hit_pos - c.a) │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:153 =# type == CapsuleHitTypes.pB │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:154 =# │ return vnorm(hit_pos - c.b) │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:155 =# type == CapsuleHitTypes.body │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:159 =# │ hit_projection_to_cylinder::v3f = hit_pos ⋅ kW │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:160 =# │ return vnorm(hit_pos - hit_projection_to_cylinder) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:162 =# │ error("Unimplemented: ", type) │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:165 =# │ function try_add_hit(t::F, type::E_CapsuleHitTypes)::Bool │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:165 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:166 =# │ if t >= min_t && t <= max_t │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:167 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:167 =# @set! hits[n_capsule_hits + 1] = t │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:168 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:168 =# @set! hit_types[n_capsule_hits + 1] = type │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:169 =# │ n_capsule_hits += 1 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:170 =# │ return true │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:172 =# │ return false │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:175 =# │ function calc_output() │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:175 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:176 =# │ if hits[2] < hits[1] │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:177 =# │ hits = (hits[2], hits[1]) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:178 =# │ hit_types = (hit_types[2], hit_types[1]) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:180 =# │ hit_output = UpTo{2, F}(hits, n_capsule_hits) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:181 =# │ return if ShouldCalcNormal │ (hit_output, calc_normal(hits[1], hit_types[1])) │ else │ hit_output │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:187 =# │ local inv_a::F, t::F, capsule_local_t::F │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:192 =# │ a::F = vlength_sqr(kD.xy) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:193 =# │ b::F = kP.xy ⋅ kD.xy │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:194 =# │ c::F = vlength_sqr(kP.xy) - c_radius_sqr │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:195 =# │ determinant = b * b - a * c │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:196 =# │ if determinant < ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:197 =# │ return NULL_RESULT │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:199 =# │ if determinant > atol │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:203 =# │ root = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:204 =# │ inv_a = ONE / a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:205 =# │ for sign = (-1, 1) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:206 =# │ t = (-b + sign * root) * inv_a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:207 =# │ capsule_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:208 =# │ if is_touching(capsule_local_z_range, capsule_local_t) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:209 =# │ try_add_hit(t * fD_inv_length, if capsule_local_t < center(capsule_local_z_range) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:211 =# │ CapsuleHitTypes.pA │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:213 =# │ CapsuleHitTypes.pB │ end) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:216 =# │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:219 =# │ if n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:220 =# │ return calc_output() │ end │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:224 =# │ t = -b / a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:225 =# │ capsule_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:226 =# │ if is_touching(capsule_local_z_range, capsule_local_t) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:227 =# │ hit::F = t * fD_inv_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:228 =# │ if ShouldCalcNormal │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:229 =# │ return (UpTo{2, F}((hit,)), calc_normal(hit, CapsuleHitTypes.body)) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:232 =# │ return UpTo{2, F}((hit,)) │ end │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:239 =# │ b += kP.z * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:240 =# │ c += kP.z * kP.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:241 =# │ determinant = b * b - c │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:242 =# │ if determinant > ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:243 =# │ root = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:244 =# │ for sign = (-1, 1) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:245 =# │ t = -((b + sign * root)) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:246 =# │ cylinder_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:247 =# │ if cylinder_local_t <= ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:248 =# │ added = try_add_hit(t * fD_inv_length, CapsuleHitTypes.pA) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:249 =# │ if added && n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:250 =# │ return calc_output() │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:253 =# │ end │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:254 =# determinant == ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:255 =# │ t = -b │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:256 =# │ cylinder_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:257 =# │ if cylinder_local_t <= ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:258 =# │ added = try_add_hit(t * fD_inv_length, CapsuleHitTypes.pA) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:259 =# │ if added && n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:260 =# │ return calc_output() │ end │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:267 =# │ b -= kD.z * fW_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:268 =# │ c += fW_length * (fW_length - convert(F, 2) * kP.z) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:269 =# │ determinant = b * b - c │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:270 =# │ if determinant > ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:271 =# │ root = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:272 =# │ for sign = (-1, 1) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:273 =# │ t = -b + sign * root │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:274 =# │ cylinder_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:275 =# │ if cylinder_local_t >= fW_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:276 =# │ added = try_add_hit(t * fD_inv_length, CapsuleHitTypes.pB) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:277 =# │ if added && n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:278 =# │ return calc_outputs() │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:281 =# │ end │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:282 =# determinant == ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:283 =# │ t = -b │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:284 =# │ cylinder_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:285 =# │ if cylinder_local_t >= fW_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:286 =# │ added = try_add_hit(t * fD_inv_length, CapsuleHitTypes.pB) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:287 =# │ if added && n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:288 =# │ return calc_outputs() │ end │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:295 =# │ if n_capsule_hits == 1 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:296 =# │ hit_output = UpTo{2, F}(hits[1:1]) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:297 =# │ return if ShouldCalcNormal │ (hit_output, calc_normal(hits[1], hit_types[1])) │ else │ hit_output │ end │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:301 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:301 =# @bp_math_assert n_capsule_hits == 0 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:302 =# │ return NULL_RESULT │ end │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:305 =# │ error("Only implemented for 3 dimensions") │ end │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [function] │ │ [where] │ │ [::] │ │ [call] │ │ intersections :: Identifier │ │ [parameters] │ │ [kw] │ │ [::] │ │ min_t :: Identifier │ │ F :: Identifier │ │ [call] │ │ zero :: Identifier │ │ F :: Identifier │ │ [kw] │ │ [::] │ │ max_t :: Identifier │ │ F :: Identifier │ │ [call] │ │ typemax_finite :: Identifier │ │ F :: Identifier │ │ [kw] │ │ [::] │ │ atol :: Identifier │ │ F :: Identifier │ │ [call] │ │ zero :: Identifier │ │ F :: Identifier │ │ [::] │ │ c :: Identifier │ │ [curly] │ │ Capsule :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ [::] │ │ r :: Identifier │ │ [curly] │ │ Ray :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ [kw] │ │ [::] │ │ [curly] │ │ Val :: Identifier │ │ ShouldCalcNormal :: Identifier │ │ [call] │ │ Val :: Identifier │ │ false :: Value │ │ [curly] │ │ Union :: Identifier │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [curly] │ │ Tuple :: Identifier │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [curly] │ │ Vec3 :: Identifier │ │ F :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ ShouldCalcNormal :: Identifier │ │ [block] │ │ [=] │ │ ZERO :: Identifier │ │ [call] │ │ zero :: Identifier │ │ F :: Identifier │ │ [=] │ │ ONE :: Identifier │ │ [call] │ │ one :: Identifier │ │ F :: Identifier │ │ [=] │ │ V :: Identifier │ │ [curly] │ │ Vec :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ [=] │ │ NULL_RESULT :: Identifier │ │ [if] │ │ ShouldCalcNormal :: Identifier │ │ [tuple] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [tuple] │ │ [call] │ │ zero :: Identifier │ │ [curly] │ │ Vec3 :: Identifier │ │ F :: Identifier │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [tuple] │ │ [if] │ │ [call] │ │ == :: Identifier │ │ N :: Identifier │ │ 3 :: Value │ │ [block] │ │ [=] │ │ [::] │ │ kW :: Identifier │ │ V :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ b :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [=] │ │ [::] │ │ fW_length :: Identifier │ │ F :: Identifier │ │ [call] │ │ vlength :: Identifier │ │ kW :: Identifier │ │ [if] │ │ [call] │ │ isapprox :: Identifier │ │ [parameters] │ │ [kw] │ │ atol :: Identifier │ │ atol :: Identifier │ │ fW_length :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ intersections :: Identifier │ │ [parameters] │ │ [kw] │ │ min_t :: Identifier │ │ min_t :: Identifier │ │ [kw] │ │ max_t :: Identifier │ │ max_t :: Identifier │ │ [kw] │ │ atol :: Identifier │ │ atol :: Identifier │ │ [call] │ │ [curly] │ │ Sphere :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ radius :: Identifier │ │ r :: Identifier │ │ [call] │ │ Val :: Identifier │ │ ShouldCalcNormal :: Identifier │ │ [unknown_head] │ │ kW :: Identifier │ │ fW_length :: Identifier │ │ [local] │ │ [::] │ │ kU :: Identifier │ │ V :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ fW_length :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ >= :: Identifier │ │ [call] │ │ abs :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ x :: Identifier │ │ [call] │ │ abs :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ y :: Identifier │ │ [block] │ │ [=] │ │ inv_length :: Identifier │ │ [call] │ │ / :: Identifier │ │ ONE :: Identifier │ │ [call] │ │ vlength :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ xz :: Identifier │ │ [=] │ │ kU :: Identifier │ │ [call] │ │ V :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ z :: Identifier │ │ inv_length :: Identifier │ │ 0 :: Value │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ x :: Identifier │ │ inv_length :: Identifier │ │ [block] │ │ [=] │ │ inv_length :: Identifier │ │ [call] │ │ / :: Identifier │ │ ONE :: Identifier │ │ [call] │ │ vlength :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ yz :: Identifier │ │ [=] │ │ kU :: Identifier │ │ [call] │ │ V :: Identifier │ │ 0 :: Value │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ z :: Identifier │ │ inv_length :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ y :: Identifier │ │ inv_length :: Identifier │ │ [=] │ │ [::] │ │ kV :: Identifier │ │ V :: Identifier │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ v_rightward :: Identifier │ │ kW :: Identifier │ │ kU :: Identifier │ │ [=] │ │ [::] │ │ kD :: Identifier │ │ V :: Identifier │ │ [call] │ │ V :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kU :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ dir :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kV :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ dir :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kW :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ dir :: Identifier │ │ [=] │ │ [::] │ │ fD_length :: Identifier │ │ F :: Identifier │ │ [call] │ │ vlength :: Identifier │ │ kD :: Identifier │ │ [=] │ │ [::] │ │ fD_inv_length :: Identifier │ │ F :: Identifier │ │ [if] │ │ [call] │ │ isapprox :: Identifier │ │ [parameters] │ │ [kw] │ │ atol :: Identifier │ │ atol :: Identifier │ │ fD_length :: Identifier │ │ 0 :: Value │ │ ZERO :: Identifier │ │ [call] │ │ / :: Identifier │ │ ONE :: Identifier │ │ fD_length :: Identifier │ │ [unknown_head] │ │ kD :: Identifier │ │ fD_inv_length :: Identifier │ │ [=] │ │ [::] │ │ kDiff :: Identifier │ │ V :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ start :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [=] │ │ [::] │ │ kP :: Identifier │ │ V :: Identifier │ │ [call] │ │ V :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kU :: Identifier │ │ kDiff :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kV :: Identifier │ │ kDiff :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kW :: Identifier │ │ kDiff :: Identifier │ │ [=] │ │ [::] │ │ c_radius_sqr :: Identifier │ │ F :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ radius :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ radius :: Identifier │ │ [local] │ │ [::] │ │ hits :: Identifier │ │ [curly] │ │ NTuple :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [if] │ │ [||] │ │ [call] │ │ >= :: Identifier │ │ [call] │ │ abs :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ - :: Identifier │ │ ONE :: Identifier │ │ atol :: Identifier │ │ [call] │ │ < :: Identifier │ │ fD_length :: Identifier │ │ atol :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ axis_dir :: Identifier │ │ F :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ dir :: Identifier │ │ kW :: Identifier │ │ [=] │ │ [::] │ │ determinant :: Identifier │ │ F :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ - :: Identifier │ │ c_radius_sqr :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ x :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ x :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ y :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ y :: Identifier │ │ [local] │ │ [::] │ │ hit_sides :: Identifier │ │ [curly] │ │ NTuple :: Identifier │ │ 2 :: Value │ │ Int8 :: Identifier │ │ [if] │ │ [&&] │ │ [call] │ │ < :: Identifier │ │ axis_dir :: Identifier │ │ ZERO :: Identifier │ │ [call] │ │ >= :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ root :: Identifier │ │ F :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [=] │ │ hits :: Identifier │ │ [tuple] │ │ [call] │ │ * :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ │ fD_inv_length :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ fW_length :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ │ fD_inv_length :: Identifier │ │ [=] │ │ hit_sides :: Identifier │ │ [.] │ │ Int8 :: Identifier │ │ [tuple] │ │ [tuple] │ │ 2 :: Value │ │ 1 :: Value │ │ [elseif] │ │ [block] │ │ [&&] │ │ [call] │ │ > :: Identifier │ │ axis_dir :: Identifier │ │ ZERO :: Identifier │ │ [call] │ │ >= :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ root :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [=] │ │ hits :: Identifier │ │ [tuple] │ │ [call] │ │ * :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ │ fD_inv_length :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ fW_length :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ │ fD_inv_length :: Identifier │ │ [=] │ │ hit_sides :: Identifier │ │ [.] │ │ Int8 :: Identifier │ │ [tuple] │ │ [tuple] │ │ 1 :: Value │ │ 2 :: Value │ │ [block] │ │ [return] │ │ NULL_RESULT :: Identifier │ │ [=] │ │ hits_output :: Identifier │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ hits :: Identifier │ │ [if] │ │ [call] │ │ ! :: Identifier │ │ ShouldCalcNormal :: Identifier │ │ [block] │ │ [return] │ │ hits_output :: Identifier │ │ [local] │ │ [::] │ │ closest_hit_normal :: Identifier │ │ V :: Identifier │ │ [=] │ │ [::] │ │ closest_hit_pos :: Identifier │ │ V :: Identifier │ │ [call] │ │ ray_at :: Identifier │ │ r :: Identifier │ │ [ref] │ │ hits_output :: Identifier │ │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ │ [ref] │ │ hit_sides :: Identifier │ │ 1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ closest_hit_normal :: Identifier │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ closest_hit_pos :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [block] │ │ [macrocall] │ │ @bp_math_assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:133 =#) :: Value │ │ [call] │ │ == :: Identifier │ │ [ref] │ │ hit_sides :: Identifier │ │ 2 :: Value │ │ 2 :: Value │ │ [=] │ │ closest_hit_normal :: Identifier │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ closest_hit_pos :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ b :: Identifier │ │ [return] │ │ [tuple] │ │ hits_output :: Identifier │ │ closest_hit_normal :: Identifier │ │ [=] │ │ [::] │ │ n_capsule_hits :: Identifier │ │ Int8 :: Identifier │ │ 0 :: Value │ │ [=] │ │ hits :: Identifier │ │ [tuple] │ │ [call] │ │ typemax :: Identifier │ │ F :: Identifier │ │ [call] │ │ typemax :: Identifier │ │ F :: Identifier │ │ [=] │ │ [::] │ │ hit_types :: Identifier │ │ [curly] │ │ NTuple :: Identifier │ │ 2 :: Value │ │ E_CapsuleHitTypes :: Identifier │ │ [tuple] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ null :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ null :: Identifier │ │ [=] │ │ capsule_local_z_range :: Identifier │ │ [call] │ │ [curly] │ │ Interval :: Identifier │ │ F :: Identifier │ │ [kw] │ │ min :: Identifier │ │ 0 :: Value │ │ [kw] │ │ max :: Identifier │ │ fW_length :: Identifier │ │ [function] │ │ [::] │ │ [call] │ │ calc_normal :: Identifier │ │ [::] │ │ t :: Identifier │ │ F :: Identifier │ │ [::] │ │ type :: Identifier │ │ E_CapsuleHitTypes :: Identifier │ │ [curly] │ │ Vec3 :: Identifier │ │ F :: Identifier │ │ [block] │ │ [macrocall] │ │ @bp_math_assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:148 =#) :: Value │ │ [call] │ │ != :: Identifier │ │ type :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ null :: Identifier │ │ "Asked to calculate the normal of a 'null' intersection" :: Value │ │ [=] │ │ [::] │ │ hit_pos :: Identifier │ │ V :: Identifier │ │ [call] │ │ ray_at :: Identifier │ │ r :: Identifier │ │ t :: Identifier │ │ [if] │ │ [call] │ │ == :: Identifier │ │ type :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pA :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ hit_pos :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ │ type :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pB :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ hit_pos :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ b :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ │ type :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ body :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ hit_projection_to_cylinder :: Identifier │ │ v3f :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ hit_pos :: Identifier │ │ kW :: Identifier │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ hit_pos :: Identifier │ │ hit_projection_to_cylinder :: Identifier │ │ [block] │ │ [call] │ │ error :: Identifier │ │ "Unimplemented: " :: Value │ │ type :: Identifier │ │ [function] │ │ [::] │ │ [call] │ │ try_add_hit :: Identifier │ │ [::] │ │ t :: Identifier │ │ F :: Identifier │ │ [::] │ │ type :: Identifier │ │ E_CapsuleHitTypes :: Identifier │ │ Bool :: Identifier │ │ [block] │ │ [if] │ │ [&&] │ │ [call] │ │ >= :: Identifier │ │ t :: Identifier │ │ min_t :: Identifier │ │ [call] │ │ <= :: Identifier │ │ t :: Identifier │ │ max_t :: Identifier │ │ [block] │ │ [macrocall] │ │ @set! :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:167 =#) :: Value │ │ [=] │ │ [ref] │ │ hits :: Identifier │ │ [call] │ │ + :: Identifier │ │ n_capsule_hits :: Identifier │ │ 1 :: Value │ │ t :: Identifier │ │ [macrocall] │ │ @set! :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:168 =#) :: Value │ │ [=] │ │ [ref] │ │ hit_types :: Identifier │ │ [call] │ │ + :: Identifier │ │ n_capsule_hits :: Identifier │ │ 1 :: Value │ │ type :: Identifier │ │ [unknown_head] │ │ n_capsule_hits :: Identifier │ │ 1 :: Value │ │ [return] │ │ true :: Value │ │ [block] │ │ [return] │ │ false :: Value │ │ [function] │ │ [call] │ │ calc_output :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ < :: Identifier │ │ [ref] │ │ hits :: Identifier │ │ 2 :: Value │ │ [ref] │ │ hits :: Identifier │ │ 1 :: Value │ │ [block] │ │ [=] │ │ hits :: Identifier │ │ [tuple] │ │ [ref] │ │ hits :: Identifier │ │ 2 :: Value │ │ [ref] │ │ hits :: Identifier │ │ 1 :: Value │ │ [=] │ │ hit_types :: Identifier │ │ [tuple] │ │ [ref] │ │ hit_types :: Identifier │ │ 2 :: Value │ │ [ref] │ │ hit_types :: Identifier │ │ 1 :: Value │ │ [=] │ │ hit_output :: Identifier │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ hits :: Identifier │ │ n_capsule_hits :: Identifier │ │ [return] │ │ [if] │ │ ShouldCalcNormal :: Identifier │ │ [tuple] │ │ hit_output :: Identifier │ │ [call] │ │ calc_normal :: Identifier │ │ [ref] │ │ hits :: Identifier │ │ 1 :: Value │ │ [ref] │ │ hit_types :: Identifier │ │ 1 :: Value │ │ hit_output :: Identifier │ │ [local] │ │ [::] │ │ inv_a :: Identifier │ │ F :: Identifier │ │ [::] │ │ t :: Identifier │ │ F :: Identifier │ │ [::] │ │ capsule_local_t :: Identifier │ │ F :: Identifier │ │ [=] │ │ [::] │ │ a :: Identifier │ │ F :: Identifier │ │ [call] │ │ vlength_sqr :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ xy :: Identifier │ │ [=] │ │ [::] │ │ b :: Identifier │ │ F :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ xy :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ xy :: Identifier │ │ [=] │ │ [::] │ │ c :: Identifier │ │ F :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ vlength_sqr :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ xy :: Identifier │ │ c_radius_sqr :: Identifier │ │ [=] │ │ determinant :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ * :: Identifier │ │ b :: Identifier │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ a :: Identifier │ │ c :: Identifier │ │ [if] │ │ [call] │ │ < :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [return] │ │ NULL_RESULT :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ determinant :: Identifier │ │ atol :: Identifier │ │ [block] │ │ [=] │ │ root :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [=] │ │ inv_a :: Identifier │ │ [call] │ │ / :: Identifier │ │ ONE :: Identifier │ │ a :: Identifier │ │ [for] │ │ [=] │ │ sign :: Identifier │ │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ sign :: Identifier │ │ root :: Identifier │ │ inv_a :: Identifier │ │ [=] │ │ capsule_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ is_touching :: Identifier │ │ capsule_local_z_range :: Identifier │ │ capsule_local_t :: Identifier │ │ [block] │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [if] │ │ [call] │ │ < :: Identifier │ │ capsule_local_t :: Identifier │ │ [call] │ │ center :: Identifier │ │ capsule_local_z_range :: Identifier │ │ [block] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pA :: Identifier │ │ [block] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ / :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ a :: Identifier │ │ [=] │ │ capsule_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ is_touching :: Identifier │ │ capsule_local_z_range :: Identifier │ │ capsule_local_t :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ hit :: Identifier │ │ F :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [if] │ │ ShouldCalcNormal :: Identifier │ │ [block] │ │ [return] │ │ [tuple] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [tuple] │ │ hit :: Identifier │ │ [call] │ │ calc_normal :: Identifier │ │ hit :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ body :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [tuple] │ │ hit :: Identifier │ │ [unknown_head] │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [unknown_head] │ │ c :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [=] │ │ determinant :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ * :: Identifier │ │ b :: Identifier │ │ b :: Identifier │ │ c :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ root :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [for] │ │ [=] │ │ sign :: Identifier │ │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ + :: Identifier │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ sign :: Identifier │ │ root :: Identifier │ │ [=] │ │ cylinder_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ <= :: Identifier │ │ cylinder_local_t :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ added :: Identifier │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pA :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ [=] │ │ cylinder_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ <= :: Identifier │ │ cylinder_local_t :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ added :: Identifier │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pA :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ │ [unknown_head] │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ fW_length :: Identifier │ │ [unknown_head] │ │ c :: Identifier │ │ [call] │ │ * :: Identifier │ │ fW_length :: Identifier │ │ [call] │ │ - :: Identifier │ │ fW_length :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ convert :: Identifier │ │ F :: Identifier │ │ 2 :: Value │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [=] │ │ determinant :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ * :: Identifier │ │ b :: Identifier │ │ b :: Identifier │ │ c :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ root :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [for] │ │ [=] │ │ sign :: Identifier │ │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ sign :: Identifier │ │ root :: Identifier │ │ [=] │ │ cylinder_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ >= :: Identifier │ │ cylinder_local_t :: Identifier │ │ fW_length :: Identifier │ │ [block] │ │ [=] │ │ added :: Identifier │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_outputs :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ [=] │ │ cylinder_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ >= :: Identifier │ │ cylinder_local_t :: Identifier │ │ fW_length :: Identifier │ │ [block] │ │ [=] │ │ added :: Identifier │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_outputs :: Identifier │ │ [if] │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 1 :: Value │ │ [block] │ │ [=] │ │ hit_output :: Identifier │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [ref] │ │ hits :: Identifier │ │ [call] │ │ : :: Identifier │ │ 1 :: Value │ │ 1 :: Value │ │ [return] │ │ [if] │ │ ShouldCalcNormal :: Identifier │ │ [tuple] │ │ hit_output :: Identifier │ │ [call] │ │ calc_normal :: Identifier │ │ [ref] │ │ hits :: Identifier │ │ 1 :: Value │ │ [ref] │ │ hit_types :: Identifier │ │ 1 :: Value │ │ hit_output :: Identifier │ │ [block] │ │ [macrocall] │ │ @bp_math_assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:301 =#) :: Value │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 0 :: Value │ │ [return] │ │ NULL_RESULT :: Identifier │ │ [block] │ │ [call] │ │ error :: Identifier │ │ "Only implemented for 3 dimensions" :: Value │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [function] │ │ [where] │ │ [::] │ │ [call] │ │ intersections :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ [::] │ │ min_t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ zero :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [kw] │ │ [::] │ │ max_t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ typemax_finite :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [kw] │ │ [::] │ │ atol :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ zero :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ c :: Identifier │ scope_layer=1 │ [curly] │ │ Capsule :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ r :: Identifier │ scope_layer=1 │ [curly] │ │ Ray :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [kw] │ │ [::] │ │ [curly] │ │ Val :: Identifier │ scope_layer=1 │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [call] │ │ Val :: Identifier │ scope_layer=1 │ false :: Value │ │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [curly] │ │ Vec3 :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ ZERO :: Identifier │ scope_layer=1 │ [call] │ │ zero :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ ONE :: Identifier │ scope_layer=1 │ [call] │ │ one :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ V :: Identifier │ scope_layer=1 │ [curly] │ │ Vec :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ NULL_RESULT :: Identifier │ scope_layer=1 │ [if] │ │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ zero :: Identifier │ scope_layer=1 │ [curly] │ │ Vec3 :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [tuple] │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ 3 :: Value │ │ [block] │ │ [=] │ │ [::] │ │ kW :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ b :: Identifier │ │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [=] │ │ [::] │ │ fW_length :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ vlength :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ isapprox :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ atol :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [call] │ │ intersections :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ min_t :: Identifier │ scope_layer=1 │ min_t :: Identifier │ scope_layer=1 │ [kw] │ │ max_t :: Identifier │ scope_layer=1 │ max_t :: Identifier │ scope_layer=1 │ [kw] │ │ atol :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ Sphere :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ radius :: Identifier │ │ r :: Identifier │ scope_layer=1 │ [call] │ │ Val :: Identifier │ scope_layer=1 │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [local] │ │ [::] │ │ kU :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ [call] │ │ abs :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ x :: Identifier │ │ [call] │ │ abs :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ y :: Identifier │ │ [block] │ │ [=] │ │ inv_length :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ [call] │ │ vlength :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ xz :: Identifier │ │ [=] │ │ kU :: Identifier │ scope_layer=1 │ [call] │ │ V :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ inv_length :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ x :: Identifier │ │ inv_length :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ inv_length :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ [call] │ │ vlength :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ yz :: Identifier │ │ [=] │ │ kU :: Identifier │ scope_layer=1 │ [call] │ │ V :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ inv_length :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ y :: Identifier │ │ inv_length :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ kV :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ v_rightward :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ kU :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ kD :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ V :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kU :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ dir :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kV :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ dir :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ dir :: Identifier │ │ [=] │ │ [::] │ │ fD_length :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ vlength :: Identifier │ scope_layer=1 │ kD :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ fD_inv_length :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ isapprox :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ atol :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ fD_length :: Identifier │ scope_layer=1 │ 0 :: Value │ │ ZERO :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ fD_length :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ kD :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ kDiff :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ start :: Identifier │ │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [=] │ │ [::] │ │ kP :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ V :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kU :: Identifier │ scope_layer=1 │ kDiff :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kV :: Identifier │ scope_layer=1 │ kDiff :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ kDiff :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ c_radius_sqr :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ radius :: Identifier │ │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ radius :: Identifier │ │ [local] │ │ [::] │ │ hits :: Identifier │ scope_layer=1 │ [curly] │ │ NTuple :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [if] │ │ [||] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ [call] │ │ abs :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ - :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ [call] │ │ < :: Identifier │ scope_layer=1 │ fD_length :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [::] │ │ axis_dir :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ dir :: Identifier │ │ kW :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ determinant :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ c_radius_sqr :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ x :: Identifier │ │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ x :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ y :: Identifier │ │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ y :: Identifier │ │ [local] │ │ [::] │ │ hit_sides :: Identifier │ scope_layer=1 │ [curly] │ │ NTuple :: Identifier │ scope_layer=1 │ 2 :: Value │ │ Int8 :: Identifier │ scope_layer=1 │ [if] │ │ [&&] │ │ [call] │ │ < :: Identifier │ scope_layer=1 │ axis_dir :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [call] │ │ >= :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [::] │ │ root :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [=] │ │ hit_sides :: Identifier │ scope_layer=1 │ [.] │ │ Int8 :: Identifier │ scope_layer=1 │ [tuple] │ │ [tuple] │ │ 2 :: Value │ │ 1 :: Value │ │ [elseif] │ │ [block] │ │ [&&] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ axis_dir :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [call] │ │ >= :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ root :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [=] │ │ hit_sides :: Identifier │ scope_layer=1 │ [.] │ │ Int8 :: Identifier │ scope_layer=1 │ [tuple] │ │ [tuple] │ │ 1 :: Value │ │ 2 :: Value │ │ [block] │ │ [return] │ │ NULL_RESULT :: Identifier │ scope_layer=1 │ [=] │ │ hits_output :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ hits :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ hits_output :: Identifier │ scope_layer=1 │ [local] │ │ [::] │ │ closest_hit_normal :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ closest_hit_pos :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ ray_at :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ [ref] │ │ hits_output :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ [ref] │ │ hit_sides :: Identifier │ scope_layer=1 │ 1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ closest_hit_normal :: Identifier │ scope_layer=1 │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ closest_hit_pos :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ bp_math_asserts_enabled :: Identifier │ scope_layer=2 │ [block] │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ [ref] │ │ hit_sides :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=2074 │ 2 :: Value │ macro_source=2074 │ nothing :: Value │ macro_source=2074 │ [call] │ │ throw :: Identifier │ scope_layer=3 │ [call] │ │ AssertionError :: Identifier │ scope_layer=3 │ [call] │ │ Base._assert_tostring :: Value │ macro_source=2074 │ [call] │ │ string :: Identifier │ scope_layer=2 │ [=] │ │ closest_hit_normal :: Identifier │ scope_layer=1 │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ closest_hit_pos :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ b :: Identifier │ │ [return] │ │ [tuple] │ │ hits_output :: Identifier │ scope_layer=1 │ closest_hit_normal :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ n_capsule_hits :: Identifier │ scope_layer=1 │ Int8 :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ typemax :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ typemax :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ hit_types :: Identifier │ scope_layer=1 │ [curly] │ │ NTuple :: Identifier │ scope_layer=1 │ 2 :: Value │ │ E_CapsuleHitTypes :: Identifier │ scope_layer=1 │ [tuple] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ null :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ null :: Identifier │ │ [=] │ │ capsule_local_z_range :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ Interval :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [kw] │ │ min :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [kw] │ │ max :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [function] │ │ [::] │ │ [call] │ │ calc_normal :: Identifier │ scope_layer=1 │ [::] │ │ t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ type :: Identifier │ scope_layer=1 │ E_CapsuleHitTypes :: Identifier │ scope_layer=1 │ [curly] │ │ Vec3 :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ bp_math_asserts_enabled :: Identifier │ scope_layer=4 │ [block] │ │ [if] │ │ [call] │ │ != :: Identifier │ scope_layer=1 │ type :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ null :: Identifier │ │ nothing :: Value │ macro_source=2200 │ [call] │ │ throw :: Identifier │ scope_layer=5 │ [call] │ │ AssertionError :: Identifier │ scope_layer=5 │ [call] │ │ Base._assert_tostring :: Value │ macro_source=2200 │ [call] │ │ string :: Identifier │ scope_layer=4 │ "Asked to calculate the normal of a 'null' intersection" :: Value │ macro_source=2200 │ [=] │ │ [::] │ │ hit_pos :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ ray_at :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ type :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pA :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ hit_pos :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ type :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pB :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ hit_pos :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ b :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ type :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ body :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ hit_projection_to_cylinder :: Identifier │ scope_layer=1 │ v3f :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ hit_pos :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ [return] │ │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ hit_pos :: Identifier │ scope_layer=1 │ hit_projection_to_cylinder :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ error :: Identifier │ scope_layer=1 │ "Unimplemented: " :: Value │ │ type :: Identifier │ scope_layer=1 │ [function] │ │ [::] │ │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [::] │ │ t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ type :: Identifier │ scope_layer=1 │ E_CapsuleHitTypes :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [&&] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ min_t :: Identifier │ scope_layer=1 │ [call] │ │ <= :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ max_t :: Identifier │ scope_layer=1 │ [block] │ │ [block] │ │ [=] │ │ ##lens#1061 :: Identifier │ scope_layer=6 │ [call] │ │ identity :: Value │ macro_source=802 │ [call] │ │ Setfield.compose :: Value │ macro_source=802 │ [call] │ │ Setfield.IndexLens :: Value │ macro_source=802 │ [tuple] │ │ [call] │ │ + :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=802 │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [call] │ │ Setfield.set :: Value │ macro_source=802 │ hits :: Identifier │ scope_layer=1 │ ##lens#1061 :: Identifier │ scope_layer=6 │ t :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ ##lens#1062 :: Identifier │ scope_layer=7 │ [call] │ │ identity :: Value │ macro_source=813 │ [call] │ │ Setfield.compose :: Value │ macro_source=813 │ [call] │ │ Setfield.IndexLens :: Value │ macro_source=813 │ [tuple] │ │ [call] │ │ + :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=813 │ [=] │ │ hit_types :: Identifier │ scope_layer=1 │ [call] │ │ Setfield.set :: Value │ macro_source=813 │ hit_types :: Identifier │ scope_layer=1 │ ##lens#1062 :: Identifier │ scope_layer=7 │ type :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [return] │ │ true :: Value │ │ [block] │ │ [return] │ │ false :: Value │ │ [function] │ │ [call] │ │ calc_output :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ < :: Identifier │ scope_layer=1 │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [block] │ │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [tuple] │ │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [=] │ │ hit_types :: Identifier │ scope_layer=1 │ [tuple] │ │ [ref] │ │ hit_types :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [ref] │ │ hit_types :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [=] │ │ hit_output :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ hits :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ [return] │ │ [if] │ │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [tuple] │ │ hit_output :: Identifier │ scope_layer=1 │ [call] │ │ calc_normal :: Identifier │ scope_layer=1 │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [ref] │ │ hit_types :: Identifier │ scope_layer=1 │ 1 :: Value │ │ hit_output :: Identifier │ scope_layer=1 │ [local] │ │ [::] │ │ inv_a :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ capsule_local_t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ a :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ vlength_sqr :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ xy :: Identifier │ │ [=] │ │ [::] │ │ b :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ xy :: Identifier │ │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ xy :: Identifier │ │ [=] │ │ [::] │ │ c :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ vlength_sqr :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ xy :: Identifier │ │ c_radius_sqr :: Identifier │ scope_layer=1 │ [=] │ │ determinant :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ a :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ < :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ NULL_RESULT :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ root :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [=] │ │ inv_a :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ a :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ sign :: Identifier │ scope_layer=1 │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ sign :: Identifier │ scope_layer=1 │ root :: Identifier │ scope_layer=1 │ inv_a :: Identifier │ scope_layer=1 │ [=] │ │ capsule_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ is_touching :: Identifier │ scope_layer=1 │ capsule_local_z_range :: Identifier │ scope_layer=1 │ capsule_local_t :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ < :: Identifier │ scope_layer=1 │ capsule_local_t :: Identifier │ scope_layer=1 │ [call] │ │ center :: Identifier │ scope_layer=1 │ capsule_local_z_range :: Identifier │ scope_layer=1 │ [block] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pA :: Identifier │ │ [block] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ a :: Identifier │ scope_layer=1 │ [=] │ │ capsule_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ is_touching :: Identifier │ scope_layer=1 │ capsule_local_z_range :: Identifier │ scope_layer=1 │ capsule_local_t :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [::] │ │ hit :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [if] │ │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [tuple] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [tuple] │ │ hit :: Identifier │ scope_layer=1 │ [call] │ │ calc_normal :: Identifier │ scope_layer=1 │ hit :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ body :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [tuple] │ │ hit :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [unknown_head] │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [=] │ │ determinant :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ root :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ sign :: Identifier │ scope_layer=1 │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ sign :: Identifier │ scope_layer=1 │ root :: Identifier │ scope_layer=1 │ [=] │ │ cylinder_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ <= :: Identifier │ scope_layer=1 │ cylinder_local_t :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pA :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [=] │ │ cylinder_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ <= :: Identifier │ scope_layer=1 │ cylinder_local_t :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pA :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ fW_length :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ convert :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [=] │ │ determinant :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ root :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ sign :: Identifier │ scope_layer=1 │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ sign :: Identifier │ scope_layer=1 │ root :: Identifier │ scope_layer=1 │ [=] │ │ cylinder_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ cylinder_local_t :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_outputs :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [=] │ │ cylinder_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ cylinder_local_t :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_outputs :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [block] │ │ [=] │ │ hit_output :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ 1 :: Value │ │ 1 :: Value │ │ [return] │ │ [if] │ │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [tuple] │ │ hit_output :: Identifier │ scope_layer=1 │ [call] │ │ calc_normal :: Identifier │ scope_layer=1 │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [ref] │ │ hit_types :: Identifier │ scope_layer=1 │ 1 :: Value │ │ hit_output :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ bp_math_asserts_enabled :: Identifier │ scope_layer=8 │ [block] │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=3055 │ nothing :: Value │ macro_source=3055 │ [call] │ │ throw :: Identifier │ scope_layer=9 │ [call] │ │ AssertionError :: Identifier │ scope_layer=9 │ [call] │ │ Base._assert_tostring :: Value │ macro_source=3055 │ [call] │ │ string :: Identifier │ scope_layer=8 │ [return] │ │ NULL_RESULT :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ error :: Identifier │ scope_layer=1 │ "Only implemented for 3 dimensions" :: Value │ │ │ file = "/home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl" │ line = 18 └ mod = BplusCore.Math ERROR: LoadError: LoweringError: #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147 =# - Found unexpected binding of kind static_parameter Expression:  #₅₂/F Containing expressions:  (= #₅₀₆/F #₅₂/F)  (= #₁₀ (call core.svec (call core.svec #₃₂₈/##kw_body#intersections#3#calc_normal##0 #₅₂/F #₁₂₂/E_CapsuleHitTypes) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147:0))  (= #₁₀ (call core.svec (call core.svec (function_type #₇₀/calc_normal) #₅₂/F #₁₂₂/E_CapsuleHitTypes) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147:0))  Detailed provenance:  #₅₂/F  └─ F  └─ F  └─ @ /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147  Stacktrace:  [1] _renumber(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ssa_rewrites::Dict{Int64, Int64}, slot_rewrites::Dict{Int64, Int64}, label_table::Dict{Int64, Int64}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1091  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1156  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1251  [4] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1281  [5] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [6] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [7] top-level scope  @ ~/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/Shapes.jl:104  [8] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [9] top-level scope  @ ~/.julia/packages/BplusCore/Qm2Rg/src/Math/Math.jl:18  [10] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [11] top-level scope  @ ~/.julia/packages/BplusCore/Qm2Rg/src/BplusCore.jl:7  [12] include(mod::Module, _path::String)  @ Base Base.jl:326  [13] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [14] top-level scope  @ stdin:5  [15] eval(m::Module, e::Any)  @ Core boot.jl:521  [16] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [17] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [18] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [19] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:18 in expression starting at /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/Shapes.jl:104 in expression starting at /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/Math.jl:1 in expression starting at /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/BplusCore.jl:1 in expression starting at stdin:5 ✗ BplusCore 15 dependencies successfully precompiled in 983 seconds. 7 already precompiled. Precompilation completed after 1002.39s ################################################################################ # Loading # Loading BplusCore... ┌ Info: JuliaLowering threw given input: │ code = │ :(function (intersections(c::Capsule{N, F}, r::Ray{N, F}, ::Val{ShouldCalcNormal} = Val(false); min_t::F = zero(F), max_t::F = typemax_finite(F), atol::F = zero(F))::Union{UpTo{2, F}, Tuple{UpTo{2, F}, Vec3{F}}}) where {N, F, ShouldCalcNormal} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:18 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:28 =# │ ZERO = zero(F) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:29 =# │ ONE = one(F) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:30 =# │ V = Vec{N, F} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:31 =# │ NULL_RESULT = if ShouldCalcNormal │ (UpTo{2, F}(()), zero(Vec3{F})) │ else │ UpTo{2, F}(()) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:37 =# │ if N == 3 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:43 =# │ kW::V = c.b - c.a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:44 =# │ fW_length::F = vlength(kW) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:48 =# │ if isapprox(fW_length, ZERO; atol = atol) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:49 =# │ return intersections(Sphere{N, F}(c.a, c.radius), r, Val(ShouldCalcNormal); min_t = min_t, max_t = max_t, atol = atol) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:58 =# │ kW /= fW_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:61 =# │ local kU::V │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:63 =# │ if fW_length > ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:65 =# │ if abs(kW.x) >= abs(kW.y) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:67 =# │ inv_length = ONE / vlength(kW.xz) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:68 =# │ kU = V(-(kW.z) * inv_length, 0, kW.x * inv_length) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:73 =# │ inv_length = ONE / vlength(kW.yz) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:74 =# │ kU = V(0, kW.z * inv_length, -(kW.y) * inv_length) │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:79 =# │ kV::V = vnorm(v_rightward(kW, kU)) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:83 =# │ kD::V = V(kU ⋅ r.dir, kV ⋅ r.dir, kW ⋅ r.dir) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:86 =# │ fD_length::F = vlength(kD) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:87 =# │ fD_inv_length::F = if isapprox(fD_length, 0; atol = atol) │ ZERO │ else │ ONE / fD_length │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:90 =# │ kD *= fD_inv_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:94 =# │ kDiff::V = r.start - c.a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:95 =# │ kP::V = V(kU ⋅ kDiff, kV ⋅ kDiff, kW ⋅ kDiff) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:98 =# │ c_radius_sqr::F = c.radius * c.radius │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:100 =# │ local hits::NTuple{2, F} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:104 =# │ if abs(kD.z) >= ONE - atol || fD_length < atol │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:105 =# │ axis_dir::F = r.dir ⋅ kW │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:106 =# │ determinant::F = (c_radius_sqr - kP.x * kP.x) - kP.y * kP.y │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:107 =# │ local hit_sides::NTuple{2, Int8} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:108 =# │ if axis_dir < ZERO && determinant >= ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:109 =# │ root::F = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:110 =# │ hits = ((kP.z + root) * fD_inv_length, -(((fW_length - kP.z) + root)) * fD_inv_length) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:112 =# │ hit_sides = Int8.((2, 1)) │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:113 =# axis_dir > ZERO && determinant >= ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:114 =# │ root = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:115 =# │ hits = ((-(kP.z) + root) * fD_inv_length, ((fW_length - kP.z) + root) * fD_inv_length) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:117 =# │ hit_sides = Int8.((1, 2)) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:119 =# │ return NULL_RESULT │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:122 =# │ hits_output = UpTo{2, F}(hits) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:123 =# │ if !ShouldCalcNormal │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:124 =# │ return hits_output │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:128 =# │ local closest_hit_normal::V │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:129 =# │ closest_hit_pos::V = ray_at(r, hits_output[1]) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:130 =# │ if hit_sides[1] == 1 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:131 =# │ closest_hit_normal = vnorm(closest_hit_pos - c.a) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:133 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:133 =# @bp_math_assert hit_sides[2] == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:134 =# │ closest_hit_normal = vnorm(closest_hit_pos - c.b) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:136 =# │ return (hits_output, closest_hit_normal) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:142 =# │ n_capsule_hits::Int8 = 0 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:143 =# │ hits = (typemax(F), typemax(F)) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:144 =# │ hit_types::NTuple{2, E_CapsuleHitTypes} = (CapsuleHitTypes.null, CapsuleHitTypes.null) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:146 =# │ capsule_local_z_range = Interval{F}(min = 0, max = fW_length) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147 =# │ function calc_normal(t::F, type::E_CapsuleHitTypes)::Vec3{F} │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:148 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:148 =# @bp_math_assert type != CapsuleHitTypes.null "Asked to calculate the normal of a 'null' intersection" │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:150 =# │ hit_pos::V = ray_at(r, t) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:151 =# │ if type == CapsuleHitTypes.pA │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:152 =# │ return vnorm(hit_pos - c.a) │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:153 =# type == CapsuleHitTypes.pB │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:154 =# │ return vnorm(hit_pos - c.b) │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:155 =# type == CapsuleHitTypes.body │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:159 =# │ hit_projection_to_cylinder::v3f = hit_pos ⋅ kW │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:160 =# │ return vnorm(hit_pos - hit_projection_to_cylinder) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:162 =# │ error("Unimplemented: ", type) │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:165 =# │ function try_add_hit(t::F, type::E_CapsuleHitTypes)::Bool │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:165 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:166 =# │ if t >= min_t && t <= max_t │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:167 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:167 =# @set! hits[n_capsule_hits + 1] = t │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:168 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:168 =# @set! hit_types[n_capsule_hits + 1] = type │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:169 =# │ n_capsule_hits += 1 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:170 =# │ return true │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:172 =# │ return false │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:175 =# │ function calc_output() │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:175 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:176 =# │ if hits[2] < hits[1] │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:177 =# │ hits = (hits[2], hits[1]) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:178 =# │ hit_types = (hit_types[2], hit_types[1]) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:180 =# │ hit_output = UpTo{2, F}(hits, n_capsule_hits) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:181 =# │ return if ShouldCalcNormal │ (hit_output, calc_normal(hits[1], hit_types[1])) │ else │ hit_output │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:187 =# │ local inv_a::F, t::F, capsule_local_t::F │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:192 =# │ a::F = vlength_sqr(kD.xy) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:193 =# │ b::F = kP.xy ⋅ kD.xy │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:194 =# │ c::F = vlength_sqr(kP.xy) - c_radius_sqr │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:195 =# │ determinant = b * b - a * c │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:196 =# │ if determinant < ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:197 =# │ return NULL_RESULT │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:199 =# │ if determinant > atol │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:203 =# │ root = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:204 =# │ inv_a = ONE / a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:205 =# │ for sign = (-1, 1) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:206 =# │ t = (-b + sign * root) * inv_a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:207 =# │ capsule_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:208 =# │ if is_touching(capsule_local_z_range, capsule_local_t) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:209 =# │ try_add_hit(t * fD_inv_length, if capsule_local_t < center(capsule_local_z_range) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:211 =# │ CapsuleHitTypes.pA │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:213 =# │ CapsuleHitTypes.pB │ end) │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:216 =# │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:219 =# │ if n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:220 =# │ return calc_output() │ end │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:224 =# │ t = -b / a │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:225 =# │ capsule_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:226 =# │ if is_touching(capsule_local_z_range, capsule_local_t) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:227 =# │ hit::F = t * fD_inv_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:228 =# │ if ShouldCalcNormal │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:229 =# │ return (UpTo{2, F}((hit,)), calc_normal(hit, CapsuleHitTypes.body)) │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:232 =# │ return UpTo{2, F}((hit,)) │ end │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:239 =# │ b += kP.z * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:240 =# │ c += kP.z * kP.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:241 =# │ determinant = b * b - c │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:242 =# │ if determinant > ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:243 =# │ root = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:244 =# │ for sign = (-1, 1) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:245 =# │ t = -((b + sign * root)) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:246 =# │ cylinder_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:247 =# │ if cylinder_local_t <= ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:248 =# │ added = try_add_hit(t * fD_inv_length, CapsuleHitTypes.pA) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:249 =# │ if added && n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:250 =# │ return calc_output() │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:253 =# │ end │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:254 =# determinant == ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:255 =# │ t = -b │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:256 =# │ cylinder_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:257 =# │ if cylinder_local_t <= ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:258 =# │ added = try_add_hit(t * fD_inv_length, CapsuleHitTypes.pA) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:259 =# │ if added && n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:260 =# │ return calc_output() │ end │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:267 =# │ b -= kD.z * fW_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:268 =# │ c += fW_length * (fW_length - convert(F, 2) * kP.z) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:269 =# │ determinant = b * b - c │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:270 =# │ if determinant > ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:271 =# │ root = sqrt(determinant) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:272 =# │ for sign = (-1, 1) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:273 =# │ t = -b + sign * root │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:274 =# │ cylinder_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:275 =# │ if cylinder_local_t >= fW_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:276 =# │ added = try_add_hit(t * fD_inv_length, CapsuleHitTypes.pB) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:277 =# │ if added && n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:278 =# │ return calc_outputs() │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:281 =# │ end │ elseif #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:282 =# determinant == ZERO │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:283 =# │ t = -b │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:284 =# │ cylinder_local_t = kP.z + t * kD.z │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:285 =# │ if cylinder_local_t >= fW_length │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:286 =# │ added = try_add_hit(t * fD_inv_length, CapsuleHitTypes.pB) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:287 =# │ if added && n_capsule_hits == 2 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:288 =# │ return calc_outputs() │ end │ end │ end │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:295 =# │ if n_capsule_hits == 1 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:296 =# │ hit_output = UpTo{2, F}(hits[1:1]) │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:297 =# │ return if ShouldCalcNormal │ (hit_output, calc_normal(hits[1], hit_types[1])) │ else │ hit_output │ end │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:301 =# │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:301 =# @bp_math_assert n_capsule_hits == 0 │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:302 =# │ return NULL_RESULT │ end │ else │ #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:305 =# │ error("Only implemented for 3 dimensions") │ end │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [function] │ │ [where] │ │ [::] │ │ [call] │ │ intersections :: Identifier │ │ [parameters] │ │ [kw] │ │ [::] │ │ min_t :: Identifier │ │ F :: Identifier │ │ [call] │ │ zero :: Identifier │ │ F :: Identifier │ │ [kw] │ │ [::] │ │ max_t :: Identifier │ │ F :: Identifier │ │ [call] │ │ typemax_finite :: Identifier │ │ F :: Identifier │ │ [kw] │ │ [::] │ │ atol :: Identifier │ │ F :: Identifier │ │ [call] │ │ zero :: Identifier │ │ F :: Identifier │ │ [::] │ │ c :: Identifier │ │ [curly] │ │ Capsule :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ [::] │ │ r :: Identifier │ │ [curly] │ │ Ray :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ [kw] │ │ [::] │ │ [curly] │ │ Val :: Identifier │ │ ShouldCalcNormal :: Identifier │ │ [call] │ │ Val :: Identifier │ │ false :: Value │ │ [curly] │ │ Union :: Identifier │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [curly] │ │ Tuple :: Identifier │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [curly] │ │ Vec3 :: Identifier │ │ F :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ ShouldCalcNormal :: Identifier │ │ [block] │ │ [=] │ │ ZERO :: Identifier │ │ [call] │ │ zero :: Identifier │ │ F :: Identifier │ │ [=] │ │ ONE :: Identifier │ │ [call] │ │ one :: Identifier │ │ F :: Identifier │ │ [=] │ │ V :: Identifier │ │ [curly] │ │ Vec :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ [=] │ │ NULL_RESULT :: Identifier │ │ [if] │ │ ShouldCalcNormal :: Identifier │ │ [tuple] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [tuple] │ │ [call] │ │ zero :: Identifier │ │ [curly] │ │ Vec3 :: Identifier │ │ F :: Identifier │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [tuple] │ │ [if] │ │ [call] │ │ == :: Identifier │ │ N :: Identifier │ │ 3 :: Value │ │ [block] │ │ [=] │ │ [::] │ │ kW :: Identifier │ │ V :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ b :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [=] │ │ [::] │ │ fW_length :: Identifier │ │ F :: Identifier │ │ [call] │ │ vlength :: Identifier │ │ kW :: Identifier │ │ [if] │ │ [call] │ │ isapprox :: Identifier │ │ [parameters] │ │ [kw] │ │ atol :: Identifier │ │ atol :: Identifier │ │ fW_length :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ intersections :: Identifier │ │ [parameters] │ │ [kw] │ │ min_t :: Identifier │ │ min_t :: Identifier │ │ [kw] │ │ max_t :: Identifier │ │ max_t :: Identifier │ │ [kw] │ │ atol :: Identifier │ │ atol :: Identifier │ │ [call] │ │ [curly] │ │ Sphere :: Identifier │ │ N :: Identifier │ │ F :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ radius :: Identifier │ │ r :: Identifier │ │ [call] │ │ Val :: Identifier │ │ ShouldCalcNormal :: Identifier │ │ [unknown_head] │ │ kW :: Identifier │ │ fW_length :: Identifier │ │ [local] │ │ [::] │ │ kU :: Identifier │ │ V :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ fW_length :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ >= :: Identifier │ │ [call] │ │ abs :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ x :: Identifier │ │ [call] │ │ abs :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ y :: Identifier │ │ [block] │ │ [=] │ │ inv_length :: Identifier │ │ [call] │ │ / :: Identifier │ │ ONE :: Identifier │ │ [call] │ │ vlength :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ xz :: Identifier │ │ [=] │ │ kU :: Identifier │ │ [call] │ │ V :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ z :: Identifier │ │ inv_length :: Identifier │ │ 0 :: Value │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ x :: Identifier │ │ inv_length :: Identifier │ │ [block] │ │ [=] │ │ inv_length :: Identifier │ │ [call] │ │ / :: Identifier │ │ ONE :: Identifier │ │ [call] │ │ vlength :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ yz :: Identifier │ │ [=] │ │ kU :: Identifier │ │ [call] │ │ V :: Identifier │ │ 0 :: Value │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ z :: Identifier │ │ inv_length :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ kW :: Identifier │ │ [inert] │ │ y :: Identifier │ │ inv_length :: Identifier │ │ [=] │ │ [::] │ │ kV :: Identifier │ │ V :: Identifier │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ v_rightward :: Identifier │ │ kW :: Identifier │ │ kU :: Identifier │ │ [=] │ │ [::] │ │ kD :: Identifier │ │ V :: Identifier │ │ [call] │ │ V :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kU :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ dir :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kV :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ dir :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kW :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ dir :: Identifier │ │ [=] │ │ [::] │ │ fD_length :: Identifier │ │ F :: Identifier │ │ [call] │ │ vlength :: Identifier │ │ kD :: Identifier │ │ [=] │ │ [::] │ │ fD_inv_length :: Identifier │ │ F :: Identifier │ │ [if] │ │ [call] │ │ isapprox :: Identifier │ │ [parameters] │ │ [kw] │ │ atol :: Identifier │ │ atol :: Identifier │ │ fD_length :: Identifier │ │ 0 :: Value │ │ ZERO :: Identifier │ │ [call] │ │ / :: Identifier │ │ ONE :: Identifier │ │ fD_length :: Identifier │ │ [unknown_head] │ │ kD :: Identifier │ │ fD_inv_length :: Identifier │ │ [=] │ │ [::] │ │ kDiff :: Identifier │ │ V :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ start :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [=] │ │ [::] │ │ kP :: Identifier │ │ V :: Identifier │ │ [call] │ │ V :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kU :: Identifier │ │ kDiff :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kV :: Identifier │ │ kDiff :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ kW :: Identifier │ │ kDiff :: Identifier │ │ [=] │ │ [::] │ │ c_radius_sqr :: Identifier │ │ F :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ radius :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ radius :: Identifier │ │ [local] │ │ [::] │ │ hits :: Identifier │ │ [curly] │ │ NTuple :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [if] │ │ [||] │ │ [call] │ │ >= :: Identifier │ │ [call] │ │ abs :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ - :: Identifier │ │ ONE :: Identifier │ │ atol :: Identifier │ │ [call] │ │ < :: Identifier │ │ fD_length :: Identifier │ │ atol :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ axis_dir :: Identifier │ │ F :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ [.] │ │ r :: Identifier │ │ [inert] │ │ dir :: Identifier │ │ kW :: Identifier │ │ [=] │ │ [::] │ │ determinant :: Identifier │ │ F :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ - :: Identifier │ │ c_radius_sqr :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ x :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ x :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ y :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ y :: Identifier │ │ [local] │ │ [::] │ │ hit_sides :: Identifier │ │ [curly] │ │ NTuple :: Identifier │ │ 2 :: Value │ │ Int8 :: Identifier │ │ [if] │ │ [&&] │ │ [call] │ │ < :: Identifier │ │ axis_dir :: Identifier │ │ ZERO :: Identifier │ │ [call] │ │ >= :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ root :: Identifier │ │ F :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [=] │ │ hits :: Identifier │ │ [tuple] │ │ [call] │ │ * :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ │ fD_inv_length :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ fW_length :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ │ fD_inv_length :: Identifier │ │ [=] │ │ hit_sides :: Identifier │ │ [.] │ │ Int8 :: Identifier │ │ [tuple] │ │ [tuple] │ │ 2 :: Value │ │ 1 :: Value │ │ [elseif] │ │ [block] │ │ [&&] │ │ [call] │ │ > :: Identifier │ │ axis_dir :: Identifier │ │ ZERO :: Identifier │ │ [call] │ │ >= :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ root :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [=] │ │ hits :: Identifier │ │ [tuple] │ │ [call] │ │ * :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ │ fD_inv_length :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ fW_length :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ │ fD_inv_length :: Identifier │ │ [=] │ │ hit_sides :: Identifier │ │ [.] │ │ Int8 :: Identifier │ │ [tuple] │ │ [tuple] │ │ 1 :: Value │ │ 2 :: Value │ │ [block] │ │ [return] │ │ NULL_RESULT :: Identifier │ │ [=] │ │ hits_output :: Identifier │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ hits :: Identifier │ │ [if] │ │ [call] │ │ ! :: Identifier │ │ ShouldCalcNormal :: Identifier │ │ [block] │ │ [return] │ │ hits_output :: Identifier │ │ [local] │ │ [::] │ │ closest_hit_normal :: Identifier │ │ V :: Identifier │ │ [=] │ │ [::] │ │ closest_hit_pos :: Identifier │ │ V :: Identifier │ │ [call] │ │ ray_at :: Identifier │ │ r :: Identifier │ │ [ref] │ │ hits_output :: Identifier │ │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ │ [ref] │ │ hit_sides :: Identifier │ │ 1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ closest_hit_normal :: Identifier │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ closest_hit_pos :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [block] │ │ [macrocall] │ │ @bp_math_assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:133 =#) :: Value │ │ [call] │ │ == :: Identifier │ │ [ref] │ │ hit_sides :: Identifier │ │ 2 :: Value │ │ 2 :: Value │ │ [=] │ │ closest_hit_normal :: Identifier │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ closest_hit_pos :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ b :: Identifier │ │ [return] │ │ [tuple] │ │ hits_output :: Identifier │ │ closest_hit_normal :: Identifier │ │ [=] │ │ [::] │ │ n_capsule_hits :: Identifier │ │ Int8 :: Identifier │ │ 0 :: Value │ │ [=] │ │ hits :: Identifier │ │ [tuple] │ │ [call] │ │ typemax :: Identifier │ │ F :: Identifier │ │ [call] │ │ typemax :: Identifier │ │ F :: Identifier │ │ [=] │ │ [::] │ │ hit_types :: Identifier │ │ [curly] │ │ NTuple :: Identifier │ │ 2 :: Value │ │ E_CapsuleHitTypes :: Identifier │ │ [tuple] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ null :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ null :: Identifier │ │ [=] │ │ capsule_local_z_range :: Identifier │ │ [call] │ │ [curly] │ │ Interval :: Identifier │ │ F :: Identifier │ │ [kw] │ │ min :: Identifier │ │ 0 :: Value │ │ [kw] │ │ max :: Identifier │ │ fW_length :: Identifier │ │ [function] │ │ [::] │ │ [call] │ │ calc_normal :: Identifier │ │ [::] │ │ t :: Identifier │ │ F :: Identifier │ │ [::] │ │ type :: Identifier │ │ E_CapsuleHitTypes :: Identifier │ │ [curly] │ │ Vec3 :: Identifier │ │ F :: Identifier │ │ [block] │ │ [macrocall] │ │ @bp_math_assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:148 =#) :: Value │ │ [call] │ │ != :: Identifier │ │ type :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ null :: Identifier │ │ "Asked to calculate the normal of a 'null' intersection" :: Value │ │ [=] │ │ [::] │ │ hit_pos :: Identifier │ │ V :: Identifier │ │ [call] │ │ ray_at :: Identifier │ │ r :: Identifier │ │ t :: Identifier │ │ [if] │ │ [call] │ │ == :: Identifier │ │ type :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pA :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ hit_pos :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ a :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ │ type :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pB :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ hit_pos :: Identifier │ │ [.] │ │ c :: Identifier │ │ [inert] │ │ b :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ │ type :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ body :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ hit_projection_to_cylinder :: Identifier │ │ v3f :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ hit_pos :: Identifier │ │ kW :: Identifier │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ │ [call] │ │ - :: Identifier │ │ hit_pos :: Identifier │ │ hit_projection_to_cylinder :: Identifier │ │ [block] │ │ [call] │ │ error :: Identifier │ │ "Unimplemented: " :: Value │ │ type :: Identifier │ │ [function] │ │ [::] │ │ [call] │ │ try_add_hit :: Identifier │ │ [::] │ │ t :: Identifier │ │ F :: Identifier │ │ [::] │ │ type :: Identifier │ │ E_CapsuleHitTypes :: Identifier │ │ Bool :: Identifier │ │ [block] │ │ [if] │ │ [&&] │ │ [call] │ │ >= :: Identifier │ │ t :: Identifier │ │ min_t :: Identifier │ │ [call] │ │ <= :: Identifier │ │ t :: Identifier │ │ max_t :: Identifier │ │ [block] │ │ [macrocall] │ │ @set! :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:167 =#) :: Value │ │ [=] │ │ [ref] │ │ hits :: Identifier │ │ [call] │ │ + :: Identifier │ │ n_capsule_hits :: Identifier │ │ 1 :: Value │ │ t :: Identifier │ │ [macrocall] │ │ @set! :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:168 =#) :: Value │ │ [=] │ │ [ref] │ │ hit_types :: Identifier │ │ [call] │ │ + :: Identifier │ │ n_capsule_hits :: Identifier │ │ 1 :: Value │ │ type :: Identifier │ │ [unknown_head] │ │ n_capsule_hits :: Identifier │ │ 1 :: Value │ │ [return] │ │ true :: Value │ │ [block] │ │ [return] │ │ false :: Value │ │ [function] │ │ [call] │ │ calc_output :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ < :: Identifier │ │ [ref] │ │ hits :: Identifier │ │ 2 :: Value │ │ [ref] │ │ hits :: Identifier │ │ 1 :: Value │ │ [block] │ │ [=] │ │ hits :: Identifier │ │ [tuple] │ │ [ref] │ │ hits :: Identifier │ │ 2 :: Value │ │ [ref] │ │ hits :: Identifier │ │ 1 :: Value │ │ [=] │ │ hit_types :: Identifier │ │ [tuple] │ │ [ref] │ │ hit_types :: Identifier │ │ 2 :: Value │ │ [ref] │ │ hit_types :: Identifier │ │ 1 :: Value │ │ [=] │ │ hit_output :: Identifier │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ hits :: Identifier │ │ n_capsule_hits :: Identifier │ │ [return] │ │ [if] │ │ ShouldCalcNormal :: Identifier │ │ [tuple] │ │ hit_output :: Identifier │ │ [call] │ │ calc_normal :: Identifier │ │ [ref] │ │ hits :: Identifier │ │ 1 :: Value │ │ [ref] │ │ hit_types :: Identifier │ │ 1 :: Value │ │ hit_output :: Identifier │ │ [local] │ │ [::] │ │ inv_a :: Identifier │ │ F :: Identifier │ │ [::] │ │ t :: Identifier │ │ F :: Identifier │ │ [::] │ │ capsule_local_t :: Identifier │ │ F :: Identifier │ │ [=] │ │ [::] │ │ a :: Identifier │ │ F :: Identifier │ │ [call] │ │ vlength_sqr :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ xy :: Identifier │ │ [=] │ │ [::] │ │ b :: Identifier │ │ F :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ xy :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ xy :: Identifier │ │ [=] │ │ [::] │ │ c :: Identifier │ │ F :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ vlength_sqr :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ xy :: Identifier │ │ c_radius_sqr :: Identifier │ │ [=] │ │ determinant :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ * :: Identifier │ │ b :: Identifier │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ a :: Identifier │ │ c :: Identifier │ │ [if] │ │ [call] │ │ < :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [return] │ │ NULL_RESULT :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ determinant :: Identifier │ │ atol :: Identifier │ │ [block] │ │ [=] │ │ root :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [=] │ │ inv_a :: Identifier │ │ [call] │ │ / :: Identifier │ │ ONE :: Identifier │ │ a :: Identifier │ │ [for] │ │ [=] │ │ sign :: Identifier │ │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ sign :: Identifier │ │ root :: Identifier │ │ inv_a :: Identifier │ │ [=] │ │ capsule_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ is_touching :: Identifier │ │ capsule_local_z_range :: Identifier │ │ capsule_local_t :: Identifier │ │ [block] │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [if] │ │ [call] │ │ < :: Identifier │ │ capsule_local_t :: Identifier │ │ [call] │ │ center :: Identifier │ │ capsule_local_z_range :: Identifier │ │ [block] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pA :: Identifier │ │ [block] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ / :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ a :: Identifier │ │ [=] │ │ capsule_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ is_touching :: Identifier │ │ capsule_local_z_range :: Identifier │ │ capsule_local_t :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ hit :: Identifier │ │ F :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [if] │ │ ShouldCalcNormal :: Identifier │ │ [block] │ │ [return] │ │ [tuple] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [tuple] │ │ hit :: Identifier │ │ [call] │ │ calc_normal :: Identifier │ │ hit :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ body :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [tuple] │ │ hit :: Identifier │ │ [unknown_head] │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [unknown_head] │ │ c :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [=] │ │ determinant :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ * :: Identifier │ │ b :: Identifier │ │ b :: Identifier │ │ c :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ root :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [for] │ │ [=] │ │ sign :: Identifier │ │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ + :: Identifier │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ sign :: Identifier │ │ root :: Identifier │ │ [=] │ │ cylinder_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ <= :: Identifier │ │ cylinder_local_t :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ added :: Identifier │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pA :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ [=] │ │ cylinder_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ <= :: Identifier │ │ cylinder_local_t :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ added :: Identifier │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pA :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ │ [unknown_head] │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ fW_length :: Identifier │ │ [unknown_head] │ │ c :: Identifier │ │ [call] │ │ * :: Identifier │ │ fW_length :: Identifier │ │ [call] │ │ - :: Identifier │ │ fW_length :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ convert :: Identifier │ │ F :: Identifier │ │ 2 :: Value │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [=] │ │ determinant :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ * :: Identifier │ │ b :: Identifier │ │ b :: Identifier │ │ c :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ root :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ determinant :: Identifier │ │ [for] │ │ [=] │ │ sign :: Identifier │ │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ [call] │ │ * :: Identifier │ │ sign :: Identifier │ │ root :: Identifier │ │ [=] │ │ cylinder_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ >= :: Identifier │ │ cylinder_local_t :: Identifier │ │ fW_length :: Identifier │ │ [block] │ │ [=] │ │ added :: Identifier │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_outputs :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ │ determinant :: Identifier │ │ ZERO :: Identifier │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ - :: Identifier │ │ b :: Identifier │ │ [=] │ │ cylinder_local_t :: Identifier │ │ [call] │ │ + :: Identifier │ │ [.] │ │ kP :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ [.] │ │ kD :: Identifier │ │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ >= :: Identifier │ │ cylinder_local_t :: Identifier │ │ fW_length :: Identifier │ │ [block] │ │ [=] │ │ added :: Identifier │ │ [call] │ │ try_add_hit :: Identifier │ │ [call] │ │ * :: Identifier │ │ t :: Identifier │ │ fD_inv_length :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_outputs :: Identifier │ │ [if] │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 1 :: Value │ │ [block] │ │ [=] │ │ hit_output :: Identifier │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ │ 2 :: Value │ │ F :: Identifier │ │ [ref] │ │ hits :: Identifier │ │ [call] │ │ : :: Identifier │ │ 1 :: Value │ │ 1 :: Value │ │ [return] │ │ [if] │ │ ShouldCalcNormal :: Identifier │ │ [tuple] │ │ hit_output :: Identifier │ │ [call] │ │ calc_normal :: Identifier │ │ [ref] │ │ hits :: Identifier │ │ 1 :: Value │ │ [ref] │ │ hit_types :: Identifier │ │ 1 :: Value │ │ hit_output :: Identifier │ │ [block] │ │ [macrocall] │ │ @bp_math_assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:301 =#) :: Value │ │ [call] │ │ == :: Identifier │ │ n_capsule_hits :: Identifier │ │ 0 :: Value │ │ [return] │ │ NULL_RESULT :: Identifier │ │ [block] │ │ [call] │ │ error :: Identifier │ │ "Only implemented for 3 dimensions" :: Value │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [function] │ │ [where] │ │ [::] │ │ [call] │ │ intersections :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ [::] │ │ min_t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ zero :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [kw] │ │ [::] │ │ max_t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ typemax_finite :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [kw] │ │ [::] │ │ atol :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ zero :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ c :: Identifier │ scope_layer=1 │ [curly] │ │ Capsule :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ r :: Identifier │ scope_layer=1 │ [curly] │ │ Ray :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [kw] │ │ [::] │ │ [curly] │ │ Val :: Identifier │ scope_layer=1 │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [call] │ │ Val :: Identifier │ scope_layer=1 │ false :: Value │ │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [curly] │ │ Vec3 :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ ZERO :: Identifier │ scope_layer=1 │ [call] │ │ zero :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ ONE :: Identifier │ scope_layer=1 │ [call] │ │ one :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ V :: Identifier │ scope_layer=1 │ [curly] │ │ Vec :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ NULL_RESULT :: Identifier │ scope_layer=1 │ [if] │ │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ zero :: Identifier │ scope_layer=1 │ [curly] │ │ Vec3 :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [tuple] │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ 3 :: Value │ │ [block] │ │ [=] │ │ [::] │ │ kW :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ b :: Identifier │ │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [=] │ │ [::] │ │ fW_length :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ vlength :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ isapprox :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ atol :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [call] │ │ intersections :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ min_t :: Identifier │ scope_layer=1 │ min_t :: Identifier │ scope_layer=1 │ [kw] │ │ max_t :: Identifier │ scope_layer=1 │ max_t :: Identifier │ scope_layer=1 │ [kw] │ │ atol :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ Sphere :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ radius :: Identifier │ │ r :: Identifier │ scope_layer=1 │ [call] │ │ Val :: Identifier │ scope_layer=1 │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [local] │ │ [::] │ │ kU :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ [call] │ │ abs :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ x :: Identifier │ │ [call] │ │ abs :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ y :: Identifier │ │ [block] │ │ [=] │ │ inv_length :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ [call] │ │ vlength :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ xz :: Identifier │ │ [=] │ │ kU :: Identifier │ scope_layer=1 │ [call] │ │ V :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ inv_length :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ x :: Identifier │ │ inv_length :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ inv_length :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ [call] │ │ vlength :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ yz :: Identifier │ │ [=] │ │ kU :: Identifier │ scope_layer=1 │ [call] │ │ V :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ inv_length :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ kW :: Identifier │ scope_layer=1 │ [inert] │ │ y :: Identifier │ │ inv_length :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ kV :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ v_rightward :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ kU :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ kD :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ V :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kU :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ dir :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kV :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ dir :: Identifier │ │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ dir :: Identifier │ │ [=] │ │ [::] │ │ fD_length :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ vlength :: Identifier │ scope_layer=1 │ kD :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ fD_inv_length :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ isapprox :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ atol :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ fD_length :: Identifier │ scope_layer=1 │ 0 :: Value │ │ ZERO :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ fD_length :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ kD :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ kDiff :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ start :: Identifier │ │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [=] │ │ [::] │ │ kP :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ V :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kU :: Identifier │ scope_layer=1 │ kDiff :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kV :: Identifier │ scope_layer=1 │ kDiff :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ kDiff :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ c_radius_sqr :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ radius :: Identifier │ │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ radius :: Identifier │ │ [local] │ │ [::] │ │ hits :: Identifier │ scope_layer=1 │ [curly] │ │ NTuple :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [if] │ │ [||] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ [call] │ │ abs :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ - :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ [call] │ │ < :: Identifier │ scope_layer=1 │ fD_length :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [::] │ │ axis_dir :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ [.] │ │ r :: Identifier │ scope_layer=1 │ [inert] │ │ dir :: Identifier │ │ kW :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ determinant :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ c_radius_sqr :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ x :: Identifier │ │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ x :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ y :: Identifier │ │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ y :: Identifier │ │ [local] │ │ [::] │ │ hit_sides :: Identifier │ scope_layer=1 │ [curly] │ │ NTuple :: Identifier │ scope_layer=1 │ 2 :: Value │ │ Int8 :: Identifier │ scope_layer=1 │ [if] │ │ [&&] │ │ [call] │ │ < :: Identifier │ scope_layer=1 │ axis_dir :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [call] │ │ >= :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [::] │ │ root :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [=] │ │ hit_sides :: Identifier │ scope_layer=1 │ [.] │ │ Int8 :: Identifier │ scope_layer=1 │ [tuple] │ │ [tuple] │ │ 2 :: Value │ │ 1 :: Value │ │ [elseif] │ │ [block] │ │ [&&] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ axis_dir :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [call] │ │ >= :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ root :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ root :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [=] │ │ hit_sides :: Identifier │ scope_layer=1 │ [.] │ │ Int8 :: Identifier │ scope_layer=1 │ [tuple] │ │ [tuple] │ │ 1 :: Value │ │ 2 :: Value │ │ [block] │ │ [return] │ │ NULL_RESULT :: Identifier │ scope_layer=1 │ [=] │ │ hits_output :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ hits :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ hits_output :: Identifier │ scope_layer=1 │ [local] │ │ [::] │ │ closest_hit_normal :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ closest_hit_pos :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ ray_at :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ [ref] │ │ hits_output :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ [ref] │ │ hit_sides :: Identifier │ scope_layer=1 │ 1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ closest_hit_normal :: Identifier │ scope_layer=1 │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ closest_hit_pos :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ bp_math_asserts_enabled :: Identifier │ scope_layer=2 │ [block] │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ [ref] │ │ hit_sides :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=2074 │ 2 :: Value │ macro_source=2074 │ nothing :: Value │ macro_source=2074 │ [call] │ │ throw :: Identifier │ scope_layer=3 │ [call] │ │ AssertionError :: Identifier │ scope_layer=3 │ [call] │ │ Base._assert_tostring :: Value │ macro_source=2074 │ [call] │ │ string :: Identifier │ scope_layer=2 │ [=] │ │ closest_hit_normal :: Identifier │ scope_layer=1 │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ closest_hit_pos :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ b :: Identifier │ │ [return] │ │ [tuple] │ │ hits_output :: Identifier │ scope_layer=1 │ closest_hit_normal :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ n_capsule_hits :: Identifier │ scope_layer=1 │ Int8 :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [tuple] │ │ [call] │ │ typemax :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ typemax :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ hit_types :: Identifier │ scope_layer=1 │ [curly] │ │ NTuple :: Identifier │ scope_layer=1 │ 2 :: Value │ │ E_CapsuleHitTypes :: Identifier │ scope_layer=1 │ [tuple] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ null :: Identifier │ │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ null :: Identifier │ │ [=] │ │ capsule_local_z_range :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ Interval :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [kw] │ │ min :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [kw] │ │ max :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [function] │ │ [::] │ │ [call] │ │ calc_normal :: Identifier │ scope_layer=1 │ [::] │ │ t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ type :: Identifier │ scope_layer=1 │ E_CapsuleHitTypes :: Identifier │ scope_layer=1 │ [curly] │ │ Vec3 :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ bp_math_asserts_enabled :: Identifier │ scope_layer=4 │ [block] │ │ [if] │ │ [call] │ │ != :: Identifier │ scope_layer=1 │ type :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ null :: Identifier │ │ nothing :: Value │ macro_source=2200 │ [call] │ │ throw :: Identifier │ scope_layer=5 │ [call] │ │ AssertionError :: Identifier │ scope_layer=5 │ [call] │ │ Base._assert_tostring :: Value │ macro_source=2200 │ [call] │ │ string :: Identifier │ scope_layer=4 │ "Asked to calculate the normal of a 'null' intersection" :: Value │ macro_source=2200 │ [=] │ │ [::] │ │ hit_pos :: Identifier │ scope_layer=1 │ V :: Identifier │ scope_layer=1 │ [call] │ │ ray_at :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ type :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pA :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ hit_pos :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ a :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ type :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pB :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ hit_pos :: Identifier │ scope_layer=1 │ [.] │ │ c :: Identifier │ scope_layer=1 │ [inert] │ │ b :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ type :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ body :: Identifier │ │ [block] │ │ [=] │ │ [::] │ │ hit_projection_to_cylinder :: Identifier │ scope_layer=1 │ v3f :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ hit_pos :: Identifier │ scope_layer=1 │ kW :: Identifier │ scope_layer=1 │ [return] │ │ [call] │ │ vnorm :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ hit_pos :: Identifier │ scope_layer=1 │ hit_projection_to_cylinder :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ error :: Identifier │ scope_layer=1 │ "Unimplemented: " :: Value │ │ type :: Identifier │ scope_layer=1 │ [function] │ │ [::] │ │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [::] │ │ t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ type :: Identifier │ scope_layer=1 │ E_CapsuleHitTypes :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [&&] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ min_t :: Identifier │ scope_layer=1 │ [call] │ │ <= :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ max_t :: Identifier │ scope_layer=1 │ [block] │ │ [block] │ │ [=] │ │ ##lens#1061 :: Identifier │ scope_layer=6 │ [call] │ │ identity :: Value │ macro_source=802 │ [call] │ │ Setfield.compose :: Value │ macro_source=802 │ [call] │ │ Setfield.IndexLens :: Value │ macro_source=802 │ [tuple] │ │ [call] │ │ + :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=802 │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [call] │ │ Setfield.set :: Value │ macro_source=802 │ hits :: Identifier │ scope_layer=1 │ ##lens#1061 :: Identifier │ scope_layer=6 │ t :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ ##lens#1062 :: Identifier │ scope_layer=7 │ [call] │ │ identity :: Value │ macro_source=813 │ [call] │ │ Setfield.compose :: Value │ macro_source=813 │ [call] │ │ Setfield.IndexLens :: Value │ macro_source=813 │ [tuple] │ │ [call] │ │ + :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=813 │ [=] │ │ hit_types :: Identifier │ scope_layer=1 │ [call] │ │ Setfield.set :: Value │ macro_source=813 │ hit_types :: Identifier │ scope_layer=1 │ ##lens#1062 :: Identifier │ scope_layer=7 │ type :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [return] │ │ true :: Value │ │ [block] │ │ [return] │ │ false :: Value │ │ [function] │ │ [call] │ │ calc_output :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ < :: Identifier │ scope_layer=1 │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [block] │ │ [=] │ │ hits :: Identifier │ scope_layer=1 │ [tuple] │ │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [=] │ │ hit_types :: Identifier │ scope_layer=1 │ [tuple] │ │ [ref] │ │ hit_types :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [ref] │ │ hit_types :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [=] │ │ hit_output :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ hits :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ [return] │ │ [if] │ │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [tuple] │ │ hit_output :: Identifier │ scope_layer=1 │ [call] │ │ calc_normal :: Identifier │ scope_layer=1 │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [ref] │ │ hit_types :: Identifier │ scope_layer=1 │ 1 :: Value │ │ hit_output :: Identifier │ scope_layer=1 │ [local] │ │ [::] │ │ inv_a :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [::] │ │ capsule_local_t :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ a :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ vlength_sqr :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ xy :: Identifier │ │ [=] │ │ [::] │ │ b :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ ⋅ :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ xy :: Identifier │ │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ xy :: Identifier │ │ [=] │ │ [::] │ │ c :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ vlength_sqr :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ xy :: Identifier │ │ c_radius_sqr :: Identifier │ scope_layer=1 │ [=] │ │ determinant :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ a :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ < :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ NULL_RESULT :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ atol :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ root :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [=] │ │ inv_a :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ ONE :: Identifier │ scope_layer=1 │ a :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ sign :: Identifier │ scope_layer=1 │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ sign :: Identifier │ scope_layer=1 │ root :: Identifier │ scope_layer=1 │ inv_a :: Identifier │ scope_layer=1 │ [=] │ │ capsule_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ is_touching :: Identifier │ scope_layer=1 │ capsule_local_z_range :: Identifier │ scope_layer=1 │ capsule_local_t :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ < :: Identifier │ scope_layer=1 │ capsule_local_t :: Identifier │ scope_layer=1 │ [call] │ │ center :: Identifier │ scope_layer=1 │ capsule_local_z_range :: Identifier │ scope_layer=1 │ [block] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pA :: Identifier │ │ [block] │ │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ a :: Identifier │ scope_layer=1 │ [=] │ │ capsule_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ is_touching :: Identifier │ scope_layer=1 │ capsule_local_z_range :: Identifier │ scope_layer=1 │ capsule_local_t :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [::] │ │ hit :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [if] │ │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [tuple] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [tuple] │ │ hit :: Identifier │ scope_layer=1 │ [call] │ │ calc_normal :: Identifier │ scope_layer=1 │ hit :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ body :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [tuple] │ │ hit :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [unknown_head] │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [=] │ │ determinant :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ root :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ sign :: Identifier │ scope_layer=1 │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ sign :: Identifier │ scope_layer=1 │ root :: Identifier │ scope_layer=1 │ [=] │ │ cylinder_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ <= :: Identifier │ scope_layer=1 │ cylinder_local_t :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pA :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [=] │ │ cylinder_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ <= :: Identifier │ scope_layer=1 │ cylinder_local_t :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pA :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_output :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ fW_length :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ convert :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [=] │ │ determinant :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ root :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ sign :: Identifier │ scope_layer=1 │ [tuple] │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ sign :: Identifier │ scope_layer=1 │ root :: Identifier │ scope_layer=1 │ [=] │ │ cylinder_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ cylinder_local_t :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_outputs :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ determinant :: Identifier │ scope_layer=1 │ ZERO :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ b :: Identifier │ scope_layer=1 │ [=] │ │ cylinder_local_t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ [.] │ │ kP :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [.] │ │ kD :: Identifier │ scope_layer=1 │ [inert] │ │ z :: Identifier │ │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ cylinder_local_t :: Identifier │ scope_layer=1 │ fW_length :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ try_add_hit :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ fD_inv_length :: Identifier │ scope_layer=1 │ [.] │ │ CapsuleHitTypes :: Identifier │ scope_layer=1 │ [inert] │ │ pB :: Identifier │ │ [if] │ │ [&&] │ │ added :: Identifier │ scope_layer=1 │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 2 :: Value │ │ [block] │ │ [return] │ │ [call] │ │ calc_outputs :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [block] │ │ [=] │ │ hit_output :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ UpTo :: Identifier │ scope_layer=1 │ 2 :: Value │ │ F :: Identifier │ scope_layer=1 │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ 1 :: Value │ │ 1 :: Value │ │ [return] │ │ [if] │ │ ShouldCalcNormal :: Identifier │ scope_layer=1 │ [tuple] │ │ hit_output :: Identifier │ scope_layer=1 │ [call] │ │ calc_normal :: Identifier │ scope_layer=1 │ [ref] │ │ hits :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [ref] │ │ hit_types :: Identifier │ scope_layer=1 │ 1 :: Value │ │ hit_output :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ bp_math_asserts_enabled :: Identifier │ scope_layer=8 │ [block] │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ n_capsule_hits :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=3055 │ nothing :: Value │ macro_source=3055 │ [call] │ │ throw :: Identifier │ scope_layer=9 │ [call] │ │ AssertionError :: Identifier │ scope_layer=9 │ [call] │ │ Base._assert_tostring :: Value │ macro_source=3055 │ [call] │ │ string :: Identifier │ scope_layer=8 │ [return] │ │ NULL_RESULT :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ error :: Identifier │ scope_layer=1 │ "Only implemented for 3 dimensions" :: Value │ │ │ file = "/home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl" │ line = 18 └ mod = BplusCore.Math ERROR: LoadError: LoweringError: #= /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147 =# - Found unexpected binding of kind static_parameter Expression:  #₅₂/F Containing expressions:  (= #₅₀₆/F #₅₂/F)  (= #₁₀ (call core.svec (call core.svec #₃₂₈/##kw_body#intersections#3#calc_normal##0 #₅₂/F #₁₂₂/E_CapsuleHitTypes) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147:0))  (= #₁₀ (call core.svec (call core.svec (function_type #₇₀/calc_normal) #₅₂/F #₁₂₂/E_CapsuleHitTypes) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147:0))  Detailed provenance:  #₅₂/F  └─ F  └─ F  └─ @ /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:147  Stacktrace:  [1] _renumber(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ssa_rewrites::Dict{Int64, Int64}, slot_rewrites::Dict{Int64, Int64}, label_table::Dict{Int64, Int64}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1091  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1156  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1251  [4] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1281  [5] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [6] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [7] top-level scope  @ ~/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/Shapes.jl:104  [8] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [9] top-level scope  @ ~/.julia/packages/BplusCore/Qm2Rg/src/Math/Math.jl:18  [10] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [11] top-level scope  @ ~/.julia/packages/BplusCore/Qm2Rg/src/BplusCore.jl:7  [12] include(mod::Module, _path::String)  @ Base Base.jl:326  [13] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [14] top-level scope  @ stdin:5  [15] eval(m::Module, e::Any)  @ Core boot.jl:521  [16] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [17] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [18] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [19] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/capsule.jl:18 in expression starting at /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/shapes/Shapes.jl:104 in expression starting at /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/Math/Math.jl:1 in expression starting at /home/pkgeval/.julia/packages/BplusCore/Qm2Rg/src/BplusCore.jl:1 in expression starting at stdin:5 1 dependency had output during precompilation: ┌ BplusCore │ [Output was shown above] └ ERROR: The following 1 package failed to precompile: BplusCore Failed to precompile BplusCore [1fb136ff-715c-473e-9ae1-0caef0ff09b1] to "/home/pkgeval/.julia/compiled/v1.14/BplusCore/jl_VCPNOt" (ProcessExited(1)). Loading failed after 461.63s ERROR: LoadError: failed process: Process(`/opt/julia/bin/julia -C native -J/opt/julia/lib/julia/sys.so -g1 --check-bounds=yes --inline=yes --check-bounds=yes --pkgimages=existing -e 'using BplusCore'`, ProcessExited(1)) [1] Stacktrace: [1] pipeline_error(proc::Base.Process) @ Base process.jl:612 [inlined] [2] run(::Cmd; wait::Bool) @ Base process.jl:525 [3] run(::Cmd) @ Base process.jl:522 [4] top-level scope @ /PkgEval.jl/scripts/evaluate.jl:197 [5] include(mod::Module, _path::String) @ Base Base.jl:326 [6] exec_options(opts::Base.JLOptions) @ Base client.jl:355 [7] _start() @ Base client.jl:596 in expression starting at /PkgEval.jl/scripts/evaluate.jl:188 PkgEval failed after 1497.67s: package fails to precompile