Add Symbolic
number constructor and conversion
#602
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request adds a constructor and a conversion function for
Symbolic
objects representing numbers.Key changes:
Symbolic
constructor:Symbolic(x::T) where {T<:Number}
constructor now creates aTerm
object from a numberx
, inferring the type of theSymbolic
object from the type ofx
.Symbolic{T}(x::Number) where {T}
constructor now creates aTerm
object with the specified typeT
, convertingx
to that type if necessary.convert function:
convert(::Type{<:Symbolic{T}}, x::Number) where {T}
function now converts a numberx
to aTerm
object of the specified typeT
.Tests:
Symbolic
constructor and convert function, ensuring correct behavior for various numeric types, includingInt
,Float64
,Rational
, andComplex
.Symbolic
.These changes provide a more convenient and flexible way to create and work with symbolic representations of numbers, and hide the internal
Symbolic
subtype system from external users.