/*static void s_CSR_to_CSC(int m, int n, int nnz,
float *a, int *colind, int *rowptr,
float **at, int **rowind, int **colptr);

static void d_Print_L(SuperMatrix *A, int *nnzA, int *AddtoU, bool EnAddElem_to_U);

static void d_Print_U(SuperMatrix *A, int *nnzA, int AddtoU, bool EnAddElem_to_U);

static void d_Concatenate_LU(int *M,
int *nnzL, double *csr_L, int *csrColInd_L, int *csrRowPtr_L,
int *nnzU, double *csr_U, int *csrColInd_U, int *csrRowPtr_U,
int *nnzLU, double **csrMatrix_LU, int **csrColInd_Matrix_LU, int **csrRowPtr_Matrix_LU,
bool Add_L_as_zeros);*/

////Функция для факторизации матрицы усиления
//static int SUPERLU_API d_G_LU_Factorization(int *M, 
//	int *nnz_A, double *csrMatrix_A, int *csrColInd_A, int *csrRowPtr_A, 
//	int *nnz_L, double **csr_L, int **csrColInd_L, int **csrRowPtr_L,
//	int *nnz_U, double **csr_U, int **csrColInd_U, int **csrRowPtr_U,
//	double **csrL_Diagonal, int **Permutation_C, int **Permutation_R,
//	int *nnzLU, double **csrMatrix_LU, int **csrColInd_Matrix_LU, int **csrRowPtr_Matrix_LU, int *UsePerm);

////Функция для факторизации матрицы Якоби
//static int SUPERLU_API d_J_LU_Factorization(int *M, int *N, int *nnz_J, 
//	double *csrMatrix_J, int *csrColInd_J, int *csrRowPtr_J,
//	double *Weight,
//	int *nnz_L, double **csr_L, int **csrColInd_L, int **csrRowPtr_L,
//	int *nnz_U, double **csr_U, int **csrColInd_U, int **csrRowPtr_U,
//	double **csrL_Diagonal, int **Permutation_C, int **Permutation_R,
//	int *nnzLU, double **csrMatrix_LU, int **csrColInd_Matrix_LU, int **csrRowPtr_Matrix_LU, int *UsePerm);

//static int SUPERLU_API s_SuperLU_Solver(int *M, int *nnz_LDMatrix, 
//	float *csr_LDMatrix, int *csrColInd_LDMatrix, int *csrRowPtr_LDMatrix, float *RHS,
//	int *Phase, int *nrhs);

//static int SUPERLU_API s_SuperLU_Block_Solver(int *M, int *nnz_LDMatrix, 
//	float *csr_LDMatrix, int *csrColInd_LDMatrix, int *csrRowPtr_LDMatrix, float *RHS,
//	int *Phase, int *nrhs);

//static int SUPERLU_API s_Parallel_SuperLU_Block_Solver(int *M, int *nnz_LDMatrix, 
//	float *csr_LDMatrix, int *csrColInd_LDMatrix, int *csrRowPtr_LDMatrix, float *RHS,
//	int *Phase, int *nrhs);

////Решатель от MKL: DSS
//static int SUPERLU_API d_DSS_Solver(int *M, int *nnz_LDMatrix, 
//	double *csr_LDMatrix, int *csrColInd_LDMatrix, int *csrRowPtr_LDMatrix, 
//	double *RHS, double *Solution,
//	int *Phase, int *nrhs);

////Решатель от MKL: PARDISO
//static int SUPERLU_API d_PARDISO_Solver(int *M, int *nnzLU, 
//			   double *csr_Matrix_LU, int *csrColInd_Matrix_LU, int *csrRowPtr_Matrix_LU,
//			   double *RHS, double *Solution,
//			   int *Phase, int *nrhs);

//static int SUPERLU_API s_PARDISO_Solver(int *M, int *nnzLU, 
//			   float *csr_Matrix_LU, int *csrColInd_Matrix_LU, int *csrRowPtr_Matrix_LU,
//			   float *RHS, float *Solution,
//			   int *Phase, int *nrhs);

////Функция для очистки выделенной памяти
//static void SUPERLU_API d_Free_Memory(int Key, int *M, int *csrRowPtr, int *csrColInd, int *nrhs);

//static int SUPERLU_API d_PARDISO_Factorization(int *M, int *N, int *nnzJ, 
//			   double *csr_Matrix, int *csrColInd_Matrix, int *csrRowPtr_Matrix,
//			   double *Weight, double **Diagonal);