From 914a5aa8374a7727d6a845c234180cd218c85a0b Mon Sep 17 00:00:00 2001 From: Elias Carvalho Date: Fri, 27 Oct 2023 10:58:24 -0300 Subject: [PATCH] Apply suggestions --- src/operations.jl | 22 ++++++++++++++++++++++ src/point/union.jl | 22 ---------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/operations.jl b/src/operations.jl index b6e094a..d6a04b3 100644 --- a/src/operations.jl +++ b/src/operations.jl @@ -21,3 +21,25 @@ function thin end #----------------- include("thinning/random.jl") + +#--------------- +# PROCESS UNION +#--------------- + +""" + p₁ ∪ p₂ + +Return the union of point processes `p₁` and `p₂`. +""" +Base.union(p₁::PointProcess, p₂::PointProcess) = UnionProcess(p₁, p₂) + +Base.union(p₁::PoissonProcess{<:Real}, p₂::PoissonProcess{<:Real}) = PoissonProcess(p₁.λ + p₂.λ) + +Base.union(p₁::PoissonProcess{<:Function}, p₂::PoissonProcess{<:Function}) = PoissonProcess(x -> p₁.λ(x) + p₂.λ(x)) + +Base.union(p₁::PoissonProcess{<:Real}, p₂::PoissonProcess{<:Function}) = PoissonProcess(x -> p₁.λ + p₂.λ(x)) + +Base.union(p₁::PoissonProcess{<:Function}, p₂::PoissonProcess{<:Real}) = PoissonProcess(x -> p₁.λ(x) + p₂.λ) + +Base.union(p₁::PoissonProcess{<:AbstractVector}, p₂::PoissonProcess{<:AbstractVector}) = + PoissonProcess(x -> p₁.λ + p₂.λ) diff --git a/src/point/union.jl b/src/point/union.jl index 7f7a81b..d223145 100644 --- a/src/point/union.jl +++ b/src/point/union.jl @@ -19,25 +19,3 @@ function randsingle(rng::AbstractRNG, p::UnionProcess, g) pp₂ = rand(rng, p.p₂, g) PointSet([collect(pp₁); collect(pp₂)]) end - -# ---------- -# OPERATION -# ---------- - -""" - p₁ ∪ p₂ - -Return the union of point processes `p₁` and `p₂`. -""" -Base.union(p₁::PointProcess, p₂::PointProcess) = UnionProcess(p₁, p₂) - -Base.union(p₁::PoissonProcess{<:Real}, p₂::PoissonProcess{<:Real}) = PoissonProcess(p₁.λ + p₂.λ) - -Base.union(p₁::PoissonProcess{<:Function}, p₂::PoissonProcess{<:Function}) = PoissonProcess(x -> p₁.λ(x) + p₂.λ(x)) - -Base.union(p₁::PoissonProcess{<:Real}, p₂::PoissonProcess{<:Function}) = PoissonProcess(x -> p₁.λ + p₂.λ(x)) - -Base.union(p₁::PoissonProcess{<:Function}, p₂::PoissonProcess{<:Real}) = PoissonProcess(x -> p₁.λ(x) + p₂.λ) - -Base.union(p₁::PoissonProcess{<:AbstractVector}, p₂::PoissonProcess{<:AbstractVector}) = - PoissonProcess(x -> p₁.λ + p₂.λ)