ROL Parameter List Hierarchy
============================

[Trust Region]
- Trust-Region Subproblem Solver Type
    - Cauchy Point
    - Truncated CG
    - Dogleg
    - Double Dogleg
- Initial Trust-Region Radius (double)
- Minimum Trust-Region Radius (double)
- Maximum Trust-Region Radius (double)
- Trust-Region Safeguard

- Gradient Update Tolerance Scaling (double)
- Gradient Update Relative Tolerance (double)
- Use Inexact Objective Function (bool)
- Use Inexact Gradient (bool)
- Use Inexact Hessian-Times-A-Vector (bool)
- Radius Shrinking Threshold
- Radius Growing Threshold
- Radius Shrinking Rate (Negative rho)
- Radius Shrinking Rate (Positive rho)
- Radius Growing Rate


     
- Use Line Search
    - Linesearch Type
        - Iteration Scaling
        - Path-Based Target Level
        - Backtracking
        - Bisection
        - Golden Section
        - Cubic Interpolation
        - Brents
        - User Defined 
    - Linesearch Curvature Condition
        - Wolfe Conditions
        - Strong Wolfe Conditions
        - Generalized Wolfe Conditions
        - Approximate Wolfe Conditions
        - Goldstein Conditions
        - Null Curvature Condition
    - Initial Linesearch Parameter (double)
    - Sufficient Decrease Parameter (double)
    - Curvature Conditions Parameter (double)
    - Backtracking Rate (double)
    - Initial Linesearch Parameter (double)
    - User Defined Linesearch Parameter (bool)
    - Maximum Number of Function Evaluations (int)
    - Use Inexact Hessian-Times-A-Vector (bool)


[General]
- Maximum Number of Iterations



[Stochastic]
- Variable Objective Function (bool)

[Bound constrained]
- Scale for Epsilon Active Sets (double)
- Use Projected Gradient Criticality Measure (bool)


[SQP]
- Nominal SQP Optimality Solver Tolerance (double)
- Maximum Number of Krylov Iterations (double)
- Absolute Krylov Tolerance (double)


[Primal Dual Active Set]
- PDAS Maximum Number of Iterations (int)
- PDAS Relative Step Tolerance (double)
- PDAS Relative Gradient Tolerance (double)
- PDAS Dual Scaling (double) 



- Descent Type
    - Steepest Descent
    - Nonlinear CG
        - Hestenes-Stiefel
        - Fletcher-Reeves
        - Daniel (uses Hessian)
        - Polak-Ribiere
        - Fletcher Conjugate Descent
        - Liu-Storey
        - Dai-Yuan
        - Hager-Zhang
        - Oren-Luenberger
    - Quasi-Newton Method
        - Secant Type
            - Limited-Memory BFGS
            - Limited-Memory DFP
            - Limited-Memory SR1
            - Barzilai-Borwein
                - Barzilai-Borwein Type (int)
            - User-Defined
        - Maximum Secant Storage (int)
    - Newton-Krylov
        - Absolute Krylov Tolerance (double)
        - Relative Krylov Tolerance (double)
        - Maximum Number of Krylov Iterations (int)
        - Krylov Type
            - Conjugate Gradients
            - Conjugate Residuals
        - Use Secant Hessian-Times-A-Vector (bool)
        - Use Secant Preconditioning (bool)
    - Newton's Method
