dss_statistics
Returns statistics about various phases of the solving process.
Syntax
Fortran:

call dss_statistics(handle, opt, statArr, retValues)
C:

MKL_INT dss_statistics(_MKL_DSS_HANDLE_t *handle, MKL_INT const *opt, _CHARACTER_STR_t const *statArr, _DOUBLE_PRECISION_t *retValues)
Description
The dss_statistics routine returns statistics about various phases of the solving process. This routine gathers the following statistics:

time taken to do reordering,

time taken to do factorization,

duration of problem solving,

determinant of the symmetric indefinite input matrix,

inertia of the symmetric indefinite input matrix,

number of floating point operations taken during factorization,

total peak memory needed during the analysis and symbolic factorization,

permanent memory needed from the analysis and symbolic factorization,

memory consumption for the factorization and solve phases.
Statistics are returned in accordance with the input string specified by the parameter statArr. The value of the statistics is returned in double precision in a return array, which you must allocate beforehand.
For multiple statistics, multiple string constants separated by commas can be used as input. Return values are put into the return array in the same order as specified in the input string.
Statistics can only be requested at the appropriate stages of the solving process. For example, requesting FactorTime before a matrix is factored leads to an error.
The following table shows the point at which each individual statistics item can be requested:
Type of Statistics  When to Call 

ReorderTime  After dss_reorder is completed successfully. 
FactorTime  After dss_factor_real or dss_factor_complex is completed successfully. 
SolveTime  After dss_solve_real or dss_solve_complex is completed successfully. 
Determinant  After dss_factor_real or dss_factor_complex is completed successfully. 
Inertia  After dss_factor_real is completed successfully and the matrix is real, symmetric, and indefinite. 
Flops  After dss_factor_real or dss_factor_complex is completed successfully. 
Peakmem  After dss_reorder is completed successfully. 
Factormem  After dss_reorder is completed successfully. 
Solvemem  After dss_factor_real or dss_factor_complex is completed successfully. 
Input Parameters
handle 
FORTRAN 77: INTEGER*8 Fortran 90: TYPE (MKL_DSS_HANDLE), INTENT(IN) Pointer to the data structure storing internal DSS results (MKL_DSS_HANDLE). 
opt 
FORTRAN 77: INTEGER Fortran 90: INTEGER, INTENT(IN) Parameter to pass the DSS options. 
statArr 
FORTRAN 77: INTEGER Fortran 90: INTEGER, INTENT(IN) Input string that defines the type of the returned statistics. The parameter can include one or more of the following string constants (case of the input string has no effect): 
ReorderTime 
Amount of time taken to do the reordering. 
FactorTime 
Amount of time taken to do the factorization. 
SolveTime 
Amount of time taken to solve the problem after factorization. 
Determinant 
Determinant of the matrix A. For real matrices: the determinant is returned as det_pow, det_base in two consecutive return array locations, where For complex matrices: the determinant is returned as det_pow, det_re, det_im in three consecutive return array locations, where 
Inertia 
Inertia of a real symmetric matrix is defined as a triplet of nonnegative integers Inertia is returned as three consecutive return array locations p, n, z. Computing inertia can lead to incorrect results for matrixes with a cluster of eigenvalues which are near 0. Inertia of a kbyk real symmetric positive definite matrix is always 
Flops 
Number of floating point operations performed during the factorization. 
Peakmem 
Total peak memory in kilobytes that the solver needs during the analysis and symbolic factorization phase. 
Factormem 
Permanent memory in kilobytes that the solver needs from the analysis and symbolic factorization phase in the factorization and solve phases. 
Solvemem 
Total double precision memory consumption (kilobytes) of the solver for the factorization and solve phases. 
Note
To avoid problems in passing strings from Fortran to C, Fortran users must call the mkl_cvt_to_null_terminated_str routine before calling dss_statistics. Refer to the description of mkl_cvt_to_null_terminated_str for details.
Output Parameters
retValues 
FORTRAN 77: REAL*8 Fortran 90: REAL(KIND=8), INTENT(OUT) Value of the statistics returned. 
Finding 'time used to reorder' and 'inertia' of a matrix
The example below illustrates the use of the dss_statistics routine.
To find the above values, call dss_statistics(handle, opt, statArr, retValue), where staArr is "ReorderTime,Inertia"
In this example, retValue has the following values:
retValue[0]
 Time to reorder.
retValue[1]
 Positive Eigenvalues.
retValue[2]
 Negative Eigenvalues.
retValue[3]
 Zero Eigenvalues.