Skip to content

Commit 8e1628b

Browse files
Merge pull request #1687 from JuliaSymbolics/as/scalarize-num
fix: retain `Num` type on `scalarize`
2 parents 3875b9d + 9b5099b commit 8e1628b

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/Symbolics.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -219,18 +219,18 @@ for T in [Num, Complex{Num}]
219219
@eval begin
220220
#(::Type{S})(x::$T) where {S<:Union{NumberTypes,AbstractArray}} = S(Symbolics.unwrap(x))::S
221221

222-
SymbolicUtils.simplify(n::$T; kw...) = wrap(SymbolicUtils.simplify(unwrap(n); kw...))
223-
SymbolicUtils.simplify_fractions(n::$T; kw...) = wrap(SymbolicUtils.simplify_fractions(unwrap(n); kw...))
224-
SymbolicUtils.expand(n::$T) = wrap(SymbolicUtils.expand(unwrap(n)))
222+
SymbolicUtils.simplify(n::$T; kw...) = $T(SymbolicUtils.simplify(unwrap(n); kw...))
223+
SymbolicUtils.simplify_fractions(n::$T; kw...) = $T(SymbolicUtils.simplify_fractions(unwrap(n); kw...))
224+
SymbolicUtils.expand(n::$T) = $T(SymbolicUtils.expand(unwrap(n)))
225225

226226
SymbolicUtils.Code.toexpr(x::$T) = SymbolicUtils.Code.toexpr(unwrap(x))
227227

228-
SymbolicUtils.setmetadata(x::$T, t, v) = wrap(SymbolicUtils.setmetadata(unwrap(x), t, v))
228+
SymbolicUtils.setmetadata(x::$T, t, v) = $T(SymbolicUtils.setmetadata(unwrap(x), t, v))
229229
SymbolicUtils.getmetadata(x::$T, t) = SymbolicUtils.getmetadata(unwrap(x), t)
230230
SymbolicUtils.hasmetadata(x::$T, t) = SymbolicUtils.hasmetadata(unwrap(x), t)
231231

232232
Broadcast.broadcastable(x::$T) = x
233-
SymbolicUtils.scalarize(x::$T) = scalarize(unwrap(x))
233+
SymbolicUtils.scalarize(x::$T) = $T(scalarize(unwrap(x)))
234234
end
235235
end
236236

test/utils.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,3 +297,9 @@ end
297297
@test Symbolics.evaluate(ltr, Dict(x => 1, y => 2))
298298
@test !Symbolics.evaluate(ltr, Dict(x => 2, y => 1))
299299
end
300+
301+
@testset "Issue #1683: Scalarization of `Num` retains type" begin
302+
@variables x
303+
x2 = Symbolics.scalarize(x)
304+
@test x2 isa Num
305+
end

0 commit comments

Comments
 (0)