# Common Solver Options (Keyword Arguments for Solve)

While many algorithms have specific arguments within their constructor, the keyword arguments for `solve`

are common across all of the algorithms in order to give composability. These are also the options taken at `init`

time. The following are the options these algorithms take, along with their defaults.

## General Controls

`alias_A`

: Whether to alias the matrix`A`

or use a copy by default. When true, algorithms like LU-factorization can be faster by reusing the memory via`lu!`

, but care must be taken as the original input will be modified. Default is`false`

.`alias_b`

: Whether to alias the matrix`b`

or use a copy by default. When true, algorithms can write and change`b`

upon usage. Care must be taken as the original input will be modified. Default is`false`

.`verbose`

: Whether to print extra information. Defaults to`false`

.

## Iterative Solver Controls

Error controls are not used by all algorithms. Specifically, direct solves always solve completely. Error controls only apply to iterative solvers.

`abstol`

: The absolute tolerance. Defaults to`√(eps(eltype(A)))`

`reltol`

: The relative tolerance. Defaults to`√(eps(eltype(A)))`

`maxiters`

: The number of iterations allowed. Defaults to`length(prob.b)`

`Pl,Pr`

: The left and right preconditioners respectively. For more information see the Preconditioners page.