Go to the documentation of this file.
41 #ifndef HEADER_RANDOM_MATRICES
42 #define HEADER_RANDOM_MATRICES
78 #ifdef PRECISION_QUAD_FLT128
79 #define MAX_DOUBLE FLT128_MAX
80 #define MIN_DOUBLE FLT128_MIN
82 #define MAX_DOUBLE std::numeric_limits<ergo_real>::max()
83 #define MIN_DOUBLE std::numeric_limits<ergo_real>::min()
87 #define PI 3.14159265 // needed for sprandsym
92 template<
typename Matrix>
93 void init_matrix(Matrix &X,
const int N,
int blockSizesMultuple = 4);
101 int get_matrix_from_binary_vec(
char *filename, std::vector<int> &I, std::vector<int> &J, std::vector<ergo_real> &val,
int &N);
110 template<
typename Matrix>
116 std::vector<int> blockSizes(nlevels);
117 blockSizes[nlevels - 1] = 1;
118 for (
int ind = nlevels - 2; ind >= 0; ind--)
119 blockSizes[ind] = blockSizes[ind + 1] * blockSizesMultuple;
127 #endif // HEADER_RANDOM_MATRICES
void get_all_eigenvalues_of_matrix(std::vector< ergo_real > &eigvalList, const MatrixTypeInner &M)
Definition: random_matrices.cc:105
File containing declarations of functions for reading/writing sparse matrices from/to mtx (MatrixMark...
Wrapper routines for different parts of the integral code, including conversion of matrices from/to t...
Definition of the main floating-point datatype used; the ergo_real type.
int get_matrix_from_sparse_vec(char *filename, std::vector< int > &I, std::vector< int > &J, std::vector< ergo_real > &val)
Definition: random_matrices.cc:421
static void read_matrix(Tmatrix &A, char const *const matrixPath, int const size)
Definition: general.h:115
void get_all_eigenvalues_of_matrix(std::vector< ergo_real > &eigvalList, const MatrixTypeInner &M)
Definition: random_matrices.cc:105
int get_matrix_from_sparse_vec(char *filename, std::vector< int > &I, std::vector< int > &J, std::vector< ergo_real > &val)
Definition: random_matrices.cc:421
int get_matrix_from_full(char *filename, MatrixTypeInner &X)
Definition: random_matrices.cc:480
symmMatrix MatrixTypeInner
Definition: random_matrices.h:72
double ergo_real
Definition: realtype.h:69
Treal template_blas_cos(Treal x)
intervalType IntervalType
Definition: random_matrices.h:71
int read_matrix_from_mtx(const char *filename, std::vector< int > &I, vector< int > &J, vector< real > &val, int &N, int &M)
Definition: files_sparse.cc:48
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
void init_matrix(Matrix &X, const int N, int blockSizesMultuple=4)
Create hierarchical matrix structure.
Definition: random_matrices.h:111
int get_matrix_from_binary(char *filename, MatrixTypeInner &X)
Definition: random_matrices.cc:437
mat::SizesAndBlocks rows
Definition: test.cc:51
void print_ergo_matrix(const MatrixTypeInner &F)
Definition: random_matrices.cc:45
void sprandsym(int N, MatrixTypeInner &X, MatrixGeneral &Q, vector< ergo_real > &D, const double MATRIX_SPARSITY)
Definition: random_matrices.cc:129
MatrixGeneral< real, matri > normalMatrix
Definition: test_LanczosSeveralLargestEig.cc:71
MatrixTriangular< real, matri > triangMatrix
Definition: test_LanczosSeveralLargestEig.cc:70
#define PI
Definition: random_matrices.h:87
int get_matrix_from_sparse(char *filename, MatrixTypeInner &X)
Definition: random_matrices.cc:405
void print_ergo_matrix(const MatrixTypeInner &F)
Definition: random_matrices.cc:45
void get_random_sparse_blocks_matrix(int N, MatrixTypeInner &X, int blockSizesMultuple=4, ergo_real probabilityBeingZero=0)
Definition: random_matrices.cc:95
int get_matrix_from_binary_vec(char *filename, std::vector< int > &I, std::vector< int > &J, std::vector< ergo_real > &val, int &N)
Definition: random_matrices.cc:456
int get_matrix_from_full(char *filename, MatrixTypeInner &X)
Definition: random_matrices.cc:480
void get_random_symm_matrix(int N, MatrixTypeInner &X, int blockSizesMultuple=4)
Definition: random_matrices.cc:65
std::vector< int > VectorTypeInt
Definition: random_matrices.h:76
Utilities related to the hierarchical matrix library (HML), including functions for setting up permut...
void print_matrix(std::vector< ergo_real > const &A)
Definition: random_matrices.cc:52
Treal template_blas_sin(Treal x)
mat::SizesAndBlocks cols
Definition: test.cc:52
Header file containing declarations of functions required for testing purposes. Functions include gen...
Header file with typedefs for matrix and vector types. The levels of hierarchic matrices are defined ...
int get_matrix_from_binary(char *filename, MatrixTypeInner &X)
Definition: random_matrices.cc:437
void get_random_sparse_blocks_matrix(int N, MatrixTypeInner &X, int blockSizesMultuple, ergo_real probabilityBeingZero)
Definition: random_matrices.cc:95
void print_matrix(std::vector< ergo_real > const &A)
Definition: random_matrices.cc:52
int get_matrix_from_binary_vec(char *filename, std::vector< int > &I, std::vector< int > &J, std::vector< ergo_real > &val, int &N)
Definition: random_matrices.cc:456
void get_random_symm_matrix(int N, MatrixTypeInner &X, int blockSizesMultuple)
Definition: random_matrices.cc:65
Describes dimensions of matrix and its blocks on all levels.
Definition: SizesAndBlocks.h:45
Class used to keep track of the block sizes used at different levels in the hierarchical matrix data ...
triangMatrix TriangMatrixType
Definition: random_matrices.h:73
static void syev(const char *jobz, const char *uplo, const int *n, T *a, const int *lda, T *w, T *work, const int *lwork, int *info)
Definition: mat_gblas.h:382
void sprandsym(int N, MatrixTypeInner &X, MatrixGeneral &Q, vector< ergo_real > &D, const double MATRIX_SPARSITY)
Definition: random_matrices.cc:129
int get_matrix_from_sparse(char *filename, MatrixTypeInner &X)
Definition: random_matrices.cc:405
File containing declaration of functions for reading/writing dense matrices and vectors.
Functionality for writing output messages to a text file.
normalMatrix MatrixGeneral
Definition: random_matrices.h:74