-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move dimension-related choices out of the class template parameters. (#…
…95) This refers to previously-template parameters controlling the choice of row-major/column-major for dense matrices, CSR/CSC for sparse matrices, whether to combine/subset on the rows or columns, etc. By converting them into regular arguments in the constructor, the class is more ergonomic for users who need to make the choice at runtime. It should also reduce the amount of work that the compiler needs to do, avoiding instantiation of near-redundant classes. This change should not be associated with a performance penalty as the dimension choice is not used within tight loops. At most, these parameters are used to decide the subclass of the Extractor that is created by the various *_row() and *_column() methods, after which the parameters are no longer used. So there is no real downside to converting them into regular arguments. The only exception is that of the delayed isometric unary class, which need these parameters to be compile-time in order to enable constexpr if's. These are allow us to avoid evaluating the untaken path where the methods might not be implemented for a particular Operation_. So, we just leave them be. We also updated the convert_to_* functions so that they accept the output order as a function argument. This allows streamlining of the tests. We removed the overloads that automatically match the order of the output matrix with that of the input matrix, as it is now trivial to do so with the other functions; this is also required to avoid difficult-to-debug problems with overload selection.
- Loading branch information
Showing
44 changed files
with
654 additions
and
831 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.