-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
feat: add determinant algorithm #1438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code seems fine to me. However, there's an issue with the initialization of the result variable on line no. 69. It's initialized to null, and later, calculations are performed on it. This will result in NaN because you cannot perform mathematical operations on null. You should initialize it to 0.
let result = 0
Hey @gaurovgiri , I have modified the code as requested. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code looks fine to me. Good to go!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now its fine! Great work, keep it up!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine. It should be noted that this uses the Laplace method, which is not optimal. The extreme O(n!) time complexity must be mentioned. (The optimal approach is to first apply Gaussian elimination (but being careful with swapping or scaling rows, which affects the determinant), then the determinant is just the product along the diagonal with the appropriate sign).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @appgurueu I have modified the code as requested.
- Made the note of the Laplace expansion and time complexity
- Remove unnecessary else statements
- Use throw and catch for errors
- Use not (!) operator instead of (=== false) comparison
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@appgurueu I have seperated the test cases.
Describe your change:
Checklist:
Example:
UserProfile.js
is allowed butuserprofile.js
,Userprofile.js
,user-Profile.js
,userProfile.js
are notFixes: #{$ISSUE_NO}
.