https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&feed=atom&action=history
Biconjugate gradient stabilized method - Revision history
2024-03-29T06:53:36Z
Revision history for this page on the wiki
MediaWiki 1.16.5
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=23944&oldid=prev
Alisha at 17:01, 31 October 2016
2016-10-31T17:01:54Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 17:01, 31 October 2016</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 41:</td>
<td colspan="2" class="diff-lineno">Line 41:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>[[Sample code for BiCGSTAB - Fortran 90]]</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">== '''</ins>[[Sample code for BiCGSTAB - Fortran 90]]<ins class="diffchange diffchange-inline">''' ==</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td></tr>
</table>
Alisha
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=23224&oldid=prev
Alisha: /* Algorithm */
2015-05-18T09:56:30Z
<p><span class="autocomment">Algorithm</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 09:56, 18 May 2015</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 39:</td>
<td colspan="2" class="diff-lineno">Line 39:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: return TRUE <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: return TRUE <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">[[Sample code for BiCGSTAB - Fortran 90]]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td></tr>
</table>
Alisha
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=6137&oldid=prev
Derouler: /* Algorithm */ * -> \cdot
2006-07-28T18:07:34Z
<p><span class="autocomment">Algorithm: </span> * -> \cdot</p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 18:07, 28 July 2006</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 29:</td>
<td colspan="2" class="diff-lineno">Line 29:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: s = r - alpha * v <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: s = r - alpha * v <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<math>\cdot</math>shat = s ) <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<math>\cdot</math>shat = s ) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: t = A <del class="diffchange diffchange-inline">* </del>shat;</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: t = A<ins class="diffchange diffchange-inline"><math>\cdot</math></ins>shat;</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: omega = (t<math>\cdot</math>s) / (t<math>\cdot</math>t) <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: omega = (t<math>\cdot</math>s) / (t<math>\cdot</math>t) <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: x = x + alpha * phat + omega * shat <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: x = x + alpha * phat + omega * shat <br></div></td></tr>
</table>
Derouler
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=6136&oldid=prev
Derouler: /* Reference */
2006-07-28T18:03:29Z
<p><span class="autocomment">Reference</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 18:03, 28 July 2006</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 41:</td>
<td colspan="2" class="diff-lineno">Line 41:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods" <ins class="diffchange diffchange-inline">[http://www.netlib.org/linalg/html_templates/node41.html | http://www.netlib.org/linalg/html_templates/]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><i> Return to [[Numerical methods | Numerical Methods]] </i></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><i> Return to [[Numerical methods | Numerical Methods]] </i></div></td></tr>
</table>
Derouler
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=6135&oldid=prev
Derouler: /* System of equation */ typos corrected
2006-07-28T18:02:03Z
<p><span class="autocomment">System of equation: </span> typos corrected</p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 18:02, 28 July 2006</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 8:</td>
<td colspan="2" class="diff-lineno">Line 8:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>A = coefficient matrix <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>A = coefficient matrix <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>M = the <del class="diffchange diffchange-inline">precondioning </del>matrix <del class="diffchange diffchange-inline">constructued </del>by matrix A <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>M = the <ins class="diffchange diffchange-inline">preconditioning </ins>matrix <ins class="diffchange diffchange-inline">constructed </ins>by matrix A <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td></tr>
</table>
Derouler
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=4771&oldid=prev
Tsaad: replact \bullet by \cdot denoting a dot product
2005-12-13T22:14:27Z
<p>replact \bullet by \cdot denoting a dot product</p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 22:14, 13 December 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 26:</td>
<td colspan="2" class="diff-lineno">Line 26:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: end if <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: end if <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<math>\cdot</math>phat = p ) <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<math>\cdot</math>phat = p ) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: v = A<math>\<del class="diffchange diffchange-inline">bullet</del></math>phat <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: v = A<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>phat <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: alpha = rho_1 / (rtilde<math>\<del class="diffchange diffchange-inline">bullet</del></math>v) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: alpha = rho_1 / (rtilde<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>v) <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: s = r - alpha * v <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: s = r - alpha * v <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<math>\cdot</math>shat = s ) <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<math>\cdot</math>shat = s ) <br></div></td></tr>
</table>
Tsaad
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=4770&oldid=prev
Tsaad at 22:13, 13 December 2005
2005-12-13T22:13:48Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 22:13, 13 December 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 16:</td>
<td colspan="2" class="diff-lineno">Line 16:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: Allocate temerary reals rho_1, rho_2 , alpha, beta, omega <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: Allocate temerary reals rho_1, rho_2 , alpha, beta, omega <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>: r := b - A<math>\<del class="diffchange diffchange-inline">bullet</del></math>x <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>: r := b - A<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>x <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: rtilde = r <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: rtilde = r <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: for i := 1 step 1 until max_itr do</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: for i := 1 step 1 until max_itr do</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: rho_1 = rtilde<math>\<del class="diffchange diffchange-inline">bullet</del></math>r <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: rho_1 = rtilde<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>r <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: if i = 1 then p := r else <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: if i = 1 then p := r else <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: beta = (rho_1/rho_2) * (alpha/omega)<br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: beta = (rho_1/rho_2) * (alpha/omega)<br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: p = r + beta * (p - omega * v) <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: p = r + beta * (p - omega * v) <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: end if <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: end if <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: solve (M<math>\<del class="diffchange diffchange-inline">bullet</del></math>phat = p ) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: solve (M<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>phat = p ) <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: v = A<math>\bullet</math>phat <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: v = A<math>\bullet</math>phat <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: alpha = rho_1 / (rtilde<math>\bullet</math>v) <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: alpha = rho_1 / (rtilde<math>\bullet</math>v) <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: s = r - alpha * v <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: s = r - alpha * v <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: solve (M<math>\<del class="diffchange diffchange-inline">bullet</del></math>shat = s ) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: solve (M<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>shat = s ) <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: t = A * shat;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: t = A * shat;</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: omega = (t<math>\<del class="diffchange diffchange-inline">bullet</del></math>s) / (t<math>\<del class="diffchange diffchange-inline">bullet</del></math>t) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: omega = (t<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>s) / (t<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>t) <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: x = x + alpha * phat + omega * shat <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: x = x + alpha * phat + omega * shat <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: r = s - omega * t <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: r = s - omega * t <br></div></td></tr>
</table>
Tsaad
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=3108&oldid=prev
Zxaar at 06:26, 3 October 2005
2005-10-03T06:26:19Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 06:26, 3 October 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 43:</td>
<td colspan="2" class="diff-lineno">Line 43:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">----</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"><i> Return to [[Numerical methods | Numerical Methods]] </i></ins></div></td></tr>
</table>
Zxaar
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=2123&oldid=prev
Zxaar at 00:43, 15 September 2005
2005-09-15T00:43:24Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 00:43, 15 September 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 40:</td>
<td colspan="2" class="diff-lineno">Line 40:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: return TRUE <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: return TRUE <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">=== Reference ===</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"</ins></div></td></tr>
</table>
Zxaar
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_stabilized_method&diff=2053&oldid=prev
Zxaar at 08:18, 14 September 2005
2005-09-14T08:18:09Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 08:18, 14 September 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 12:</td>
<td colspan="2" class="diff-lineno">Line 12:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">----</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>Allocate temperary vectors p, phat, s, shat, t, v, rtilde <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: </ins>Allocate temperary vectors p, phat, s, shat, t, v, rtilde <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>Allocate temerary reals rho_1, rho_2 , alpha, beta, omega <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: </ins>Allocate temerary reals rho_1, rho_2 , alpha, beta, omega <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>r := b - A<math>\bullet</math>x <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: <br></ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>rtilde = r <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: </ins>r := b - A<math>\bullet</math>x <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>for i := 1 step 1 until max_itr do</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: </ins>rtilde = r <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>rho_1 = rtilde<math>\bullet</math>r <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: <br></ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>if i = 1 then p := r else <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: </ins>for i := 1 step 1 until max_itr do</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>beta = (rho_1/rho_2) * (alpha/omega)<br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>rho_1 = rtilde<math>\bullet</math>r <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>p = r + beta * (p - omega * v) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>if i = 1 then p := r else <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>end if <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">::: </ins>beta = (rho_1/rho_2) * (alpha/omega)<br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>solve (M<math>\bullet</math>phat = p ) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">::: </ins>p = r + beta * (p - omega * v) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>v = A<math>\bullet</math>phat <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>end if <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>alpha = rho_1 / (rtilde<math>\bullet</math>v) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>solve (M<math>\bullet</math>phat = p ) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>s = r - alpha * v <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>v = A<math>\bullet</math>phat <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>solve (M<math>\bullet</math>shat = s ) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>alpha = rho_1 / (rtilde<math>\bullet</math>v) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>t = A * shat;</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>s = r - alpha * v <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>omega = (t<math>\bullet</math>s) / (t<math>\bullet</math>t) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>solve (M<math>\bullet</math>shat = s ) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>x = x + alpha * phat + omega * shat <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>t = A * shat;</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>r = s - omega * t <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>omega = (t<math>\bullet</math>s) / (t<math>\bullet</math>t) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>rho_2 = rho_1 <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>x = x + alpha * phat + omega * shat <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>end (i-loop)</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>r = s - omega * t <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: </ins>rho_2 = rho_1 <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>deallocate all temp memory <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: </ins>end (i-loop)</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del>return TRUE <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: <br> </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: </ins>deallocate all temp memory <br></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: </ins>return TRUE <br></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">----</ins></div></td></tr>
</table>
Zxaar