Skip to content

Commit 0be245d

Browse files
authored
faster basemeasure_sequence (#40)
* faster basemeasure_sequence * bump version
1 parent 05f86c5 commit 0be245d

File tree

2 files changed

+10
-12
lines changed

2 files changed

+10
-12
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "MeasureBase"
22
uuid = "fa1605e6-acd5-459c-a1e6-7e635759db14"
33
authors = ["Chad Scherrer <[email protected]> and contributors"]
4-
version = "0.6.1"
4+
version = "0.6.2"
55

66
[deps]
77
Compat = "34da2185-b29b-5c13-b0c7-acf172513d20"

src/utils.jl

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,17 @@ end
7373

7474
export basemeasure_sequence
7575

76-
@inline function basemeasure_sequence::M) where {M}
77-
depth = basemeasure_depth(μ)
78-
basemeasure_sequence(μ, depth)
79-
end
80-
81-
@generated function basemeasure_sequence::M, ::StaticInt{N}) where {M,N}
82-
quote
83-
b_1 = μ
84-
Base.Cartesian.@nexprs 10 i -> begin # 10 is just some "big enough" number
85-
b_{i+1} = basemeasure(b_{i})
76+
@inline function basemeasure_sequence::M) where {M}
77+
b_1 = μ
78+
done = false
79+
Base.Cartesian.@nexprs 10 i -> begin # 10 is just some "big enough" number
80+
b_{i+1} = if done nothing else basemeasure(b_{i}) end
81+
if b_{i+1} isa typeof(b_{i})
82+
done = true
83+
b_{i+1} = nothing
8684
end
87-
return Base.Cartesian.@ntuple $(N+1) b
8885
end
86+
return filter(!isnothing, Base.Cartesian.@ntuple 10 b)
8987
end
9088

9189
# @inline function basemeasure_depth(μ::M) where {M}

0 commit comments

Comments
 (0)