be supplied through the
``options`` dict.

Parameters
----------
solver : str
    Type of optimization solver. One of 'minimize', 'minimize_scalar',
    'root', 'root_scalar', 'linprog', or 'quadratic_assignment'.
method : str, optional
    If not given, shows all methods of the specified solver. Otherwise,
    show only the options for the specified method. Valid values
    corresponds to methods' names of respective solver (e.g., 'BFGS' for
    'minimize').
disp : bool, optional
    Whether to print the result rather than returning it.

Returns
-------
text
    Either None (for disp=True) or the text string (disp=False)

Notes
-----
The solver-specific methods are:

`scipy.optimize.minimize`

- :ref:`Nelder-Mead <optimize.minimize-neldermead>`
- :ref:`Powell      <optimize.minimize-powell>`
- :ref:`CG          <optimize.minimize-cg>`
- :ref:`BFGS        <optimize.minimize-bfgs>`
- :ref:`Newton-CG   <optimize.minimize-newtoncg>`
- :ref:`L-BFGS-B    <optimize.minimize-lbfgsb>`
- :ref:`TNC         <optimize.minimize-tnc>`
- :ref:`COBYLA      <optimize.minimize-cobyla>`
- :ref:`COBYQA      <optimize.minimize-cobyqa>`
- :ref:`SLSQP       <optimize.minimize-slsqp>`
- :ref:`dogleg      <optimize.minimize-dogleg>`
- :ref:`trust-ncg   <optimize.minimize-trustncg>`

`scipy.optimize.root`

- :ref:`hybr              <optimize.root-hybr>`
- :ref:`lm                <optimize.root-lm>`
- :ref:`broyden1          <optimize.root-broyden1>`
- :ref:`broyden2          <optimize.root-broyden2>`
- :ref:`anderson          <optimize.root-anderson>`
- :ref:`linearmixing      <optimize.root-linearmixing>`
- :ref:`diagbroyden       <optimize.root-diagbroyden>`
- :ref:`excitingmixing    <optimize.root-excitingmixing>`
- :ref:`krylov            <optimize.root-krylov>`
- :ref:`df-sane           <optimize.root-dfsane>`

`scipy.optimize.minimize_scalar`

- :ref:`brent       <optimize.minimize_scalar-brent>`
- :ref:`golden      <optimize.minimize_scalar-golden>`
- :ref:`bounded     <optimize.minimize_scalar-bounded>`

`scipy.optimize.root_scalar`

- :ref:`bisect  <optimize.root_scalar-bisect>`
- :ref:`brentq  <optimize.root_scalar-brentq>`
- :ref:`brenth  <optimize.root_scalar-brenth>`
- :ref:`ridder  <optimize.root_scalar-ridder>`
- :ref:`toms748 <optimize.root_scalar-toms748>`
- :ref:`newton  <optimize.root_scalar-newton>`
- :ref:`secant  <optimize.root_scalar-secant>`
- :ref:`halley  <optimize.root_scalar-halley>`

`scipy.optimize.linprog`

- :ref:`simplex           <optimize.linprog-simplex>`
- :ref:`interior-point    <optimize.linprog-interior-point>`
- :ref:`revised simplex   <optimize.linprog-revised_simplex>`
- :ref:`highs             <optimize.linprog-highs>`
- :ref:`highs-ds          <optimize.linprog-highs-ds>`
- :ref:`highs-ipm         <optimize.linprog-highs-ipm>`

`scipy.optimize.quadratic_assignment`

- :ref:`faq             <optimize.qap-faq>`
- :ref:`2opt            <optimize.qap-2opt>`

Examples
--------
We can print documentations of a solver in stdout:

>>> from scipy.optimize import show_options
>>> show_options(solver="minimize")
...

Specifying a method is possible:

>>> show_options(solver="minimize", method="Nelder-Mead")
...

We can also get the documentations as a string:

>>> show_options(solver="minimize", method="Nelder-Mead", disp=False)
Minimization of scalar function of one or more variables using the ...

r