Skip to content

Commit

Permalink
Temporary fix for domain problems
Browse files Browse the repository at this point in the history
  • Loading branch information
wormell committed Sep 18, 2017
1 parent 4e29b7b commit 6df312a
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 8 deletions.
6 changes: 3 additions & 3 deletions src/MarkovBranch.jl
Expand Up @@ -101,9 +101,9 @@ branch(f,dom,ran,diff::Void;dir=Forward) = branch(f,dom,ran;dir)


for TYP in (:FwdExpandingBranch,:RevExpandingBranch,:NeutralBranch)
@eval (b::$TYP)(x) = in(x,b.domain) ? unsafe_call(b,x) : error("DomainError: $x in $(b.domain)")
@eval mapD(b::$TYP,x) = in(x,b.domain) ? unsafe_mapD(b,x) : error("DomainError: $x in $(b.domain)")
@eval mapP(b::$TYP,x) = in(x,b.domain) ? unsafe_mapP(b,x) : error("DomainError: $x in $(b.domain)")
@eval (b::$TYP)(x) = temp_in(x,b.domain) ? unsafe_call(b,x) : error("DomainError: $x $(b.domain)")
@eval mapD(b::$TYP,x) = temp_in(x,b.domain) ? unsafe_mapD(b,x) : error("DomainError: $x $(b.domain)")
@eval mapP(b::$TYP,x) = temp_in(x,b.domain) ? unsafe_mapP(b,x) : error("DomainError: $x $(b.domain)")
@eval domain(b::$TYP) = b.domain
@eval rangedomain(b::$TYP) = b.rangedomain
end
2 changes: 1 addition & 1 deletion src/MarkovMap.jl
Expand Up @@ -56,7 +56,7 @@ end
branches(m) = m.branches
nbranches(m::MarkovMap) = length(m.branches)
nneutral(m::MarkovMap) = sum([isa(b,NeutralBranch) for b in m.branches])
getbranch(m::MarkovMap,x) = in(x,m.domain) ? findfirst([in(x,domain(b)) for b in m.branches]) : throw(DomainError)
getbranch(m::MarkovMap,x) = temp_in(x,m.domain) ? findfirst([temp_in(x,domain(b)) for b in m.branches]) : error("DomainError: $x$(m.domain)")

# # TODO: maybe roll into branch constructors? maybe remove??
# function MarkovMap{D,R,ff}(
Expand Down
3 changes: 3 additions & 0 deletions src/Poltergeist.jl
Expand Up @@ -8,6 +8,9 @@ fromcanonicalD, tocanonicalD, fromcanonical, tocanonical, space

export (..)

## TEMPORARY PENDING APPROXFUN UPDATE
temp_in(x,dom) = (x >= dom.a) && (x <= dom.b)

include("general.jl")
include("MarkovBranch.jl")
include("MarkovMap.jl")
Expand Down
7 changes: 3 additions & 4 deletions test/runtests.jl
@@ -1,5 +1,4 @@
# Pkg.installed()["ApproxFun"] != v"0.4.0+" && Pkg.checkout("ApproxFun","4bcc8f585361184342bb21780cc6be9893d99ce6")

using Poltergeist
using Base.Test
using ApproxFun
Expand Down Expand Up @@ -101,9 +100,9 @@ pts = points(space(ρ2bi),100)
# Time series
println("Time series tests")
NI = 10^6; NB = 10^3
# @time ts = timeseries(M1f,NI,ρ1f)
# println("Should be ≤4s")
# @test abs(sum(sin.(sin.(2pi*ts)))/NI - sum(ρ1f*A1))< (4sum(cs1f*A1)+200eps(1.))/sqrt(NI)
@time ts = timeseries(M1f,NI,ρ1f)
println("Should be ≤4s")
@test abs(sum(sin.(sin.(2pi*ts)))/NI - sum(ρ1f*A1))< (4sum(cs1f*A1)+200eps(1.))/sqrt(NI)

@time cts = timehist(M2f,NI,NB,ρ2f)
@test abs(sum(sin.(sin.(2pi*cts[1][1:end-1])).*cts[2])/NI - sum(ρ2f*A2))< 1/NB+(4sum(cs1f*A1)+200eps(1.))/sqrt(NI)
Expand Down

0 comments on commit 6df312a

Please sign in to comment.