==================== CUTEst File Format ==================== The CUTEst file format in FitBenchmarking is a slight modification of the `SIF format `_. Specifically, the data points, errors, and the number of variables must be defined in such a way to allow FitBenchmarking to access this data; see below. In FitBenchmarking, all SIF files are assumed to be CUTEst problems. These problems are a subset of the problems in the `CUTEr/st Test Problem Set `_, which may have been adapted to work with FitBenchmarking. The SIF file format is very powerful, and CUTEst will work with arbitrary variable names, however for FitBenchmarking, these must match a set of expected variable names. **Licence** This file format needs PyCUTEst and the packages ARCHDefs, CUTEst and SIFDECODE to be installed. PyCUTEst is available under the `GPL-3 `__ licence. `ARCHDEFS `__, `CUTEst `__ and `SIFDECODE `__ are available under an LGPL (v2.1 or later) licence. Modifications to the SIF format for FitBenchmarking problems ============================================================ In order for FitBenchmarking to access the data, the SIF files must be written using the following conventions. Defining Data ------------- Data should be defined using the format:: RE X RE Y RE E where ```` is the index of the data point, and ````, ````, and ```` are the values attributed to it. Usually, ```` will range from 1 to ````, with that defined as:: IE M If ```` does not start at 1, the following lines can be used to specify the range:: IE MLOWER IE MUPPER Defining Variables ------------------ For the free variables in functions, we use the convention:: IE N This is used to tell FitBenchmarking how many degrees of freedom we need to fit. In some cases variables will be vectors, and the number of degrees of freedom will be greater, most problems use ``NVEC`` as a convention to input the number of vectors. Support for Bounds ================== Parameter ranges can be added to SIF files using the `BOUNDS `_ indicator card. Currently in Fitbenchmarking, problems with parameter ranges can be handled by SciPy, Bumps, Minuit, Mantid, Matlab Optimization Toolbox, DFO, Levmar and RALFit fitting software. Please note that the following Mantid minimizers currently throw an exception when parameter ranges are used: BFGS, Conjugate gradient (Fletcher-Reeves imp.), Conjugate gradient (Polak-Ribiere imp.) and SteepestDescent.