<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>SymmLQ (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="SymmLQ (Apache Commons Math 3.3 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SymmLQ.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/linear/SparseRealVector.html" title="class in org.apache.commons.math3.linear"><span class="strong">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/linear/SymmLQ.html" target="_top">Frames</a></li>
<li><a href="SymmLQ.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.linear</div>
<h2 title="Class SymmLQ" class="title">Class SymmLQ</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/commons/math3/linear/IterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">org.apache.commons.math3.linear.IterativeLinearSolver</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">org.apache.commons.math3.linear.PreconditionedIterativeLinearSolver</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.linear.SymmLQ</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">SymmLQ</span>
extends <a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">PreconditionedIterativeLinearSolver</a></pre>
<div class="block"><p>
 Implementation of the SYMMLQ iterative linear solver proposed by <a
 href="#PAIG1975">Paige and Saunders (1975)</a>. This implementation is
 largely based on the FORTRAN code by Pr. Michael A. Saunders, available <a
 href="http://www.stanford.edu/group/SOL/software/symmlq/f77/">here</a>.
 </p>
 <p>
 SYMMLQ is designed to solve the system of linear equations A &middot; x = b
 where A is an n &times; n self-adjoint linear operator (defined as a
 <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear"><code>RealLinearOperator</code></a>), and b is a given vector. The operator A is not
 required to be positive definite. If A is known to be definite, the method of
 conjugate gradients might be preferred, since it will require about the same
 number of iterations as SYMMLQ but slightly less work per iteration.
 </p>
 <p>
 SYMMLQ is designed to solve the system (A - shift &middot; I) &middot; x = b,
 where shift is a specified scalar value. If shift and b are suitably chosen,
 the computed vector x may approximate an (unnormalized) eigenvector of A, as
 in the methods of inverse iteration and/or Rayleigh-quotient iteration.
 Again, the linear operator (A - shift &middot; I) need not be positive
 definite (but <em>must</em> be self-adjoint). The work per iteration is very
 slightly less if shift = 0.
 </p>
 <h3>Preconditioning</h3>
 <p>
 Preconditioning may reduce the number of iterations required. The solver may
 be provided with a positive definite preconditioner
 M = P<sup>T</sup> &middot; P
 that is known to approximate
 (A - shift &middot; I)<sup>-1</sup> in some sense, where matrix-vector
 products of the form M &middot; y = x can be computed efficiently. Then
 SYMMLQ will implicitly solve the system of equations
 P &middot; (A - shift &middot; I) &middot; P<sup>T</sup> &middot;
 x<sub>hat</sub> = P &middot; b, i.e.
 A<sub>hat</sub> &middot; x<sub>hat</sub> = b<sub>hat</sub>,
 where
 A<sub>hat</sub> = P &middot; (A - shift &middot; I) &middot; P<sup>T</sup>,
 b<sub>hat</sub> = P &middot; b,
 and return the solution
 x = P<sup>T</sup> &middot; x<sub>hat</sub>.
 The associated residual is
 r<sub>hat</sub> = b<sub>hat</sub> - A<sub>hat</sub> &middot; x<sub>hat</sub>
                 = P &middot; [b - (A - shift &middot; I) &middot; x]
                 = P &middot; r.
 </p>
 <p>
 In the case of preconditioning, the <a href="../../../../../org/apache/commons/math3/linear/IterativeLinearSolverEvent.html" title="class in org.apache.commons.math3.linear"><code>IterativeLinearSolverEvent</code></a>s that
 this solver fires are such that
 <a href="../../../../../org/apache/commons/math3/linear/IterativeLinearSolverEvent.html#getNormOfResidual()"><code>IterativeLinearSolverEvent.getNormOfResidual()</code></a> returns the norm of
 the <em>preconditioned</em>, updated residual, ||P &middot; r||, not the norm
 of the <em>true</em> residual ||r||.
 </p>
 <h3><a id="stopcrit">Default stopping criterion</a></h3>
 <p>
 A default stopping criterion is implemented. The iterations stop when || rhat
 || &le; &delta; || Ahat || || xhat ||, where xhat is the current estimate of
 the solution of the transformed system, rhat the current estimate of the
 corresponding residual, and &delta; a user-specified tolerance.
 </p>
 <h3>Iteration count</h3>
 <p>
 In the present context, an iteration should be understood as one evaluation
 of the matrix-vector product A &middot; x. The initialization phase therefore
 counts as one iteration. If the user requires checks on the symmetry of A,
 this entails one further matrix-vector product in the initial phase. This
 further product is <em>not</em> accounted for in the iteration count. In
 other words, the number of iterations required to reach convergence will be
 identical, whether checks have been required or not.
 </p>
 <p>
 The present definition of the iteration count differs from that adopted in
 the original FOTRAN code, where the initialization phase was <em>not</em>
 taken into account.
 </p>
 <h3><a id="initguess">Initial guess of the solution</a></h3>
 <p>
 The <code>x</code> parameter in
 <ul>
 <li><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)"><code>solve(RealLinearOperator, RealVector, RealVector)</code></a>,</li>
 <li><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)"><code>solve(RealLinearOperator, RealLinearOperator, RealVector, RealVector)</code></a>},</li>
 <li><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)"><code>solveInPlace(RealLinearOperator, RealVector, RealVector)</code></a>,</li>
 <li><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)"><code>solveInPlace(RealLinearOperator, RealLinearOperator, RealVector, RealVector)</code></a>,</li>
 <li><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector, boolean, double)"><code>solveInPlace(RealLinearOperator, RealLinearOperator, RealVector, RealVector, boolean, double)</code></a>,</li>
 </ul>
 should not be considered as an initial guess, as it is set to zero in the
 initial phase. If x<sub>0</sub> is known to be a good approximation to x, one
 should compute r<sub>0</sub> = b - A &middot; x, solve A &middot; dx = r0,
 and set x = x<sub>0</sub> + dx.
 </p>
 <h3><a id="context">Exception context</a></h3>
 <p>
 Besides standard <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception"><code>DimensionMismatchException</code></a>, this class might throw
 <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear"><code>NonSelfAdjointOperatorException</code></a> if the linear operator or the
 preconditioner are not symmetric. In this case, the <a href="../../../../../org/apache/commons/math3/exception/util/ExceptionContext.html" title="class in org.apache.commons.math3.exception.util"><code>ExceptionContext</code></a>
 provides more information
 <ul>
 <li>key <code>"operator"</code> points to the offending linear operator, say L,</li>
 <li>key <code>"vector1"</code> points to the first offending vector, say x,
 <li>key <code>"vector2"</code> points to the second offending vector, say y, such
 that x<sup>T</sup> &middot; L &middot; y &ne; y<sup>T</sup> &middot; L
 &middot; x (within a certain accuracy).</li>
 </ul>
 </p>
 <p>
 <a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear"><code>NonPositiveDefiniteOperatorException</code></a> might also be thrown in case the
 preconditioner is not positive definite. The relevant keys to the
 <a href="../../../../../org/apache/commons/math3/exception/util/ExceptionContext.html" title="class in org.apache.commons.math3.exception.util"><code>ExceptionContext</code></a> are
 <ul>
 <li>key <code>"operator"</code>, which points to the offending linear operator,
 say L,</li>
 <li>key <code>"vector"</code>, which points to the offending vector, say x, such
 that x<sup>T</sup> &middot; L &middot; x < 0.</li>
 </ul>
 </p>
 <h3>References</h3>
 <dl>
 <dt><a id="PAIG1975">Paige and Saunders (1975)</a></dt>
 <dd>C. C. Paige and M. A. Saunders, <a
 href="http://www.stanford.edu/group/SOL/software/symmlq/PS75.pdf"><em>
 Solution of Sparse Indefinite Systems of Linear Equations</em></a>, SIAM
 Journal on Numerical Analysis 12(4): 617-629, 1975</dd>
 </dl></div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>3.0</dd>
<dt><span class="strong">Version:</span></dt>
  <dd>$Id: SymmLQ.java 1505938 2013-07-23 08:50:10Z luc $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#SymmLQ(int, double, boolean)">SymmLQ</a></strong>(int&nbsp;maxIterations,
      double&nbsp;delta,
      boolean&nbsp;check)</code>
<div class="block">Creates a new instance of this class, with <a href="#stopcrit">default
 stopping criterion</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#SymmLQ(org.apache.commons.math3.util.IterationManager, double, boolean)">SymmLQ</a></strong>(<a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util">IterationManager</a>&nbsp;manager,
      double&nbsp;delta,
      boolean&nbsp;check)</code>
<div class="block">Creates a new instance of this class, with <a href="#stopcrit">default
 stopping criterion</a> and custom iteration manager.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()">getCheck</a></strong>()</code>
<div class="block">Returns <code>true</code> if symmetry of the matrix, and symmetry as well as
 positive definiteness of the preconditioner should be checked.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector)">solve</a></strong>(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
     <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
     <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b)</code>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, boolean, double)">solve</a></strong>(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
     <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
     <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
     boolean&nbsp;goodb,
     double&nbsp;shift)</code>
<div class="block">Returns an estimate of the solution to the linear system (A - shift
 &middot; I) &middot; x = b.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">solve</a></strong>(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
     <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
     <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
     <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x)</code>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector)">solve</a></strong>(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
     <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b)</code>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, boolean, double)">solve</a></strong>(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
     <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
     boolean&nbsp;goodb,
     double&nbsp;shift)</code>
<div class="block">Returns the solution to the system (A - shift &middot; I) &middot; x = b.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">solve</a></strong>(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
     <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
     <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x)</code>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">solveInPlace</a></strong>(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
            <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
            <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
            <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x)</code>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector, boolean, double)">solveInPlace</a></strong>(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
            <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
            <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
            <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x,
            boolean&nbsp;goodb,
            double&nbsp;shift)</code>
<div class="block">Returns an estimate of the solution to the linear system (A - shift
 &middot; I) &middot; x = b.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">solveInPlace</a></strong>(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
            <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
            <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x)</code>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.math3.linear.PreconditionedIterativeLinearSolver">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.commons.math3.linear.<a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">PreconditionedIterativeLinearSolver</a></h3>
<code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html#checkParameters(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">checkParameters</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.math3.linear.IterativeLinearSolver">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.commons.math3.linear.<a href="../../../../../org/apache/commons/math3/linear/IterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">IterativeLinearSolver</a></h3>
<code><a href="../../../../../org/apache/commons/math3/linear/IterativeLinearSolver.html#checkParameters(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">checkParameters</a>, <a href="../../../../../org/apache/commons/math3/linear/IterativeLinearSolver.html#getIterationManager()">getIterationManager</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="SymmLQ(int, double, boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SymmLQ</h4>
<pre>public&nbsp;SymmLQ(int&nbsp;maxIterations,
      double&nbsp;delta,
      boolean&nbsp;check)</pre>
<div class="block">Creates a new instance of this class, with <a href="#stopcrit">default
 stopping criterion</a>. Note that setting <code>check</code> to <code>true</code>
 entails an extra matrix-vector product in the initial phase.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxIterations</code> - the maximum number of iterations</dd><dd><code>delta</code> - the &delta; parameter for the default stopping criterion</dd><dd><code>check</code> - <code>true</code> if self-adjointedness of both matrix and
 preconditioner should be checked</dd></dl>
</li>
</ul>
<a name="SymmLQ(org.apache.commons.math3.util.IterationManager, double, boolean)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SymmLQ</h4>
<pre>public&nbsp;SymmLQ(<a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util">IterationManager</a>&nbsp;manager,
      double&nbsp;delta,
      boolean&nbsp;check)</pre>
<div class="block">Creates a new instance of this class, with <a href="#stopcrit">default
 stopping criterion</a> and custom iteration manager. Note that setting
 <code>check</code> to <code>true</code> entails an extra matrix-vector product in
 the initial phase.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>manager</code> - the custom iteration manager</dd><dd><code>delta</code> - the &delta; parameter for the default stopping criterion</dd><dd><code>check</code> - <code>true</code> if self-adjointedness of both matrix and
 preconditioner should be checked</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getCheck()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCheck</h4>
<pre>public final&nbsp;boolean&nbsp;getCheck()</pre>
<div class="block">Returns <code>true</code> if symmetry of the matrix, and symmetry as well as
 positive definiteness of the preconditioner should be checked.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the tests are to be performed</dd></dl>
</li>
</ul>
<a name="solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solve</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;solve(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
               <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
               <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b)
                 throws <a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></pre>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector)">solve</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">PreconditionedIterativeLinearSolver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - the linear operator A of the system</dd><dd><code>m</code> - the preconditioner, M (can be <code>null</code>)</dd><dd><code>b</code> - the right-hand side vector</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector containing the solution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a></code> - if <a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()"><code>getCheck()</code></a> is
 <code>true</code>, and <code>a</code> or <code>m</code> is not self-adjoint</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a></code> - if <code>m</code> is not
 positive definite</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></code> - if <code>a</code> is ill-conditioned</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if one of the parameters is <code>null</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a></code> - if <code>a</code> or <code>m</code> is not
 square</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if <code>m</code> or <code>b</code> have
 dimensions inconsistent with <code>a</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - at exhaustion of the iteration count,
 unless a custom
 <a href="../../../../../org/apache/commons/math3/util/Incrementor.MaxCountExceededCallback.html" title="interface in org.apache.commons.math3.util"><code>callback</code></a>
 has been set at construction of the <a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util"><code>IterationManager</code></a></dd></dl>
</li>
</ul>
<a name="solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, boolean, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solve</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;solve(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
               <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
               <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
               boolean&nbsp;goodb,
               double&nbsp;shift)
                 throws <a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></pre>
<div class="block">Returns an estimate of the solution to the linear system (A - shift
 &middot; I) &middot; x = b.
 <p>
 If the solution x is expected to contain a large multiple of <code>b</code>
 (as in Rayleigh-quotient iteration), then better precision may be
 achieved with <code>goodb</code> set to <code>true</code>; this however requires an
 extra call to the preconditioner.
 </p>
 <p>
 <code>shift</code> should be zero if the system A &middot; x = b is to be
 solved. Otherwise, it could be an approximation to an eigenvalue of A,
 such as the Rayleigh quotient b<sup>T</sup> &middot; A &middot; b /
 (b<sup>T</sup> &middot; b) corresponding to the vector b. If b is
 sufficiently like an eigenvector corresponding to an eigenvalue near
 shift, then the computed x may have very large components. When
 normalized, x may be closer to an eigenvector than b.
 </p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - the linear operator A of the system</dd><dd><code>m</code> - the preconditioner, M (can be <code>null</code>)</dd><dd><code>b</code> - the right-hand side vector</dd><dd><code>goodb</code> - usually <code>false</code>, except if <code>x</code> is expected to
 contain a large multiple of <code>b</code></dd><dd><code>shift</code> - the amount to be subtracted to all diagonal elements of A</dd>
<dt><span class="strong">Returns:</span></dt><dd>a reference to <code>x</code> (shallow copy)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if one of the parameters is <code>null</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a></code> - if <code>a</code> or <code>m</code> is not square</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if <code>m</code> or <code>b</code> have dimensions
 inconsistent with <code>a</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - at exhaustion of the iteration count,
 unless a custom
 <a href="../../../../../org/apache/commons/math3/util/Incrementor.MaxCountExceededCallback.html" title="interface in org.apache.commons.math3.util"><code>callback</code></a>
 has been set at construction of the <a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util"><code>IterationManager</code></a></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a></code> - if <a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()"><code>getCheck()</code></a> is
 <code>true</code>, and <code>a</code> or <code>m</code> is not self-adjoint</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a></code> - if <code>m</code> is not
 positive definite</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></code> - if <code>a</code> is ill-conditioned</dd></dl>
</li>
</ul>
<a name="solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solve</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;solve(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
               <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
               <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
               <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x)
                 throws <a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">solve</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">PreconditionedIterativeLinearSolver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - not meaningful in this implementation; should not be considered
 as an initial guess (<a href="#initguess">more</a>)</dd><dd><code>a</code> - the linear operator A of the system</dd><dd><code>m</code> - the preconditioner, M (can be <code>null</code>)</dd><dd><code>b</code> - the right-hand side vector</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector containing the solution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a></code> - if <a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()"><code>getCheck()</code></a> is
 <code>true</code>, and <code>a</code> or <code>m</code> is not self-adjoint</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a></code> - if <code>m</code> is not positive
 definite</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></code> - if <code>a</code> is ill-conditioned</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if one of the parameters is <code>null</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a></code> - if <code>a</code> or <code>m</code> is not
 square</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if <code>m</code>, <code>b</code> or
 <code>x0</code> have dimensions inconsistent with <code>a</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - at exhaustion of the iteration count,
 unless a custom
 <a href="../../../../../org/apache/commons/math3/util/Incrementor.MaxCountExceededCallback.html" title="interface in org.apache.commons.math3.util"><code>callback</code></a>
 has been set at construction of the <a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util"><code>IterationManager</code></a></dd></dl>
</li>
</ul>
<a name="solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solve</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;solve(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
               <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b)
                 throws <a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector)">solve</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">PreconditionedIterativeLinearSolver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - the linear operator A of the system</dd><dd><code>b</code> - the right-hand side vector</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector containing the solution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a></code> - if <a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()"><code>getCheck()</code></a> is
 <code>true</code>, and <code>a</code> is not self-adjoint</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></code> - if <code>a</code> is ill-conditioned</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if one of the parameters is <code>null</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a></code> - if <code>a</code> is not square</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if <code>b</code> has dimensions
 inconsistent with <code>a</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - at exhaustion of the iteration count,
 unless a custom
 <a href="../../../../../org/apache/commons/math3/util/Incrementor.MaxCountExceededCallback.html" title="interface in org.apache.commons.math3.util"><code>callback</code></a>
 has been set at construction of the <a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util"><code>IterationManager</code></a></dd></dl>
</li>
</ul>
<a name="solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, boolean, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solve</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;solve(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
               <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
               boolean&nbsp;goodb,
               double&nbsp;shift)
                 throws <a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Returns the solution to the system (A - shift &middot; I) &middot; x = b.
 <p>
 If the solution x is expected to contain a large multiple of <code>b</code>
 (as in Rayleigh-quotient iteration), then better precision may be
 achieved with <code>goodb</code> set to <code>true</code>.
 </p>
 <p>
 <code>shift</code> should be zero if the system A &middot; x = b is to be
 solved. Otherwise, it could be an approximation to an eigenvalue of A,
 such as the Rayleigh quotient b<sup>T</sup> &middot; A &middot; b /
 (b<sup>T</sup> &middot; b) corresponding to the vector b. If b is
 sufficiently like an eigenvector corresponding to an eigenvalue near
 shift, then the computed x may have very large components. When
 normalized, x may be closer to an eigenvector than b.
 </p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - the linear operator A of the system</dd><dd><code>b</code> - the right-hand side vector</dd><dd><code>goodb</code> - usually <code>false</code>, except if <code>x</code> is expected to
 contain a large multiple of <code>b</code></dd><dd><code>shift</code> - the amount to be subtracted to all diagonal elements of A</dd>
<dt><span class="strong">Returns:</span></dt><dd>a reference to <code>x</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if one of the parameters is <code>null</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a></code> - if <code>a</code> is not square</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if <code>b</code> has dimensions
 inconsistent with <code>a</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - at exhaustion of the iteration count,
 unless a custom
 <a href="../../../../../org/apache/commons/math3/util/Incrementor.MaxCountExceededCallback.html" title="interface in org.apache.commons.math3.util"><code>callback</code></a>
 has been set at construction of the <a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util"><code>IterationManager</code></a></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a></code> - if <a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()"><code>getCheck()</code></a> is
 <code>true</code>, and <code>a</code> is not self-adjoint</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></code> - if <code>a</code> is ill-conditioned</dd></dl>
</li>
</ul>
<a name="solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solve</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;solve(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
               <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
               <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x)
                 throws <a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a>,
                        <a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html#solve(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">solve</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">PreconditionedIterativeLinearSolver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - not meaningful in this implementation; should not be considered
 as an initial guess (<a href="#initguess">more</a>)</dd><dd><code>a</code> - the linear operator A of the system</dd><dd><code>b</code> - the right-hand side vector</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector containing the solution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a></code> - if <a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()"><code>getCheck()</code></a> is
 <code>true</code>, and <code>a</code> is not self-adjoint</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></code> - if <code>a</code> is ill-conditioned</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if one of the parameters is <code>null</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a></code> - if <code>a</code> is not square</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if <code>b</code> or <code>x0</code> have
 dimensions inconsistent with <code>a</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - at exhaustion of the iteration count,
 unless a custom
 <a href="../../../../../org/apache/commons/math3/util/Incrementor.MaxCountExceededCallback.html" title="interface in org.apache.commons.math3.util"><code>callback</code></a>
 has been set at construction of the <a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util"><code>IterationManager</code></a></dd></dl>
</li>
</ul>
<a name="solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solveInPlace</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;solveInPlace(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
                      <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
                      <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
                      <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x)
                        throws <a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b. The solution is computed in-place (initial guess is modified).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html#solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">solveInPlace</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">PreconditionedIterativeLinearSolver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - the vector to be updated with the solution; <code>x</code> should
 not be considered as an initial guess (<a href="#initguess">more</a>)</dd><dd><code>a</code> - the linear operator A of the system</dd><dd><code>m</code> - the preconditioner, M (can be <code>null</code>)</dd><dd><code>b</code> - the right-hand side vector</dd>
<dt><span class="strong">Returns:</span></dt><dd>a reference to <code>x0</code> (shallow copy) updated with the
 solution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a></code> - if <a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()"><code>getCheck()</code></a> is
 <code>true</code>, and <code>a</code> or <code>m</code> is not self-adjoint</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a></code> - if <code>m</code> is not
 positive definite</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></code> - if <code>a</code> is ill-conditioned</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if one of the parameters is <code>null</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a></code> - if <code>a</code> or <code>m</code> is not
 square</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if <code>m</code>, <code>b</code> or
 <code>x0</code> have dimensions inconsistent with <code>a</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - at exhaustion of the iteration count,
 unless a custom
 <a href="../../../../../org/apache/commons/math3/util/Incrementor.MaxCountExceededCallback.html" title="interface in org.apache.commons.math3.util"><code>callback</code></a>
 has been set at construction of the <a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util"><code>IterationManager</code></a></dd></dl>
</li>
</ul>
<a name="solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector, boolean, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solveInPlace</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;solveInPlace(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
                      <a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;m,
                      <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
                      <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x,
                      boolean&nbsp;goodb,
                      double&nbsp;shift)
                        throws <a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Returns an estimate of the solution to the linear system (A - shift
 &middot; I) &middot; x = b. The solution is computed in-place.
 <p>
 If the solution x is expected to contain a large multiple of <code>b</code>
 (as in Rayleigh-quotient iteration), then better precision may be
 achieved with <code>goodb</code> set to <code>true</code>; this however requires an
 extra call to the preconditioner.
 </p>
 <p>
 <code>shift</code> should be zero if the system A &middot; x = b is to be
 solved. Otherwise, it could be an approximation to an eigenvalue of A,
 such as the Rayleigh quotient b<sup>T</sup> &middot; A &middot; b /
 (b<sup>T</sup> &middot; b) corresponding to the vector b. If b is
 sufficiently like an eigenvector corresponding to an eigenvalue near
 shift, then the computed x may have very large components. When
 normalized, x may be closer to an eigenvector than b.
 </p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - the linear operator A of the system</dd><dd><code>m</code> - the preconditioner, M (can be <code>null</code>)</dd><dd><code>b</code> - the right-hand side vector</dd><dd><code>x</code> - the vector to be updated with the solution; <code>x</code> should
 not be considered as an initial guess (<a href="#initguess">more</a>)</dd><dd><code>goodb</code> - usually <code>false</code>, except if <code>x</code> is expected to
 contain a large multiple of <code>b</code></dd><dd><code>shift</code> - the amount to be subtracted to all diagonal elements of A</dd>
<dt><span class="strong">Returns:</span></dt><dd>a reference to <code>x</code> (shallow copy).</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if one of the parameters is <code>null</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a></code> - if <code>a</code> or <code>m</code> is not square</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if <code>m</code>, <code>b</code> or <code>x</code>
 have dimensions inconsistent with <code>a</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - at exhaustion of the iteration count,
 unless a custom
 <a href="../../../../../org/apache/commons/math3/util/Incrementor.MaxCountExceededCallback.html" title="interface in org.apache.commons.math3.util"><code>callback</code></a>
 has been set at construction of the <a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util"><code>IterationManager</code></a></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a></code> - if <a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()"><code>getCheck()</code></a> is
 <code>true</code>, and <code>a</code> or <code>m</code> is not self-adjoint</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonPositiveDefiniteOperatorException.html" title="class in org.apache.commons.math3.linear">NonPositiveDefiniteOperatorException</a></code> - if <code>m</code> is not positive
 definite</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></code> - if <code>a</code> is ill-conditioned</dd></dl>
</li>
</ul>
<a name="solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>solveInPlace</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;solveInPlace(<a href="../../../../../org/apache/commons/math3/linear/RealLinearOperator.html" title="class in org.apache.commons.math3.linear">RealLinearOperator</a>&nbsp;a,
                      <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;b,
                      <a href="../../../../../org/apache/commons/math3/linear/RealVector.html" title="class in org.apache.commons.math3.linear">RealVector</a>&nbsp;x)
                        throws <a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a>,
                               <a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Returns an estimate of the solution to the linear system A &middot; x =
 b. The solution is computed in-place (initial guess is modified).</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html#solveInPlace(org.apache.commons.math3.linear.RealLinearOperator, org.apache.commons.math3.linear.RealVector, org.apache.commons.math3.linear.RealVector)">solveInPlace</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/commons/math3/linear/PreconditionedIterativeLinearSolver.html" title="class in org.apache.commons.math3.linear">PreconditionedIterativeLinearSolver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - the vector to be updated with the solution; <code>x</code> should
 not be considered as an initial guess (<a href="#initguess">more</a>)</dd><dd><code>a</code> - the linear operator A of the system</dd><dd><code>b</code> - the right-hand side vector</dd>
<dt><span class="strong">Returns:</span></dt><dd>a reference to <code>x0</code> (shallow copy) updated with the
 solution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSelfAdjointOperatorException.html" title="class in org.apache.commons.math3.linear">NonSelfAdjointOperatorException</a></code> - if <a href="../../../../../org/apache/commons/math3/linear/SymmLQ.html#getCheck()"><code>getCheck()</code></a> is
 <code>true</code>, and <code>a</code> is not self-adjoint</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/IllConditionedOperatorException.html" title="class in org.apache.commons.math3.linear">IllConditionedOperatorException</a></code> - if <code>a</code> is ill-conditioned</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if one of the parameters is <code>null</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/linear/NonSquareOperatorException.html" title="class in org.apache.commons.math3.linear">NonSquareOperatorException</a></code> - if <code>a</code> is not square</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if <code>b</code> or <code>x0</code> have
 dimensions inconsistent with <code>a</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - at exhaustion of the iteration count,
 unless a custom
 <a href="../../../../../org/apache/commons/math3/util/Incrementor.MaxCountExceededCallback.html" title="interface in org.apache.commons.math3.util"><code>callback</code></a>
 has been set at construction of the <a href="../../../../../org/apache/commons/math3/util/IterationManager.html" title="class in org.apache.commons.math3.util"><code>IterationManager</code></a></dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SymmLQ.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/linear/SparseRealVector.html" title="class in org.apache.commons.math3.linear"><span class="strong">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/linear/SymmLQ.html" target="_top">Frames</a></li>
<li><a href="SymmLQ.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
