#pragma once
#include <inttypes.h>
#define SUCCESSFUL_EXIT 0
#define ERROR_NULL_POINTER 100000
#define ERROR_MALLOC 200000
#define ERROR_VERSION 300000
#define ERROR_NOT_AVAILABLE 400000
#define ERROR_NEED_INITIALIZATION 500000
#define ERROR_NEED_FACTORIZATION 600000
#define ERROR_ALREADY_INITIALIZED 700000
#define C_TRUE 1
#define C_FALSE 0
#define C_BOOL int32_t
#define COMPLEX64 double
#define ERROR_CUDA_MALLOC 100
#define ERROR_CUDA_MEMCPY 200
#define ERROR_CUDA_SYNCHRONIZE 300
#define ERROR_CUDSS_CONFIG_SET 400
#define ERROR_CUDSS_CONFIG_GET 450
#define ERROR_CUDSS_MATRIX_CREATE_DN 500
#define ERROR_CUDSS_MATRIX_SET_VALUES 550
#define ERROR_CUDSS_MATRIX_CREATE_CSR 600
#define ERROR_CUDSS_SYM_FACTORIZATION 700
#define ERROR_CUDSS_NUM_FACTORIZATION 800
#define ERROR_CUDSS_SOLVE 900
#define ERROR_CUDSS_SYM_FACTORIZATION 700
#define ERROR_CUDSS_NUM_FACTORIZATION 800
#define ERROR_CUDSS_SOLVE 900
#define ERROR_CUDSS_DEVICE 1000
#define UMFPACK_PRINT_LEVEL_SILENT 0.0
#define UMFPACK_PRINT_LEVEL_VERBOSE 2.0
#define MUMPS_IGNORED 0
#define MUMPS_JOB_INITIALIZE -1
#define MUMPS_JOB_TERMINATE -2
#define MUMPS_JOB_ANALYZE 1
#define MUMPS_JOB_FACTORIZE 2
#define MUMPS_JOB_SOLVE 3
#define MUMPS_PAR_HOST_ALSO_WORKS 1
#define MUMPS_ICNTL5_ASSEMBLED_MATRIX 0
#define MUMPS_ICNTL18_CENTRALIZED 0
#define MUMPS_ICNTL6_PERMUT_AUTO 7
#define MUMPS_ICNTL28_SEQUENTIAL 1