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
Remove VectorSpaceVector. #3073
Comments
I haven't given this much thought so far. Somehow, the vector class will need to make the information available to the matrix class, or the other way around. This can happen by granting access to the underlying representation of the data, or by making the matrix class a friend. I'm much more in favor of the second option, given that it limits knowledge of the exact data format to a small and easily findable list of other classes, rather than exporting knowledge of the underlying data storage to everyone. |
I've looked through our classes, and the way I see it is that we have not made use of
But the thing is that nothing outside the vector classes actually uses
I think what this means is that the only places where we reference these functions is inside the vector classes themselves, and I suspect that in many of the implementations of these functions, we just cast to the current class right away. Like here in the epetra vector classes:
Since I'm not seeing any uses, I suspect that we can just remove |
I missed this comment yesterday and said the same thing this morning - yes, lets remove this class. |
We decided this morning to just nuke |
Should we remove the |
@drwells That seems reasonable to me. |
What are the plans for how to solve operations on a VectorSpaceVector that internally needs to access individual elements? Although we want to hide explicit access of individual elements from the outside, we certainly need to do so inside some operations, such as a sparse-matrix vector product. As I see it, the natural way to do this would be to let SparseMatrix be a friend to the vector classes. Are there any other superior solutions?
I am working on a sparse matrix implementation for GPU, and there the
vmult
operation needs to extract the underlying data pointer and pass it to a CUDA kernel. Also this would be solved by a friend relation.The text was updated successfully, but these errors were encountered: