forked from boostorg/ublas
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
discussionDiscussion for future refactoringDiscussion for future refactoringgsocGoogle Summer of CodeGoogle Summer of Code
Description
Expression templates are used in uBLAS for avoiding temporary objects to be generated and copied in expressions, finally to reduce the runtime of such expressions.
However, with C++11 and C++14 standards copy elision is possible where the copy and move constructors can be omited by the compiler, resulting in zero-copy pass-by-value semantics. The C++17 standard even guarantees copy elision.
Moreover, the current implementation of matrix-vector and matrix-matrix products in expressions are implemented in a row-by-column style where the spatial and temporal data locality are not preserved for the sake of avoiding temporary objects.
Does this really help to reduce the runtime costs?
Metadata
Metadata
Assignees
Labels
discussionDiscussion for future refactoringDiscussion for future refactoringgsocGoogle Summer of CodeGoogle Summer of Code