Skip to content
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

Special matrix types for optimizations #11

Open
3 of 4 tasks
mcopik opened this issue Dec 22, 2016 · 4 comments
Open
3 of 4 tasks

Special matrix types for optimizations #11

mcopik opened this issue Dec 22, 2016 · 4 comments
Assignees
Milestone

Comments

@mcopik
Copy link
Contributor

mcopik commented Dec 22, 2016

We should use specific matrix types to enable possible optimizations. We have two problems here: how to create those types and how to implement expressions without assuming that user knows the exact type in each expression?

For example:

? result = f(A, B);

? here can be a general or a specific matrix type, depending on types of A and B, how f preserves those types and whether linear algebra toolkit implements it properly.

Types:

  • triangular

  • symmetric/Hermitian

  • tridiagonal(banded)

  • Eigen

  • Blaze

  • Armadillo

  • MTL4

@mcopik mcopik added this to the 0.1 milestone Dec 22, 2016
@mcopik mcopik self-assigned this Dec 22, 2016
@mcopik
Copy link
Contributor Author

mcopik commented Dec 29, 2016

Blaze:

@mcopik
Copy link
Contributor Author

mcopik commented Dec 29, 2016

Eigen: there are views which require that original matrix still exists.
https://forum.kde.org/viewtopic.php?f=74&t=137795&sid=c63c1a676a3483739825ea908cb152ed

Possible solutions:

  1. wrapper storing matrix + view
  2. generator singleton storing all allocated matrices and keeping them valid

Views exist for symmetric, triangular. There is an implementation of band matrix but it is practically useless.

Unfortunately I got no clear answer regarding Eigen capabilities and auto x = (...).eval(); It looks safe though.

@mcopik
Copy link
Contributor Author

mcopik commented Dec 29, 2016

Armadillo: there is a support for creating symmetric/triangular matrices:
http://arma.sourceforge.net/docs.html#symmat
http://arma.sourceforge.net/docs.html#trimat
and diagonal:
http://arma.sourceforge.net/docs.html#diagmat

No mailing list/forum, I wrote an email.

@mcopik
Copy link
Contributor Author

mcopik commented Jan 9, 2017

MTL4: virtually nothing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant