Skip to content

Commit

Permalink
Vectorised short circuit and operator is not implemented in Julia 1.6…
Browse files Browse the repository at this point in the history
…. Replace with regular vectorised and.

Also, because it's over bitvectors, it's likely that it's not any faster: https://discourse.julialang.org/t/vectorized-short-circuit-operator/80336

See vectorised and pull request for 1.7: JuliaLang/julia#39594
  • Loading branch information
JoelTrent committed Jun 12, 2023
1 parent a1b1739 commit dbf91f9
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions src/common_profile_likelihood.jl
Original file line number Diff line number Diff line change
Expand Up @@ -107,24 +107,24 @@ function desired_df_subset(df::DataFrame,
df_sub = @view(df[1:num_used_rows, :])
row_subset = df_sub.num_points .> 0
if for_prediction_generation
row_subset .= row_subset .&& df_sub.not_evaluated_predictions
row_subset .= row_subset .& df_sub.not_evaluated_predictions
end
if for_prediction_plots
row_subset .= row_subset .&& .!(df_sub.not_evaluated_predictions)
row_subset .= row_subset .& .!(df_sub.not_evaluated_predictions)
end
if sample_dimension > 0
row_subset .= row_subset .&& df_sub.dimension .== sample_dimension
row_subset .= row_subset .& df_sub.dimension .== sample_dimension
end

if !isempty(confidence_levels)
if include_higher_confidence_levels
row_subset .= row_subset .&& (df_sub.conf_level .>= confidence_levels::Float64)
row_subset .= row_subset .& (df_sub.conf_level .>= confidence_levels::Float64)
else
row_subset .= row_subset .&& (df_sub.conf_level .∈ Ref(confidence_levels))
row_subset .= row_subset .& (df_sub.conf_level .∈ Ref(confidence_levels))
end
end
if !isempty(sample_types)
row_subset .= row_subset .&& (df_sub.sample_type .∈ Ref(sample_types))
row_subset .= row_subset .& (df_sub.sample_type .∈ Ref(sample_types))
end

return @view(df_sub[row_subset, :])
Expand All @@ -141,20 +141,20 @@ function desired_df_subset(df::DataFrame,
df_sub = @view(df[1:num_used_rows, :])
row_subset = df_sub.num_points .> 0
if for_prediction_generation
row_subset .= row_subset .&& df_sub.not_evaluated_predictions
row_subset .= row_subset .& df_sub.not_evaluated_predictions
end
if for_prediction_plots
row_subset .= row_subset .&& .!(df_sub.not_evaluated_predictions)
row_subset .= row_subset .& .!(df_sub.not_evaluated_predictions)
end

if !isempty(θs_of_interest)
row_subset .= row_subset .&& (df_sub.θindex .∈ Ref(θs_of_interest))
row_subset .= row_subset .& (df_sub.θindex .∈ Ref(θs_of_interest))
end
if !isempty(confidence_levels)
row_subset .= row_subset .&& (df_sub.conf_level .∈ Ref(confidence_levels))
row_subset .= row_subset .& (df_sub.conf_level .∈ Ref(confidence_levels))
end
if !isempty(profile_types)
row_subset .= row_subset .&& (df_sub.profile_type .∈ Ref(profile_types))
row_subset .= row_subset .& (df_sub.profile_type .∈ Ref(profile_types))
end

return @view(df_sub[row_subset, :])
Expand All @@ -173,27 +173,27 @@ function desired_df_subset(df::DataFrame,
df_sub = @view(df[1:num_used_rows, :])
row_subset = df_sub.num_points .> 0
if for_prediction_generation
row_subset .= row_subset .&& df_sub.not_evaluated_predictions
row_subset .= row_subset .& df_sub.not_evaluated_predictions
end
if for_prediction_plots
row_subset .= row_subset .&& .!(df_sub.not_evaluated_predictions)
row_subset .= row_subset .& .!(df_sub.not_evaluated_predictions)
end

if !isempty(θs_of_interest)
row_subset .= row_subset .&& (df_sub.θindices .∈ Ref(θs_of_interest))
row_subset .= row_subset .& (df_sub.θindices .∈ Ref(θs_of_interest))
end
if !isempty(confidence_levels)
if include_lower_confidence_levels
row_subset .= row_subset .&& (df_sub.conf_level .<= confidence_levels::Float64)
row_subset .= row_subset .& (df_sub.conf_level .<= confidence_levels::Float64)
else
row_subset .= row_subset .&& (df_sub.conf_level .∈ Ref(confidence_levels))
row_subset .= row_subset .& (df_sub.conf_level .∈ Ref(confidence_levels))
end
end
if !isempty(profile_types)
row_subset .= row_subset .&& (df_sub.profile_type .∈ Ref(profile_types))
row_subset .= row_subset .& (df_sub.profile_type .∈ Ref(profile_types))
end
if !isempty(methods)
row_subset .= row_subset .&& (typeof.(df_sub.method) .∈ Ref(typeof.(methods)))
row_subset .= row_subset .& (typeof.(df_sub.method) .∈ Ref(typeof.(methods)))
end

return @view(df_sub[row_subset, :])
Expand Down

0 comments on commit dbf91f9

Please sign in to comment.