Skip to content

Make the LU factorization helper class modmesh::detail::Lu stateful and outside detail #809

@yungyuc

Description

@yungyuc

cpp/modmesh/linalg/lu_factorization.hpp implemented LU-with-partial-pivoting as a class template modmesh::detail::Lu<T> which was really a namespace of static methods. Resultant and intermediate data are not kept in a data object for reuse. solve()/inv() reran the O(n^3) algorithm factorize() unnecessarily.

The class template should be made a stateful data object to keep the expensively calculated buffers. Owners of the Lu data object determine how to use the data. The class template should be pulled up from detail and use a more distinguishable name.

This issue is to follow up on PR #735.

Metadata

Metadata

Assignees

Labels

arrayMulti-dimensional array implementationperformanceProfiling, runtime, and memory consumption

Type

No fields configured for Task.

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions