M1QN3 / std


M1QN3 is a quasi-Newtonian optimization algorithm originally developed at INRIA to minimize functions with a very high number of variables. The algorithm is described in Gilbert and Lemaréchal, 1989. The original code was written in Fortran; F. Chevallier translated it to Python in 2005.

M1QN3 is distributed under the GNU General Public License and listed in the Free Software Directory.

Yaml arguments

The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:

Optional arguments

niter: (optional)

maximum number of iterations

accepted type: <class ‘int’>

nsim: (optional)

maximum number of simulations

accepted type: <class ‘int’>

maxiter: (optional): 1

maximum number of iterations; if one of the two previousis missing, niter is set to maxiter and nsim to 2 times maxiter

accepted type: <class ‘int’>

dxmin: (optional): 1e-20

absolute precision on x; optional

accepted type: <class ‘float’>

df1: (optional): 0.01

expected decrease for f

accepted type: <class ‘float’>

epsg: (optional): 1e-20

relative precision on the gradient

accepted type: <class ‘float’>

mode: (optional): 0

mode more M1QN3; for expert users only; see M1QN3 documentation for further details

accepted type: <class ‘int’>

nupdates: (optional): 5

number of updates; for experts only

accepted type: <class ‘int’>


The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version







Yaml template

Please find below a template for a Yaml configuration:

 2  plugin:
 3    name: M1QN3
 4    version: std
 5    type: minimizer
 8  # Optional arguments
 9  niter: XXXXX
10  nsim: XXXXX
11  maxiter: XXXXX
12  dxmin: XXXXX
13  df1: XXXXX
14  epsg: XXXXX
15  mode: XXXXX
16  nupdates: XXXXX