Clarify mathematical definition of lcm
#56992
Merged
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.
Some folks define
lcm(x::T,y::T)as anyz::Tsuch that there existsa::T, b::Twitha*x==zandb*y==zand for allzʹ::Tsuch that there exista::T, b::Twitha*x==zʹandb*y==zʹ, there also existsc::Twithz*c==zʹ. This is a reasonable definition, but not what we use. Notably, it makeslcm(x::Rational, y::Rational) = z::Rationaltrue for all finite, nonzerox,y, andz.The definition we use requires
a,b, andcto all be integers, not rationals in the case oflcm(x::Rational, y::Rational). This clarifies what we mean when we definelcm(x::Rational, y::Rational)and also how the generic function should be extended.See this thread for more discussion
cc @oscardssmith