#:include "common.fypp" #:set R_KINDS_TYPES = list(zip(REAL_KINDS, REAL_TYPES, REAL_SUFFIX)) #:set C_KINDS_TYPES = list(zip(CMPLX_KINDS, CMPLX_TYPES, CMPLX_SUFFIX)) module stdlib_sparse_constants use stdlib_kinds, only: int8, int16, int32, int64, sp, dp, xdp, qp implicit none public enum, bind(C) enumerator :: sparse_full !! Full Sparse matrix (no symmetry considerations) enumerator :: sparse_lower !! Symmetric Sparse matrix with triangular inferior storage enumerator :: sparse_upper !! Symmetric Sparse matrix with triangular supperior storage end enum character(1), parameter :: sparse_op_none = 'N' !! no transpose character(1), parameter :: sparse_op_transpose = 'T' !! transpose character(1), parameter :: sparse_op_hermitian = 'H' !! conjugate or hermitian transpose ! Integer size support for ILP64 builds should be done here integer, parameter :: ilp = int32 #:for k1, t1, s1 in (R_KINDS_TYPES) ${t1}$, parameter :: zero_${s1}$ = 0._${k1}$ ${t1}$, parameter :: one_${s1}$ = 1._${k1}$ #:endfor #:for k1, t1, s1 in (C_KINDS_TYPES) ${t1}$, parameter :: zero_${s1}$ = (0._${k1}$,0._${k1}$) ${t1}$, parameter :: one_${s1}$ = (1._${k1}$,1._${k1}$) #:endfor end module stdlib_sparse_constants