1<!ELEMENT BENCH (AVAILSOLVER+,LINEARSYSTEM+)>
2  <!ELEMENT AVAILSOLVER (SOLVER+)>
3    <!ELEMENT SOLVER (TYPE,PACKAGE)>
4      <!ELEMENT TYPE (#PCDATA)>  <!-- One of LU, LLT, LDLT, ITER -->
5      <!ELEMENT PACKAGE (#PCDATA)>  <!-- Derived from a library -->
6  <!ELEMENT LINEARSYSTEM (MATRIX,SOLVER_STAT+,BEST_SOLVER,GLOBAL_PARAMS*)>
7    <!ELEMENT MATRIX (NAME,SIZE,ENTRIES,PATTERN?,SYMMETRY,POSDEF?,ARITHMETIC,RHS*)>
8      <!ELEMENT NAME (#PCDATA)>
9      <!ELEMENT SIZE (#PCDATA)>
10      <!ELEMENT ENTRIES (#PCDATA)> <!-- The number of nonzeros elements -->
11      <!ELEMENT PATTERN (#PCDATA)>  <!-- Is structural pattern symmetric or not -->
12      <!ELEMENT SYMMETRY (#PCDATA)> <!-- symmmetry with numerical values -->
13      <!ELEMENT POSDEF (#PCDATA)> <!-- Is the matrix positive definite or not -->
14      <!ELEMENT ARITHMETIC (#PCDATA)>
15      <!ELEMENT RHS (SOURCE)>  <!-- A matrix can have one or more right hand side associated. -->
16        <!ELEMENT SOURCE (#PCDATA)> <!-- Source of the right hand side, either generated or provided -->
17    <!ELEMENT SOLVER_STAT (PARAMS*,TIME,ERROR,ITER?)>
18      <!ELEMENT PARAMS (#PCDATA)>
19      <!ELEMENT TIME (COMPUTE,SOLVE,TOTAL)>
20        <!ELEMENT COMPUTE (#PCDATA)> <!-- Time to analyze,to factorize, or to setup the preconditioner-->
21        <!ELEMENT SOLVE (#PCDATA)> <!-- Time to solve with all the available rhs -->
22        <!ELEMENT TOTAL (#PCDATA)>
23      <!ELEMENT ERROR (#PCDATA)> <!-- Either the relative error or the relative residual norm -->
24      <!ELEMENT ITER (#PCDATA)> <!-- Number of iterations -->
25    <!ELEMENT BEST_SOLVER CDATA> <!-- Id of the best solver -->
26    <!ELEMENT GLOBAL_PARAMS (#PCDATA)> <!-- Parameters shared by all solvers -->
27
28<!ATTLIST SOLVER ID CDATA #REQUIRED>
29<!ATTLIST SOLVER_STAT ID CDATA #REQUIRED>
30<!ATTLIST BEST_SOLVER ID CDATA #REQUIRED>
31<!ATTLIST RHS ID CDATA #IMPLIED>