-
Notifications
You must be signed in to change notification settings - Fork 0
[Dev] Optimise exa_linalg #211
Copy link
Copy link
Closed
Labels
internal devModification to the code is requested and should not affect user experimentModification to the code is requested and should not affect user experiment
Description
jbcaillau
opened on Feb 6, 2026
Issue body actions
- plan the following refactor of exa_linalg:
- rename Vec1DReal to VecReal (a Vec is a 1D object bloody hell!), Vec1DNode to VecNode, Mat2D to Mat
- for the recall, these types are used to extend standard linear algebra functions to combinations of Real and AbstractNode types without creating any ambiguity
- rule no. 1: as for * (which is extended and optimised to implement 0 * e = 0 and used everywhere possible as a building block), use an optimised __dot function to define ALL operations; here is the code of the optimised __dot function:
- this function is in particular used to redefine dot for our specific types (not on AbstractVector to prevent type ambiguities!):
- rule no. 2: do not use slices like A[:, j] that make copies (allocations!) but ALWAYS views instead, like view(A, :, j) (never the macro @view)
- if necessary, consider adjoint x vector (currently there is only adjoint x matrix)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
internal devModification to the code is requested and should not affect user experimentModification to the code is requested and should not affect user experiment