From 245cf7cb5bfcde6ea5371cdf43a07ae9651dd260 Mon Sep 17 00:00:00 2001 From: fjebaker Date: Sat, 8 Jun 2024 14:25:31 +0100 Subject: [PATCH] fix: enormously reduce allocations in composite disc tracing --- src/tracing/radiative-transfer-problem.jl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/tracing/radiative-transfer-problem.jl b/src/tracing/radiative-transfer-problem.jl index e10bfb3f..4f8fde29 100644 --- a/src/tracing/radiative-transfer-problem.jl +++ b/src/tracing/radiative-transfer-problem.jl @@ -65,20 +65,21 @@ function _intensity_delta( m, x, k::AbstractArray{T}, - geometry::CompositeGeometry, + geometry::CompositeGeometry{K,D}, within, I, ν₀, r_isco, λ, -) where {T} - total::T = zero(T) - for i in eachindex(geometry.geometry) - total += _intensity_delta( +) where {T,K,D} + indexed_geom = (enumerate(geometry.geometry)...,) + sum(indexed_geom) do args + i, geom = args + _intensity_delta( m, x, k, - geometry.geometry[i], + geom, within, I, ν₀, @@ -87,7 +88,6 @@ function _intensity_delta( index = i, ) end - total end function _intensity_delta(