From bdb506fe3e3ce6e682b6966cda22dd02087f8044 Mon Sep 17 00:00:00 2001 From: Jerry Ling Date: Thu, 9 Jun 2022 12:18:48 -0400 Subject: [PATCH 1/3] promotion rules for `Irrational` and `TrackedReal` fix #100 --- src/tracked.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tracked.jl b/src/tracked.jl index ab7adaf..04c199f 100644 --- a/src/tracked.jl +++ b/src/tracked.jl @@ -274,6 +274,7 @@ for R in REAL_TYPES end Base.promote_rule(::Type{R}, ::Type{TrackedReal{V,D,O}}) where {R<:Real,V,D,O} = TrackedReal{promote_type(R,V),D,O} +Base.promote_rule(::Type{R}, ::Type{TrackedReal{V, D, O}}) where {R<:AbstractIrrational,V,D,O} = TrackedReal{promote_type(R,V),D,O} Base.promote_rule(::Type{TrackedReal{V1,D1,O1}}, ::Type{TrackedReal{V2,D2,O2}}) where {V1,V2,D1,D2,O1,O2} = TrackedReal{promote_type(V1,V2),promote_type(D1,D2),Nothing} ########################### From b285b656c6acfa95127ea966bea108d7ca2dd4b8 Mon Sep 17 00:00:00 2001 From: Jerry Ling Date: Thu, 9 Jun 2022 23:02:15 -0400 Subject: [PATCH 2/3] Update src/tracked.jl Co-authored-by: David Widmann --- src/tracked.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/tracked.jl b/src/tracked.jl index 04c199f..b6a126d 100644 --- a/src/tracked.jl +++ b/src/tracked.jl @@ -273,8 +273,7 @@ for R in REAL_TYPES @eval Base.promote_rule(::Type{$R}, ::Type{TrackedReal{V,D,O}}) where {V,D,O} = TrackedReal{promote_type($R,V),D,O} end -Base.promote_rule(::Type{R}, ::Type{TrackedReal{V,D,O}}) where {R<:Real,V,D,O} = TrackedReal{promote_type(R,V),D,O} -Base.promote_rule(::Type{R}, ::Type{TrackedReal{V, D, O}}) where {R<:AbstractIrrational,V,D,O} = TrackedReal{promote_type(R,V),D,O} +Base.promote_rule(::Type{TrackedReal{V,D,O}}, ::Type{R}) where {V,D,O,R<:Real}) = TrackedReal{promote_type(R,V),D,O} Base.promote_rule(::Type{TrackedReal{V1,D1,O1}}, ::Type{TrackedReal{V2,D2,O2}}) where {V1,V2,D1,D2,O1,O2} = TrackedReal{promote_type(V1,V2),promote_type(D1,D2),Nothing} ########################### From 033c7f1cb60fc5e55663616ba0289d62619f325d Mon Sep 17 00:00:00 2001 From: David Widmann Date: Tue, 23 Aug 2022 12:10:07 +0200 Subject: [PATCH 3/3] Update src/tracked.jl --- src/tracked.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tracked.jl b/src/tracked.jl index b6a126d..62319ac 100644 --- a/src/tracked.jl +++ b/src/tracked.jl @@ -273,7 +273,7 @@ for R in REAL_TYPES @eval Base.promote_rule(::Type{$R}, ::Type{TrackedReal{V,D,O}}) where {V,D,O} = TrackedReal{promote_type($R,V),D,O} end -Base.promote_rule(::Type{TrackedReal{V,D,O}}, ::Type{R}) where {V,D,O,R<:Real}) = TrackedReal{promote_type(R,V),D,O} +Base.promote_rule(::Type{TrackedReal{V,D,O}}, ::Type{R}) where {V,D,O,R<:Real} = TrackedReal{promote_type(R,V),D,O} Base.promote_rule(::Type{TrackedReal{V1,D1,O1}}, ::Type{TrackedReal{V2,D2,O2}}) where {V1,V2,D1,D2,O1,O2} = TrackedReal{promote_type(V1,V2),promote_type(D1,D2),Nothing} ###########################