Skip to content

Commit 07fc4aa

Browse files
fix: handle edge case in MTKParameters resulting in Float16 buffer
1 parent a485499 commit 07fc4aa

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

lib/ModelingToolkitBase/src/systems/parameter_buffer.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
symconvert(::Type{T}, x::V) where {T, V} = convert(promote_type(T, V), x)
2-
symconvert(::Type{T}, x::V) where {T <: Real, V} = convert(T, x)
3-
symconvert(::Type{Real}, x::Integer) = convert(Float16, x)
4-
symconvert(::Type{V}, x) where {V <: AbstractArray} = convert(V, symconvert.(eltype(V), x))
1+
symconvert(::Type{T}, ::Type{F}, x::V) where {T, F, V} = convert(promote_type(T, V), x)
2+
symconvert(::Type{T}, ::Type{F}, x::V) where {T <: Real, F, V} = convert(T, x)
3+
symconvert(::Type{Real}, ::Type{F}, x::Integer) where {F} = convert(F, x)
4+
symconvert(::Type{V}, ::Type{F}, x) where {V <: AbstractArray, F} = symconvert.(eltype(V), F, x)
55

66
struct MTKParameters{T, I, D, C, N, H}
77
tunable::T
@@ -165,7 +165,7 @@ function MTKParameters(
165165
val = map(x -> x === COMMON_NOTHING ? false : unwrap_const(x), collect(val))
166166
end
167167
end
168-
val = symconvert(ctype, unwrap_const(val))
168+
val = symconvert(ctype, floatT, unwrap_const(val))
169169
set_value(sym, val)
170170
end
171171
tunable_buffer = narrow_buffer_type(tunable_buffer; p_constructor)

0 commit comments

Comments
 (0)