###############################################################################
######          Definition of DisplayParameters attributes           ##########
#####
##### . Each definition must be separated by at least a comment line
#####     (starting by #).
#####
##### . The definition must provide the name, type and default value
#####     (no default: '-' or 'N/A') in this order, one by line.
#####
##### . Only a single word is considered for the name,
#####     type and default value (extra is comment).
#####
##### . The short info, the help and the keywords must be provided in this
#####     order within "\(" and "\). For keywords, the plural part of a word
#####     can be put in parenthesis; both singular and plural will be keywords.
#####
##### . The default value is automatically reported in the help.
#####
##### . In addition, the definition can have optional attributes:
#####       - ALGO_COMPATIBILITY_CHECK yes/no, the default is no. If yes, the
#####         value of this attribute can be used for comparing two sets of
#####         attributes for algorithm compatibility. This is used by the
#####         Runner.
#####
#####       - RESTART_ATTRIBUTE yes/no, the default is no. If yes, the
#####         value of this attribute can be modified during hot or warm
#####         restart. Otherwise, modifying this attribute during hot restart
#####         will trigger an error message.
#####
#####       - UNIQUE_ENTRY yes/no, the default is yes. If no, multiple
#####         values may be assigned to this parameter.
#####
###############################################################################
DISPLAY_ALL_EVAL
bool
false
\( Flag to display all evaluations \)
\(

. If true, more points are displayed with parameters DISPLAY_STATS and
  STATS_FILE

. If false, only the successful evaluations are displayed.

. Overrides parameters DISPLAY_INFEASIBLE and DISPLAY_UNSUCCESSFUL

. Points of the phase one with EB constraint are not displayed

. Argument: one boolean

. Example: DISPLAY_ALL_EVAL yes

\)
\( basic display(s) stat(s) eval(s) evaluation(s)  \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE yes
###############################################################################
DISPLAY_DEGREE
int
2
\( Level of verbose during execution \)
\(

. Argument: one integer:
    . 0: No display. Print nothing.
    . 1: High-level display. Print only errors and results.
    . 2: Normal display. Print medium level like global information and useful information.
    . 3: Info-level display. Print lots of information.
    . 4: Debug-level display.
    . 5: Even more display.

. Example:
    DISPLAY_DEGREE 2    # normal display

\)
\( basic display verbose output(s) info(s) \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE yes
###############################################################################
DISPLAY_HEADER
size_t
40
\( Frequency at which the stats header is displayed \)
\(

. Every time this number of stats lines is displayed, the stats header is
  displayed again. This parameter is for clarity of the display.

. Value of INF means to never display the header.

\)
\( advanced \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE yes
###############################################################################
DISPLAY_INFEASIBLE
bool
true
\( Flag to display infeasible \)
\(

. When true, do display iterations (standard output and stats file) for which
  constraints are infeasible.

. When false, only display iterations where the point is feasible. Except
the initial point that is always displayed.

. Adjust this parameter to your needs along with DISPLAY_UNSUCCESSFUL.

. Argument: one boolean

. Example: DISPLAY_INFEASIBLE false

\)
\( advanced display(s) infeasible \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE yes
###############################################################################
DISPLAY_MAX_STEP_LEVEL
size_t
20
\( Depth of the step after which info is not printed \)
\(
. If a step has more than this number of parent steps, it will not be printed.

. Only has effect when DISPLAY_DEGREE = FULL.

\)
\( advanced \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE yes
###############################################################################
DISPLAY_STATS
NOMAD::ArrayOfString
BBE OBJ
\( Format for displaying the evaluation points \)
\(

. Format of the outputs displayed at each success (single-objective)

. Format of the final Pareto front (multi-objective)

. Displays more points with DISPLAY_ALL_EVAL true

. Arguments: list of strings possibly including the following keywords:
    BBE        : blackbox evaluations
    BBO        : blackbox output
    BLK_EVA    : block evaluation calls
    BLK_SIZE   : number of points in the block
    CACHE_HITS : cache hits
    CACHE_SIZE : cache size
    CONS_H     : infeasibility (h) value
    DIRECTION  : direction that generated this point
    EVAL       : evaluations (includes cache hits)
    FEAS_BBE   : feasible blackbox evaluations
    FRAME_CENTER : point that was used as center when generating this point
    FRAME_SIZE / DELTA_F : frame size delta_k^f
    GEN_STEP   : name of the step that generated this point
    H_MAX      : max infeasibility (h) acceptable
    INF_BBE    : infeasible blackbox evaluations
    ITER_NUM   : iteration number in which this evaluation was done
    LAP        : number of lap evaluations since last reset
    MESH_INDEX : mesh index
    MESH_SIZE / DELTA_M : mesh size delta_k^m
    MODEL_EVAL : number of quad or sgtelib model evaluations since last reset
    OBJ        : objective function value
    PHASE_ONE_SUCC: success evaluations during phase one phase
    REL_SUCC   : relative success feasible evaluations (relative to the previous
                 evaluation, or relative to the mesh center if there was no
                 previous evaluation in the same pass)
    SOL        : current feasible iterate
    SUCCESS_TYPE: success type for this evaluation, compared with the frame center
    SURROGATE_EVAL: number of static surrogate evaluations
    THREAD_ALGO: thread number for the algorithm
    THREAD_NUM : thread number in which this evaluation was done
    TIME       : real time in seconds
    TOTAL_MODEL_EVAL: total number of quad or sgtelib model evaluations
    USER       : user-defined string
    
. All outputs may be formatted using C style
  (%f, %e, %E, %g, %G, %i, %d with the possibility to specify the display width
  and the precision)
  example: %5.2Ef displays f in 5 columns and 2 decimals in scientific notation
. Do not use quotes
. The '%' character may be explicitly indicated with '\%'
. For multi-objective optimization, OBJ displays a single objective value.
  BBO keyword can be used to display all outputs. 
  It is also recommended to allow DISPLAY_ALL_EVAL.  

. Example:
    DISPLAY_STATS BBE EVAL ( SOL ) OBJ CONS_H
    DISPLAY_STATS \%5.2obj
    # for LaTeX tables:
    DISPLAY_STATS $BBE$ & ( $%12.5SOL, ) & $OBJ$ \\

\)
\( basic display(s) output(s) stat(s) success(es) \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE yes
###############################################################################
DISPLAY_FAILED
bool
false
\( Flag to display failed evaluation \)
\(

. When true, display evaluations that are not ok (failed).

. Such evaluations will be displayed as INF value for f and h, but blackbox
  outputs can be displayed as obtained.
  
. This option can be used to show failed evaluations for debugging. By default,
  failed evaluations are not displayed in stats file.
  
. Argument: one boolean ('yes' or 'no')

. Example: DISPLAY_FAILED yes


\)
\( advanced display(s) success(es) failed failure(s) fail(s) \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE yes
###############################################################################
DISPLAY_UNSUCCESSFUL
bool
false
\( Flag to display unsuccessful \)
\(

. When true, display iterations even when no better solution is found.

. When false, only display iterations when a better objective value is found.

. Argument: one boolean ('yes' or 'no')

. Example: DISPLAY_UNSUCCESSFUL yes


\)
\( advanced display(s) success(es) failed failure(s) fail(s) \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE yes
###############################################################################
STATS_FILE
NOMAD::ArrayOfString
-
\( The name of the stats file \)
\(

. File containing all successes in a formatted way (similar as DISPLAY_STATS in a file)

. Displays more points when DISPLAY_ALL_EVAL is true

. Arguments: one string (file name) and one list of strings (for the format of stats)

. The seed is added to the file name if
  ADD_SEED_TO_FILE_NAMES=\'yes\' (default)

. Example: STATS_FILE log.txt BBE SOL %.2fOBJ

\)
\( basic stat(s) file(s) name display(s) output(s) \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE no
###############################################################################
EVAL_STATS_FILE
string
-
\( The name of the file for stats about evaluations and successes \)
\(

. File containing overall stats information about number of evaluations and
successes.

. If NOMAD is built with TIME_STATS enabled, provide detailed time stats.

. Arguments: one string for the file name

. The seed is added to the file name if
  ADD_SEED_TO_FILE_NAMES=\'yes\' (default)

. Example: EVAL_STATS_FILE detailedStats.txt

\)
\( basic stat(s) file(s) evaluation(s) time\)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE no
###############################################################################
SOL_FORMAT
NOMAD::ArrayOfDouble
-
\( Internal parameter for format of the solution \)
\(

. SOL_FORMAT is computed from BB_OUTPUT_TYPE and GRANULARITY
  parameters.

. Gives the format precision for display of SOL. May also be used for
  other ArrayOfDouble of the same DIMENSION (ex. bounds, deltas).

. CANNOT BE MODIFIED BY USER. Internal parameter.

\)
\( internal \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE yes
###############################################################################
OBJ_WIDTH
size_t
0
\( Internal parameter for character width of the objective \)
\(

. Computed to display the objective correctly when NOMAD is run.

. CANNOT BE MODIFIED BY USER. Internal parameter.

\)
\( internal \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE no
###############################################################################
HISTORY_FILE
std::string
-
\( The name of the history file \)
\(

. The history file contains all evaluations in a simple format (SOL BBO)

. Arguments: one string (file name)

. The seed is added to the file name if
  ADD_SEED_TO_FILE_NAMES=\'yes\' (default)

. Example: HISTORY_FILE history.txt


\)
\( basic history file name display(s) output(s) \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE no
###############################################################################
SOLUTION_FILE
std::string
-
\( The name of the file containing the best feasible solution \)
\(

. The solution file contains the best feasible incumbent point in a simple
  format (SOL BBO)
  
. If SOLUTION_FILE_FINAL is set to false, the solution file is written when
a new success is obtained. Otherwise, it is written upon finalizing the run.

. Arguments: one string (file name)

. The seed is added to the file name if
  ADD_SEED_TO_FILE_NAMES=\'yes\' (default)

. Example: SOLUTION_FILE sol.txt


\)
\( basic solution best incumbent file name display(s) output(s) \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE no
###############################################################################
SOLUTION_FILE_FINAL
bool
false
\( Flag to decide when to write best feasible solution \)
\(

. If a SOLUTION_FILE is provided, the best feasible incumbent point can be
written on every success or at the end of the optimization.

. For multiobjective optimization problem the solution file contains current
pareto solutions. There can be a large number of pareto points.
  
. If SOLUTION_FILE_FINAL is set to false, the solution file is written when
a new success is obtained. Otherwise, it is written upon finalizing the run.

. The flag has not effect if SOLUTION_FILE is not set properly.

. Arguments: one bool

. Example: SOLUTION_FILE_FINAL true


\)
\( basic solution best incumbent file name display(s) output(s) \)
ALGO_COMPATIBILITY_CHECK no
RESTART_ATTRIBUTE no
###############################################################################
