Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/AbstractOperations/conditional_operations.jl
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,11 @@ end
return ifelse(conditioned, value, co.mask)
end

# Fallbacks for reductions
for reduction! in (:sum!, :maximum!, :minimum!, :all!, :any!, :prod!)
@eval Base.$(reduction!)(f, int_r, co::NoConditionCO, kwargs...) = Base.$(reduction!)(f, int_r, co.operand; kwargs...)
end

# Conditions: general, nothing, array
@inline evaluate_condition(condition, i, j, k, grid, args...) = condition(i, j, k, grid, args...)
@inline evaluate_condition(::Nothing, i, j, k, grid, args...) = true
Expand Down Expand Up @@ -202,6 +207,7 @@ end
@inline conditional_length(c::ConditionalOperation, ::Colon) = conditional_length(c)
@inline conditional_length(c::ConditionalOperation, ::NTuple{3}) = conditional_length(c)
@inline conditional_length(c::ConditionalOperation, dims) = sum(conditional_one(c, 0); dims)
@inline conditional_length(c::NoConditionCO, args...) = conditional_length(c.operand, args...)

# Disambiguations
@inline conditional_length(c::ConditionalOperation, dims::Int) = sum(conditional_one(c, 0); dims)
Expand Down
2 changes: 1 addition & 1 deletion src/AbstractOperations/metric_field_reductions.jl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Statistics: mean!, sum!
using Statistics: sum!

using Oceananigans.Utils: tupleit
using Oceananigans.Grids: regular_dimensions
Expand Down
2 changes: 1 addition & 1 deletion test/test_field_scans.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ include("dependencies_for_runtests.jl")

using Statistics
using Oceananigans.Architectures: on_architecture
using Oceananigans.AbstractOperations: BinaryOperation
using Oceananigans.AbstractOperations: BinaryOperation, GridMetricOperation
using Oceananigans.Fields: ReducedField, CenterField, ZFaceField, compute_at!, @compute, reverse_cumsum!
using Oceananigans.BoundaryConditions: fill_halo_regions!
using Oceananigans.Grids: halo_size
Expand Down