suanPan
TestMatrix.cpp File Reference
#include <Domain/MetaMat/MetaMat>
#include "CatchHeader.h"
Include dependency graph for TestMatrix.cpp:

Functions

template<typename MT , typename ET , std::invocable T>
void test_mat_solve (MT &A, const Mat< ET > &D, const Col< ET > &C, T clear_mat)
 
template<typename ET , std::invocable< u64 > F>
void test_dense_mat_setup (F new_mat)
 
template<typename ET , std::invocable< u64 > F>
void test_sparse_mat_setup (F new_mat)
 
template<typename MT , typename ET , std::invocable T>
void benchmark_mat_solve (string &&title, MT &A, const Col< ET > &C, const Mat< ET > &E, T &&clear_mat)
 
template<typename T >
create_new (u64)
 
template<>
FullMat< double > create_new (const u64 N)
 
template<>
SymmPackMat< double > create_new (const u64 N)
 
template<>
BandMat< double > create_new (const u64 N)
 
template<>
BandMatSpike< double > create_new (const u64 N)
 
template<>
BandSymmMat< double > create_new (const u64 N)
 
template<>
SparseMatSuperLU< double > create_new (const u64 N)
 
template<>
SparseMatMUMPS< double > create_new (const u64 N)
 
template<>
SparseSymmMatMUMPS< double > create_new (const u64 N)
 
template<>
FullMat< float > create_new (const u64 N)
 
template<>
SymmPackMat< float > create_new (const u64 N)
 
template<>
BandMat< float > create_new (const u64 N)
 
template<>
BandMatSpike< float > create_new (const u64 N)
 
template<>
BandSymmMat< float > create_new (const u64 N)
 
template<>
SparseMatSuperLU< float > create_new (const u64 N)
 
template<>
SparseMatMUMPS< float > create_new (const u64 N)
 
template<>
SparseMatLis< double > create_new (const u64 N)
 
template<typename T , typename ET >
void benchmark_mat_setup (const int I)
 
 TEST_CASE ("Mixed Precision", "[Matrix.Benchmark]")
 
 TEST_CASE ("Large Mixed Precision", "[Matrix.Benchmark]")
 
 TEST_CASE ("Large Sparse Solve Type", "[Matrix.Benchmark]")
 
 TEST_CASE ("FullMat", "[Matrix.Dense]")
 
 TEST_CASE ("SymmPackMat", "[Matrix.Dense]")
 
 TEST_CASE ("BandMat", "[Matrix.Dense]")
 
 TEST_CASE ("BandMatSpike", "[Matrix.Dense]")
 
 TEST_CASE ("BandSymmMat", "[Matrix.Dense]")
 
 TEST_CASE ("FullMatFloat", "[Matrix.Dense]")
 
 TEST_CASE ("SymmPackMatFloat", "[Matrix.Dense]")
 
 TEST_CASE ("BandMatFloat", "[Matrix.Dense]")
 
 TEST_CASE ("BandMatSpikeFloat", "[Matrix.Dense]")
 
 TEST_CASE ("BandSymmMatFloat", "[Matrix.Dense]")
 
 TEST_CASE ("SparseMatSuperLU", "[Matrix.Sparse]")
 
 TEST_CASE ("SparseMatSuperLUFloat", "[Matrix.Sparse]")
 
 TEST_CASE ("SparseMatMUMPS", "[Matrix.Sparse]")
 
 TEST_CASE ("SparseMatMUMPSFloat", "[Matrix.Sparse]")
 
 TEST_CASE ("SparseMatLis", "[Matrix.Sparse]")
 
 TEST_CASE ("Triplet/CSR/CSC Sparse", "[Matrix.Sparse]")
 
 TEST_CASE ("Benchmark Triplet Assembly", "[Matrix.Sparse]")
 
 TEST_CASE ("Triplet/CSR/CSC Conversion", "[Matrix.Sparse]")
 
 TEST_CASE ("Benchmark Triplet Measure", "[Matrix.Sparse]")
 
template<typename T >
void test_dense_mat_unify (T A)
 
template<typename T >
void test_sparse_mat_unify (T A)
 
 TEST_CASE ("Unify FullMat", "[Matrix.Utility]")
 
 TEST_CASE ("Unify BandMat", "[Matrix.Utility]")
 
 TEST_CASE ("Unify BandSymmMat", "[Matrix.Utility]")
 
 TEST_CASE ("Unify BandMatSpike", "[Matrix.Utility]")
 
 TEST_CASE ("Unify SymmPackMat", "[Matrix.Utility]")
 
 TEST_CASE ("Unify SparseMatSuperLU", "[Matrix.Utility]")
 
 TEST_CASE ("Unify SparseMatMUMPS", "[Matrix.Utility]")
 
 TEST_CASE ("Aligned Round", "[Matrix.Utility]")
 

Function Documentation

◆ benchmark_mat_setup()

template<typename T , typename ET >
void benchmark_mat_setup ( const int  I)

◆ benchmark_mat_solve()

template<typename MT , typename ET , std::invocable T>
void benchmark_mat_solve ( string &&  title,
MT &  A,
const Col< ET > &  C,
const Mat< ET > &  E,
T &&  clear_mat 
)
Here is the call graph for this function:

◆ create_new() [1/17]

template<>
FullMat< double > create_new ( const u64  N)

◆ create_new() [2/17]

template<>
SymmPackMat< double > create_new ( const u64  N)

◆ create_new() [3/17]

template<>
BandMat< double > create_new ( const u64  N)

◆ create_new() [4/17]

template<>
BandMatSpike< double > create_new ( const u64  N)

◆ create_new() [5/17]

template<>
BandSymmMat< double > create_new ( const u64  N)

◆ create_new() [6/17]

template<>
SparseMatSuperLU< double > create_new ( const u64  N)

◆ create_new() [7/17]

template<>
SparseMatMUMPS< double > create_new ( const u64  N)

◆ create_new() [8/17]

template<>
SparseSymmMatMUMPS< double > create_new ( const u64  N)

◆ create_new() [9/17]

template<>
FullMat< float > create_new ( const u64  N)

◆ create_new() [10/17]

template<>
SymmPackMat< float > create_new ( const u64  N)

◆ create_new() [11/17]

template<>
BandMat< float > create_new ( const u64  N)

◆ create_new() [12/17]

template<>
BandMatSpike< float > create_new ( const u64  N)

◆ create_new() [13/17]

template<>
BandSymmMat< float > create_new ( const u64  N)

◆ create_new() [14/17]

template<>
SparseMatSuperLU< float > create_new ( const u64  N)

◆ create_new() [15/17]

template<>
SparseMatMUMPS< float > create_new ( const u64  N)

◆ create_new() [16/17]

template<>
SparseMatLis< double > create_new ( const u64  N)

◆ create_new() [17/17]

template<typename T >
T create_new ( u64  )
Here is the caller graph for this function:

◆ TEST_CASE() [1/30]

TEST_CASE ( "Aligned Round"  ,
""  [Matrix.Utility] 
)

◆ TEST_CASE() [2/30]

TEST_CASE ( "BandMat"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [3/30]

TEST_CASE ( "BandMatFloat"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [4/30]

TEST_CASE ( "BandMatSpike"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [5/30]

TEST_CASE ( "BandMatSpikeFloat"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [6/30]

TEST_CASE ( "BandSymmMat"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [7/30]

TEST_CASE ( "BandSymmMatFloat"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [8/30]

TEST_CASE ( "Benchmark Triplet Assembly"  ,
""  [Matrix.Sparse] 
)
Here is the call graph for this function:

◆ TEST_CASE() [9/30]

TEST_CASE ( "Benchmark Triplet Measure"  ,
""  [Matrix.Sparse] 
)
Here is the call graph for this function:

◆ TEST_CASE() [10/30]

TEST_CASE ( "FullMat"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [11/30]

TEST_CASE ( "FullMatFloat"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [12/30]

TEST_CASE ( "Large Mixed Precision ,
""  [Matrix.Benchmark] 
)

◆ TEST_CASE() [13/30]

TEST_CASE ( "Large Sparse Solve Type"  ,
""  [Matrix.Benchmark] 
)

◆ TEST_CASE() [14/30]

TEST_CASE ( "Mixed Precision ,
""  [Matrix.Benchmark] 
)

◆ TEST_CASE() [15/30]

TEST_CASE ( "SparseMatLis"  ,
""  [Matrix.Sparse] 
)
Here is the call graph for this function:

◆ TEST_CASE() [16/30]

TEST_CASE ( "SparseMatMUMPS"  ,
""  [Matrix.Sparse] 
)
Here is the call graph for this function:

◆ TEST_CASE() [17/30]

TEST_CASE ( "SparseMatMUMPSFloat"  ,
""  [Matrix.Sparse] 
)
Here is the call graph for this function:

◆ TEST_CASE() [18/30]

TEST_CASE ( "SparseMatSuperLU"  ,
""  [Matrix.Sparse] 
)
Here is the call graph for this function:

◆ TEST_CASE() [19/30]

TEST_CASE ( "SparseMatSuperLUFloat"  ,
""  [Matrix.Sparse] 
)
Here is the call graph for this function:

◆ TEST_CASE() [20/30]

TEST_CASE ( "SymmPackMat"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [21/30]

TEST_CASE ( "SymmPackMatFloat"  ,
""  [Matrix.Dense] 
)
Here is the call graph for this function:

◆ TEST_CASE() [22/30]

TEST_CASE ( "Triplet/CSR/CSC Conversion"  ,
""  [Matrix.Sparse] 
)
Here is the call graph for this function:

◆ TEST_CASE() [23/30]

TEST_CASE ( "Triplet/CSR/CSC Sparse"  ,
""  [Matrix.Sparse] 
)
Here is the call graph for this function:

◆ TEST_CASE() [24/30]

TEST_CASE ( "Unify BandMat ,
""  [Matrix.Utility] 
)
Here is the call graph for this function:

◆ TEST_CASE() [25/30]

TEST_CASE ( "Unify BandMatSpike ,
""  [Matrix.Utility] 
)
Here is the call graph for this function:

◆ TEST_CASE() [26/30]

TEST_CASE ( "Unify BandSymmMat ,
""  [Matrix.Utility] 
)
Here is the call graph for this function:

◆ TEST_CASE() [27/30]

TEST_CASE ( "Unify FullMat ,
""  [Matrix.Utility] 
)
Here is the call graph for this function:

◆ TEST_CASE() [28/30]

TEST_CASE ( "Unify SparseMatMUMPS ,
""  [Matrix.Utility] 
)
Here is the call graph for this function:

◆ TEST_CASE() [29/30]

TEST_CASE ( "Unify SparseMatSuperLU ,
""  [Matrix.Utility] 
)
Here is the call graph for this function:

◆ TEST_CASE() [30/30]

TEST_CASE ( "Unify SymmPackMat ,
""  [Matrix.Utility] 
)
Here is the call graph for this function:

◆ test_dense_mat_setup()

template<typename ET , std::invocable< u64 > F>
void test_dense_mat_setup ( new_mat)
Here is the call graph for this function:

◆ test_dense_mat_unify()

template<typename T >
void test_dense_mat_unify ( A)
Here is the caller graph for this function:

◆ test_mat_solve()

template<typename MT , typename ET , std::invocable T>
void test_mat_solve ( MT &  A,
const Mat< ET > &  D,
const Col< ET > &  C,
clear_mat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_sparse_mat_setup()

template<typename ET , std::invocable< u64 > F>
void test_sparse_mat_setup ( new_mat)
Here is the call graph for this function:

◆ test_sparse_mat_unify()

template<typename T >
void test_sparse_mat_unify ( A)
Here is the caller graph for this function: