Fix Cdist - Preserve dimensions when casting a vector to double#99
Open
mardukbp wants to merge 1 commit intooracle:masterfrom
Open
Fix Cdist - Preserve dimensions when casting a vector to double#99mardukbp wants to merge 1 commit intooracle:masterfrom
mardukbp wants to merge 1 commit intooracle:masterfrom
Conversation
Member
|
Hello Marduk, thank you for your PR and thorough description. The PR looks good but could you also add a test with the code snippet that was not working before (or more misbehaving snippets if you have more)? The tests are located here: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Using FastR release 19.2.0.1 the following code
results in
Error: 'x' must be a square matrix.The R function
distcalls the C functionCdistdefined in stats/src/distance.c. This function does not check whether its first argument is a matrix, but it checks the type of its elements:FastR implements the Java function
Cdist, which checks whether its first argument is a matrix--not a square matrix--and if the test fails it throwsThrowing this error is wrong, because it does not correspond to the test that failed and because R's
Cdistworks for rectangular matrices. TheMessageenum is defined in RError.java.The problem is that the argument
xis casted to double without preserving its dimensions, resulting in a 1D vector. This patch corrects this.To try it
make cleanincom.oracle.truffle.r.nativeand runmx buildon the project root.I suspect that this mistake in casting vectors to double without preserving their dimensions occurs in other places in FastR.