Skip to content

Expression Templates #11

@bassoy

Description

@bassoy

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

Labels

discussionDiscussion for future refactoringgsocGoogle Summer of Code

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions