Cem Bassoy via ublas
2018-05-01 16:42:04 UTC
David, Stefan,
I was just thinking/imagining of the following refactoring and additional
features. Please note that these just ideas and that I cannot yet tell how
much time we need for each task.
One could refactor ublas such that
- there is only one definition of iterators for all types of matrix and
vector template classes including the proxies (instead of defining one
within each template class),
- replacing project functions with overloaded operators in the template
classes using a notation that is similar to the one in MATLAB.
I am not sure, but we might also
- replace template classes for expression templates by generic lambdas,
- removing some proxies matrix_row, matrix_column (was it designed to
establish type safety?)
We might additionally
- replace expression templates by 'smart' expression templates in order to
call functions of high-performance libraries
- on top of smart expression templates include dispatchers or even
schedulers with which we could dispatch between cpu and gpu execution.
Based on my tensor implementation we could discuss these issues in more
detail.
Cem
I was just thinking/imagining of the following refactoring and additional
features. Please note that these just ideas and that I cannot yet tell how
much time we need for each task.
One could refactor ublas such that
- there is only one definition of iterators for all types of matrix and
vector template classes including the proxies (instead of defining one
within each template class),
- replacing project functions with overloaded operators in the template
classes using a notation that is similar to the one in MATLAB.
I am not sure, but we might also
- replace template classes for expression templates by generic lambdas,
- removing some proxies matrix_row, matrix_column (was it designed to
establish type safety?)
We might additionally
- replace expression templates by 'smart' expression templates in order to
call functions of high-performance libraries
- on top of smart expression templates include dispatchers or even
schedulers with which we could dispatch between cpu and gpu execution.
Based on my tensor implementation we could discuss these issues in more
detail.
Cem