-
Notifications
You must be signed in to change notification settings - Fork 2
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
lusol factor extraction #178
Conversation
fa18d0b
to
9ad838e
Compare
wasn't able to solve it with a rebase. i ended up making a new branch locally and cherry-picking the commits from the old one |
this should be ready to merge now |
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 needs to be better commented. There are some nontrivial indexing patterns and there need to be comments explaining what is being done in main loops in L and U factor getters. Also, it is not clear what each parameter from LUSOL parameter array is. This should be explained in comments in the code.
This is very good work. Apart from commenting code better, this should be ready to merge. |
…ssage for duplicates match the factor extraction method being used
* remove -1-filling of arrays from lusol factor extraction code * adjustments to deduplication criterion
e4e7b9a
to
5fffbc9
Compare
} | ||
|
||
// handle rectangular l factors correctly | ||
for (index_type column = 0; column < diagonal_bound; column++) { |
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.
is this supposed to sort columns through bubble sort type algorithm?
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.
I believe this loop just adds ones to the diagonal of L.
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.
correct. that's exactly what it does
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.
to elaborate, this loop corrects the column pointer of each column segment by the offsets necessary to accommodate an extra element in itself and all previous columns. it then inserts the one at the end of the column's allocated space, since it
- will always be the last element in a sorted column
- would add extra computational overhead if it were placed at the beginning (since it would incur an extra n - 1 swaps or something like that) to get the column sorted
sorting of the elements lusol writes to the l factor is done in the next loop, and that is done with a kind of insertion sort, as the comment above it states
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.
Thanks for helpful additional explanations, @superwhiskers.
Resolves #159.
what remains to be done:
develop
fromlusol-integration-tests
L_
andU_
member variables instead of allocating new ones