<?xml-stylesheet type="text/xsl" href="../styles/pmathml.xsl"?>
<!-- saved from url=(0014)about:internet -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dsi="http://www.w3.org/1999/xlink" xmlns:m="http://www.w3.org/1998/Math/MathML" xml:space="preserve"><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"/><title>F08JYF (ZSTEGR) : NAG Library, Mark 23</title><link rel="stylesheet" href="../styles/libdoc.css" type="text/css"/><script type="text/javascript">
   function showLevel(_levelId){
    var thisLevel = document.getElementById(_levelId);
    var thisplus = document.getElementById( _levelId.concat('plus'));
    var thisminus = document.getElementById( _levelId.concat('minus'));
    if(thisLevel.style.display != "block"){
     thisLevel.style.display = "block";
     thisplus.style.display = "none";
     thisminus.style.display = "inline";
     }
    else{
     thisLevel.style.display = "none";
     thisminus.style.display = "none";
     thisplus.style.display = "inline";
     }
    }
  </script></head><body><hr/><div><a class="rout" href="../../pdf/F08/f08jyf.pdf">F08JYF (ZSTEGR) (PDF version)</a></div><div><a class="chap" href="f08conts.xml">F08 Chapter Contents</a></div><div><a class="chapint" href="f08intro.xml">F08 Chapter Introduction</a></div>
<div><a class="htmltoc" href="../FRONTMATTER/manconts.xml">NAG Library Manual</a></div><hr/><h1 class="libdoc">NAG Library Routine Document<br/><br/>F08JYF (ZSTEGR)</h1><div class="paramtext"><div class="header"><b>Note:</b>&#160; before using this routine, please read the Users' Note for your implementation to check the interpretation of <span class="bitalic">bold italicised</span> terms and other implementation-dependent details.</div></div> 
<div class="htmltoc">
<h2 class="htmltoc"><span class="htmltochead" onclick="showLevel('htmltoc');"><span class="htmltocplus" id="htmltocplus">+</span><span class="htmltocminus" id="htmltocminus">&#8722;</span></span>&#160;Contents</h2>
<div class="htmltocitem" id="htmltoc">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#purpose">1&#160;&#160;<b>Purpose</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#specification">2&#160;&#160;<b>Specification</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#description">3&#160;&#160;<b>Description</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#references">4&#160;&#160;<b>References</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#parameters">5&#160;&#160;<b>Parameters</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#errors">6&#160;&#160;<b>Error Indicators and Warnings</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#accuracy">7&#160;&#160;<b>Accuracy</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#fcomments">8&#160;&#160;<b>Further Comments</b></a>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocexample');"><span class="htmltocplus" id="tocexampleplus">+</span><span class="htmltocminus" id="tocexampleminus">&#8722;</span></span>
<a class="htmltoc" href="#example">9&#160;&#160;<b>Example</b></a>
<div class="htmltocitem" id="tocexample">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#examtext">9.1&#160;&#160;<b>Program Text</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#examdata">9.2&#160;&#160;<b>Program Data</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#examresults">9.3&#160;&#160;<b>Program Results</b></a>
</div>
</div>
</div>
</div>
</div><h2 class="standard"><a class="sec" name="purpose" id="purpose"/>1&#160;&#160;Purpose</h2>
<div class="paramtext">F08JYF (ZSTEGR) computes all the eigenvalues and, optionally, all the eigenvectors of a real <m:math><m:mi>n</m:mi></m:math>&#160;by <m:math><m:mi>n</m:mi></m:math>&#160;symmetric tridiagonal matrix.</div><h2 class="standard"><a class="sec" name="specification" id="specification"/>2&#160;&#160;Specification</h2><table class="fspec"><tr><td class="tdfspec1">
<div class="left-tablediv"><table class="fspec1"><tbody>
<tr>
<td class="tdfspec1" valign="top" align="left">SUBROUTINE&#160;F08JYF&#160;(</td>
<td class="tdfspec2" valign="top" align="left"><a class="arg" href="#JOBZ">JOBZ</a>, <a class="arg" href="#RANGE">RANGE</a>, <a class="arg" href="#N">N</a>, <a class="arg" href="#D">D</a>, <a class="arg" href="#E">E</a>, <a class="arg" href="#VL">VL</a>, <a class="arg" href="#VU">VU</a>, <a class="arg" href="#IL">IL</a>, <a class="arg" href="#IU">IU</a>, <a class="arg" href="#ABSTOL">ABSTOL</a>, <a class="arg" href="#M">M</a>, <a class="arg" href="#W">W</a>, <a class="arg" href="#Z">Z</a>, <a class="arg" href="#LDZ">LDZ</a>, <a class="arg" href="#ISUPPZ">ISUPPZ</a>, <a class="arg" href="#WORK">WORK</a>, <a class="arg" href="#LWORK">LWORK</a>, <a class="arg" href="#IWORK">IWORK</a>, <a class="arg" href="#LIWORK">LIWORK</a>, <a class="arg" href="#INFO">INFO</a>)</td>
</tr>
</tbody>
</table></div>
<div class="left-tablediv"><table class="fspec3"><tbody>
<tr>
<td class="tdfspec1" valign="top" align="left">INTEGER&#160;</td>
<td class="tdfspec2" valign="top" align="left">N, IL, IU, M, LDZ, ISUPPZ(*), LWORK, IWORK(max(1,LIWORK)), LIWORK, INFO</td>
</tr>
<tr>
<td class="tdfspec1" valign="top" align="left">REAL&#160;(KIND=nag_wp)&#160;</td>
<td class="tdfspec2" valign="top" align="left">D(*), E(*), VL, VU, ABSTOL, W(*), WORK(max(1,LWORK))</td>
</tr>
<tr>
<td class="tdfspec1" valign="top" align="left">COMPLEX&#160;(KIND=nag_wp)&#160;</td>
<td class="tdfspec2" valign="top" align="left">Z(LDZ,*)</td>
</tr><tr>
<td class="tdfspec1" valign="top" align="left">CHARACTER(1)&#160;</td>
<td class="tdfspec2" valign="top" align="left">JOBZ, RANGE</td></tr></tbody>
</table></div>
</td></tr></table>
<div class="paramtext">The routine may be called by its 
    LAPACK
    name <span class="bitalic">zstegr</span>.</div><h2 class="standard"><a class="sec" name="description" id="description"/>3&#160;&#160;Description</h2>
<div class="paramtext">F08JYF (ZSTEGR) computes all the eigenvalues and, optionally, the eigenvectors, of a real symmetric tridiagonal matrix <m:math><m:mi>T</m:mi></m:math>.  That is, the routine computes the spectral factorization of <m:math><m:mi>T</m:mi></m:math>&#160;given by

<div class="formula"><table class="formula"><tr><td class="formula"><m:math display="block">
 <m:mi>T</m:mi>
 <m:mo>=</m:mo>
 <m:mi>Z</m:mi><m:mi>&#923;</m:mi><m:msup><m:mi>Z</m:mi><m:mi mathvariant="normal">T</m:mi></m:msup>
 <m:mtext>,</m:mtext>
</m:math></td><td class="formula2"/></tr></table></div>

where <m:math><m:mi>&#923;</m:mi></m:math>&#160;is a diagonal matrix whose diagonal elements are the eigenvalues, <m:math><m:msub><m:mi>&#955;</m:mi><m:mi>i</m:mi></m:msub></m:math>, of <m:math><m:mi>T</m:mi></m:math>&#160;and <m:math><m:mi>Z</m:mi></m:math>&#160;is an orthogonal matrix whose columns are the eigenvectors, <m:math><m:msub><m:mi>z</m:mi><m:mi>i</m:mi></m:msub></m:math>, of <m:math><m:mi>T</m:mi></m:math>.  Thus

<div class="formula"><table class="formula"><tr><td class="formula"><m:math display="block">
 <m:mi>T</m:mi><m:msub><m:mi>z</m:mi><m:mi>i</m:mi></m:msub><m:mo>=</m:mo>
 <m:msub><m:mi>&#955;</m:mi><m:mi>i</m:mi></m:msub>
 <m:msub><m:mi>z</m:mi><m:mi>i</m:mi></m:msub>
 <m:mtext>, &#8195;</m:mtext>
 <m:mi>i</m:mi>
 <m:mo>=</m:mo>
 <m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>n</m:mi>
 <m:mtext>.</m:mtext>
</m:math></td><td class="formula2"/></tr></table></div></div><div class="paramtext">This routine uses the <b>dqds</b> and the <b>Relatively Robust Representation</b> algorithms to compute the eigenvalues and eigenvectors respectively; see for example <a class="ref" href="#ref756">Parlett and Dhillon (2000)</a> and <a class="ref" href="#ref760">Dhillon and Parlett (2004)</a> for further details.  F08JYF (ZSTEGR) can usually compute all the eigenvalues and eigenvectors in <m:math><m:mi>O</m:mi><m:mfenced separators=""><m:msup><m:mi>n</m:mi><m:mn>2</m:mn></m:msup></m:mfenced></m:math>&#160;floating point operations and so, for large matrices, is often considerably faster than the other symmetric tridiagonal routines in this chapter when all the eigenvectors are required, particularly so compared to those routines that are based on the <m:math><m:mi>Q</m:mi><m:mi>R</m:mi></m:math>&#160;algorithm.</div><div class="paramtext">In the future this routine may be extended to allow for the computation of selected eigenvalues and eigenvectors.</div><h2 class="standard"><a class="sec" name="references" id="references"/>4&#160;&#160;References</h2><div class="paramtext"><a name="ref252" id="ref252"/>Anderson E, Bai Z, Bischof C, Blackford S, Demmel J, Dongarra J J, Du Croz J J, Greenbaum A, Hammarling S, McKenney A and Sorensen D (1999)  <i>LAPACK Users' Guide</i> (3rd Edition) SIAM, Philadelphia <a class="url" href="http://www.netlib.org/lapack/lug">http://www.netlib.org/lapack/lug</a></div>
<div class="paramtext"><a name="ref451" id="ref451"/>Barlow J and Demmel J W (1990)  Computing accurate eigensystems of scaled diagonally dominant matrices <i>SIAM J. Numer. Anal.</i> <b>27</b> 762&#8211;791 </div>
<div class="paramtext"><a name="ref760" id="ref760"/>Dhillon I S and Parlett B N (2004)  Orthogonal eigenvectors and relative gaps. <i>SIAM J. Appl. Math. </i> <b>25</b> 858&#8211;899 </div>
<div class="paramtext"><a name="ref756" id="ref756"/>Parlett B N and Dhillon I S (2000)  Relatively robust representations of symmetric tridiagonals <i>Linear Algebra Appl.</i> <b>309</b> 121&#8211;151 </div><h2 class="standard"><a class="sec" name="parameters" id="parameters"/>5&#160;&#160;Parameters</h2>
<dl><dt class="paramhead"><a name="JOBZ" id="JOBZ"/>1: &#160;&#160;&#8194; JOBZ &#8211; CHARACTER(1)<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: indicates whether eigenvectors are computed.

<dl>
<dt class="paramval"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#JOBZ"><m:mi mathcolor="#EE0000" mathvariant="bold">JOBZ</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'N'</m:mtext></m:math></dt>
<dd>Only eigenvalues are computed.</dd>
<dt class="paramval"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#JOBZ"><m:mi mathcolor="#EE0000" mathvariant="bold">JOBZ</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'V'</m:mtext></m:math></dt>
<dd>Eigenvalues and eigenvectors are computed.</dd></dl>
</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#JOBZ"><m:mi mathcolor="#EE0000" mathvariant="bold">JOBZ</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'N'</m:mtext></m:math>&#160;or <m:math><m:mtext>'V'</m:mtext></m:math>.
</div>
</dd><dt class="paramhead"><a name="RANGE" id="RANGE"/>2: &#160;&#160;&#8194; RANGE &#8211; CHARACTER(1)<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: indicates which eigenvalues should be returned.

<dl>
<dt class="paramval"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'A'</m:mtext></m:math></dt>
<dd>All eigenvalues will be found.</dd>
<dt class="paramval"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'V'</m:mtext></m:math></dt>
<dd>All eigenvalues in the half-open interval <m:math><m:mfenced separators="" open="(" close="]"><m:maction actiontype="link" dsi:type="simple" dsi:href="#VL"><m:mi mathcolor="#EE0000" mathvariant="bold">VL</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#VU"><m:mi mathcolor="#EE0000" mathvariant="bold">VU</m:mi></m:maction></m:mfenced></m:math>&#160;will be found.</dd>
<dt class="paramval"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'I'</m:mtext></m:math></dt>
<dd>The <a class="arg" href="#IL">IL</a>th through <a class="arg" href="#IU">IU</a>th eigenvectors will be found.</dd></dl>
</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'A'</m:mtext></m:math>, <m:math><m:mtext>'V'</m:mtext></m:math>&#160;or <m:math><m:mtext>'I'</m:mtext></m:math>.
</div>
</dd><dt class="paramhead"><a name="N" id="N"/>3: &#160;&#160;&#8194; N &#8211; INTEGER<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: <m:math><m:mi>n</m:mi></m:math>, the order of the matrix <m:math><m:mi>T</m:mi></m:math>.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>0</m:mn></m:math>.
</div>
</dd><dt class="paramhead"><a name="D" id="D"/>4: &#160;&#160;&#8194; D(<m:math><m:mo>*</m:mo></m:math>) &#8211; REAL&#160;(KIND=nag_wp)&#160;array<span class="pclass">Input/Output</span></dt><dd>
<div class="paramtext"><b>Note:</b> the dimension of the array <a class="arg" href="#D">D</a>
must be at least
<m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>.</div>
<div class="paramtext"><i>On entry</i>: the <m:math><m:mi>n</m:mi></m:math>&#160;diagonal elements of the tridiagonal matrix <m:math><m:mi>T</m:mi></m:math>.</div>
<div class="paramtext"><i>On exit</i>: <a class="arg" href="#D">D</a> is overwritten.</div>
</dd><dt class="paramhead"><a name="E" id="E"/>5: &#160;&#160;&#8194; E(<m:math><m:mo>*</m:mo></m:math>) &#8211; REAL&#160;(KIND=nag_wp)&#160;array<span class="pclass">Input/Output</span></dt><dd>
<div class="paramtext"><b>Note:</b> the dimension of the array <a class="arg" href="#E">E</a>
must be at least
<m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>.</div>
<div class="paramtext"><i>On entry</i>: <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#E"><m:mi mathcolor="#EE0000" mathvariant="bold">E</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mrow><m:mn>1</m:mn><m:mo>:</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow></m:mrow></m:mfenced></m:mrow></m:math>&#160;contains the subdiagonal elements of the tridiagonal matrix <m:math><m:mi>T</m:mi></m:math>. <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#E"><m:mi mathcolor="#EE0000" mathvariant="bold">E</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>&#160;need not be set.</div>
<div class="paramtext"><i>On exit</i>: <a class="arg" href="#E">E</a> is overwritten.</div>
</dd><dt class="paramhead"><a name="VL" id="VL"/>6: &#160;&#160;&#8194; VL &#8211; REAL&#160;(KIND=nag_wp)<span class="pclass">Input</span></dt><dt class="multi-paramhead"><a name="VU" id="VU"/>7: &#160;&#160;&#8194; VU &#8211; REAL&#160;(KIND=nag_wp)<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'V'</m:mtext></m:math>, <a class="arg" href="#VL">VL</a> and <a class="arg" href="#VU">VU</a> contain the lower and upper bounds respectively of the interval to be searched for eigenvalues. If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'A'</m:mtext></m:math>&#160;or <m:math><m:mtext>'I'</m:mtext></m:math>, <a class="arg" href="#VL">VL</a> and <a class="arg" href="#VL">VL</a> are not referenced.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#VL"><m:mi mathcolor="#EE0000" mathvariant="bold">VL</m:mi></m:maction><m:mo>&lt;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#VU"><m:mi mathcolor="#EE0000" mathvariant="bold">VU</m:mi></m:maction></m:math>.
</div>
</dd><dt class="paramhead"><a name="IL" id="IL"/>8: &#160;&#160;&#8194; IL &#8211; INTEGER<span class="pclass">Input</span></dt><dt class="multi-paramhead"><a name="IU" id="IU"/>9: &#160;&#160;&#8194; IU &#8211; INTEGER<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'I'</m:mtext></m:math>, <a class="arg" href="#IL">IL</a> and <a class="arg" href="#IU">IU</a> contains the indices (in ascending order) of the smallest and largest eigenvalues to be returned, respectively. If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'A'</m:mtext></m:math>&#160;or <m:math><m:mtext>'V'</m:mtext></m:math>, <a class="arg" href="#IL">IL</a> and <a class="arg" href="#IU">IU</a> are not referenced.</div><div class="paramtext"><i>Constraints</i>:
   <div class="paramtext"/><ul class="listcons">
<li class="listcons">if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'I'</m:mtext></m:math>&#160;and <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:math>, <m:math><m:mn>1</m:mn><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#IL"><m:mi mathcolor="#EE0000" mathvariant="bold">IL</m:mi></m:maction><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#IU"><m:mi mathcolor="#EE0000" mathvariant="bold">IU</m:mi></m:maction><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:math>;</li>
<li class="listcons">if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'I'</m:mtext></m:math>&#160;and <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>, <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IL"><m:mi mathcolor="#EE0000" mathvariant="bold">IL</m:mi></m:maction><m:mo>=</m:mo><m:mn>1</m:mn></m:math>&#160;and <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IU"><m:mi mathcolor="#EE0000" mathvariant="bold">IU</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>.</li>
</ul></div>
</dd><dt class="paramhead"><a name="ABSTOL" id="ABSTOL"/>10: &#8194; ABSTOL &#8211; REAL&#160;(KIND=nag_wp)<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: in earlier versions, this argument was the absolute error tolerance for the eigenvalues/eigenvectors. It is now deprecated, and only included for backwards-compatibility.</div>
</dd><dt class="paramhead"><a name="M" id="M"/>11: &#8194; M &#8211; INTEGER<span class="pclass">Output</span></dt><dd>
<div class="paramtext"><i>On exit</i>: the total number of eigenvalues found.  <m:math><m:mn>0</m:mn><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:math>.
<div class="paramtext">If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'A'</m:mtext></m:math>, <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:math>.</div>
<div class="paramtext">If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#RANGE"><m:mi mathcolor="#EE0000" mathvariant="bold">RANGE</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'I'</m:mtext></m:math>, <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#IU"><m:mi mathcolor="#EE0000" mathvariant="bold">IU</m:mi></m:maction><m:mo>-</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#IL"><m:mi mathcolor="#EE0000" mathvariant="bold">IL</m:mi></m:maction><m:mo>+</m:mo><m:mn>1</m:mn></m:math>.</div>
</div></dd><dt class="paramhead"><a name="W" id="W"/>12: &#8194; W(<m:math><m:mo>*</m:mo></m:math>) &#8211; REAL&#160;(KIND=nag_wp)&#160;array<span class="pclass">Output</span></dt><dd>
<div class="paramtext"><b>Note:</b> the dimension of the array <a class="arg" href="#W">W</a>
must be at least
<m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>.</div>
<div class="paramtext"><i>On exit</i>: the eigenvalues in ascending order.</div>
</dd><dt class="paramhead"><a name="Z" id="Z"/>13: &#8194; Z(<a class="arg" href="#LDZ">LDZ</a>,<m:math><m:mo>*</m:mo></m:math>) &#8211; COMPLEX&#160;(KIND=nag_wp)&#160;array<span class="pclass">Output</span></dt><dd>
<div class="paramtext"><b>Note:</b> the second dimension of the array <a class="arg" href="#Z">Z</a>
must be at least
<m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>&#160;if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#JOBZ"><m:mi mathcolor="#EE0000" mathvariant="bold">JOBZ</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'V'</m:mtext></m:math>, and at least <m:math><m:mn>1</m:mn></m:math>&#160;otherwise.</div>
<div class="paramtext"><i>On exit</i>: if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#JOBZ"><m:mi mathcolor="#EE0000" mathvariant="bold">JOBZ</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'V'</m:mtext></m:math>, then if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#INFO"><m:mi mathcolor="#EE0000" mathvariant="bold">INFO</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">0</m:mn></m:maction></m:math>, the columns of <a class="arg" href="#Z">Z</a> contain the orthonormal eigenvectors of the matrix <m:math><m:mi>T</m:mi></m:math>, with the <m:math><m:mi>i</m:mi></m:math>th column of <m:math><m:mi>Z</m:mi></m:math>&#160;holding the eigenvector associated with <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#W"><m:mi mathcolor="#EE0000" mathvariant="bold">W</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi></m:mfenced></m:mrow></m:math>.
<div class="paramtext">If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#JOBZ"><m:mi mathcolor="#EE0000" mathvariant="bold">JOBZ</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'N'</m:mtext></m:math>, <a class="arg" href="#Z">Z</a> is not referenced.</div>
</div>
</dd><dt class="paramhead"><a name="LDZ" id="LDZ"/>14: &#8194; LDZ &#8211; INTEGER<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: the first dimension of the array <a class="arg" href="#Z">Z</a> as declared in the (sub)program from which F08JYF (ZSTEGR) is called.</div><div class="paramtext"><i>Constraints</i>:
   <div class="paramtext"/><ul class="listcons">
<li class="listcons">if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#JOBZ"><m:mi mathcolor="#EE0000" mathvariant="bold">JOBZ</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'V'</m:mtext></m:math>, <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#LDZ"><m:mi mathcolor="#EE0000" mathvariant="bold">LDZ</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>;</li>
<li class="listcons">otherwise <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#LDZ"><m:mi mathcolor="#EE0000" mathvariant="bold">LDZ</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>1</m:mn></m:math>.</li>
</ul></div>
</dd><dt class="paramhead"><a name="ISUPPZ" id="ISUPPZ"/>15: &#8194; ISUPPZ(<m:math><m:mo>*</m:mo></m:math>) &#8211; INTEGER&#160;array<span class="pclass">Output</span></dt><dd>
<div class="paramtext"><b>Note:</b> the dimension of the array <a class="arg" href="#ISUPPZ">ISUPPZ</a>
must be at least
<m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:mrow><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction></m:mrow></m:mfenced></m:mrow></m:math>.</div><div class="paramtext"><i>On exit</i>: the support of the eigenvectors in <m:math><m:mi>Z</m:mi></m:math>, i.e., the indices indicating the nonzero elements in <m:math><m:mi>Z</m:mi></m:math>. The <m:math><m:mi>i</m:mi></m:math>th eigenvector is nonzero only in elements <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#ISUPPZ"><m:mi mathcolor="#EE0000" mathvariant="bold">ISUPPZ</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mrow><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:mi>i</m:mi><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow></m:mfenced></m:mrow></m:math>&#160;through <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#ISUPPZ"><m:mi mathcolor="#EE0000" mathvariant="bold">ISUPPZ</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mrow><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:mi>i</m:mi></m:mrow></m:mfenced></m:mrow></m:math>.</div>
</dd><dt class="paramhead"><a name="WORK" id="WORK"/>16: &#8194; WORK(<m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#LWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LWORK</m:mi></m:maction></m:mfenced></m:mrow></m:math>) &#8211; REAL&#160;(KIND=nag_wp)&#160;array<span class="pclass">Workspace</span></dt><dd><div class="paramtext"><i>On exit</i>: if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#INFO"><m:mi mathcolor="#EE0000" mathvariant="bold">INFO</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">0</m:mn></m:maction></m:math>, <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#WORK"><m:mi mathcolor="#EE0000" mathvariant="bold">WORK</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn></m:mfenced></m:mrow></m:math>&#160;returns the minimum <a class="arg" href="#LWORK">LWORK</a>.</div>
</dd><dt class="paramhead"><a name="LWORK" id="LWORK"/>17: &#8194; LWORK &#8211; INTEGER<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: 
the dimension of the array <a class="arg" href="#WORK">WORK</a> as declared in the (sub)program from which F08JYF (ZSTEGR) is called.

<div class="paramtext">If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#LWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LWORK</m:mi></m:maction><m:mo>=</m:mo><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow></m:math>, a workspace query is assumed; the routine only calculates the minimum sizes of the <a class="arg" href="#WORK">WORK</a> and <a class="arg" href="#IWORK">IWORK</a> arrays, returns these values as the first entries of the <a class="arg" href="#WORK">WORK</a> and <a class="arg" href="#IWORK">IWORK</a> arrays, and no error message related to <a class="arg" href="#LWORK">LWORK</a> or <a class="arg" href="#LIWORK">LIWORK</a> is issued.</div></div><div class="paramtext"><i>Constraint</i>:
  <m:math>
  <m:maction actiontype="link" dsi:type="simple" dsi:href="#LWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LWORK</m:mi></m:maction>
  <m:mo>&#8805;</m:mo>
  <m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:mrow><m:mn>18</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mrow></m:mfenced></m:mrow>
  </m:math>&#160;or <m:math>
  <m:maction actiontype="link" dsi:type="simple" dsi:href="#LWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LWORK</m:mi></m:maction><m:mo>=</m:mo><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow>
 </m:math>.
</div>
</dd><dt class="paramhead"><a name="IWORK" id="IWORK"/>18: &#8194; IWORK(<m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#LIWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LIWORK</m:mi></m:maction></m:mfenced></m:mrow></m:math>) &#8211; INTEGER&#160;array<span class="pclass">Workspace</span></dt><dd><div class="paramtext"><i>On exit</i>: if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#INFO"><m:mi mathcolor="#EE0000" mathvariant="bold">INFO</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">0</m:mn></m:maction></m:math>, <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#WORK"><m:mi mathcolor="#EE0000" mathvariant="bold">WORK</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn></m:mfenced></m:mrow></m:math>&#160;returns the minimum <a class="arg" href="#LIWORK">LIWORK</a>.</div>
</dd><dt class="paramhead"><a name="LIWORK" id="LIWORK"/>19: &#8194; LIWORK &#8211; INTEGER<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: the dimension of the array <a class="arg" href="#IWORK">IWORK</a> as declared in the (sub)program from which F08JYF (ZSTEGR) is called.

<div class="paramtext">If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#LIWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LIWORK</m:mi></m:maction><m:mo>=</m:mo><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow></m:math>, a workspace query is assumed; the routine only calculates the minimum sizes of the <a class="arg" href="#WORK">WORK</a> and <a class="arg" href="#IWORK">IWORK</a> arrays, returns these values as the first entries of the <a class="arg" href="#WORK">WORK</a> and <a class="arg" href="#IWORK">IWORK</a> arrays, and no error message related to <a class="arg" href="#LWORK">LWORK</a> or <a class="arg" href="#LIWORK">LIWORK</a> is issued.</div></div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#LIWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LIWORK</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:mrow><m:mn>10</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mrow></m:mfenced></m:mrow></m:math>&#160;or <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#LIWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LIWORK</m:mi></m:maction><m:mo>=</m:mo><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow></m:math>.
</div>
</dd><dt class="paramhead"><a name="INFO" id="INFO"/>20: &#8194; INFO &#8211; INTEGER<span class="pclass">Output</span></dt><dd><div class="paramtext"><i>On exit</i>: <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#INFO"><m:mi mathcolor="#EE0000" mathvariant="bold">INFO</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>&#160;unless the routine detects an error (see <a class="sec" href="#errors">Section 6</a>).</div></dd></dl><h2 class="standard"><a class="sec" name="errors" id="errors"/>6&#160;&#160;Error Indicators and Warnings</h2>
<div class="paramtext">Errors or warnings detected by the routine:</div>
<dl class="ifail">
<dt class="errorhead"><a name="INlt0" id="INlt0"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#INFO"><m:mi mathcolor="#EE0000" mathvariant="bold">INFO</m:mi></m:maction><m:mo>&lt;</m:mo><m:mn>0</m:mn></m:math></dt>
<dd><div class="paramtext">If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#INFO"><m:mi mathcolor="#EE0000" mathvariant="bold">INFO</m:mi></m:maction><m:mo>=</m:mo><m:mo>-</m:mo><m:mi>i</m:mi></m:math>, argument <m:math><m:mi>i</m:mi></m:math>&#160;had an illegal value. An explanatory message is output, and execution of the program is terminated.</div></dd>
</dl><dl class="ifail">
<dt class="errorhead"><a name="INgt0" id="INgt0"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#INFO"><m:mi mathcolor="#EE0000" mathvariant="bold">INFO</m:mi></m:maction><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:math></dt>
<dd><div class="paramtext">If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#INFO"><m:mi mathcolor="#EE0000" mathvariant="bold">INFO</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">1</m:mn></m:maction></m:math>, the <m:math><m:mi mathvariant="normal">dqds</m:mi></m:math>&#160;algorithm failed to converge, if <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#INFO"><m:mi mathcolor="#EE0000" mathvariant="bold">INFO</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">2</m:mn></m:maction></m:math>, inverse iteration failed to converge.</div></dd>
</dl><h2 class="standard"><a class="sec" name="accuracy" id="accuracy"/>7&#160;&#160;Accuracy</h2>
<div class="paramtext">See the description for <a class="arg" href="#ABSTOL">ABSTOL</a>.  See also Section 4.7 of <a class="ref" href="#ref252">Anderson <span class="italic">et al.</span> (1999)</a> and <a class="ref" href="#ref451">Barlow and Demmel (1990)</a> for further details.</div><h2 class="standard"><a class="sec" name="fcomments" id="fcomments"/>8&#160;&#160;Further Comments</h2>
<div class="paramtext">The total number of floating point operations required to compute all the eigenvalues and eigenvectors is approximately proportional to <m:math><m:msup><m:mi>n</m:mi><m:mn>2</m:mn></m:msup></m:math>.</div><div class="paramtext">The real analogue of this routine is <a class="rout" href="../F08/f08jlf.xml">F08JLF (DSTEGR)</a>.  The specification of F08JYF (ZSTEGR) differs from that of <a class="rout" href="../F08/f08jlf.xml">F08JLF (DSTEGR)</a> only in that the array <a class="arg" href="#Z">Z</a> is declared as 
   complex
   in F08JYF (ZSTEGR).</div><h2 class="standard"><a class="sec" name="example" id="example"/>9&#160;&#160;Example</h2>
<div class="paramtext">This example finds all the eigenvalues and eigenvectors of the symmetric tridiagonal matrix

<div class="formula"><table class="formula"><tr><td class="formula"><m:math display="block">
 <m:mi>T</m:mi>
 <m:mo>=</m:mo>
 <m:mfenced><m:mtable columnalign="right">
<m:mtr>
   <m:mtd><m:mn>1.0</m:mn></m:mtd>
   <m:mtd><m:mn>1.0</m:mn></m:mtd>
   <m:mtd><m:mn>0</m:mn><m:mphantom><m:mn>.0</m:mn></m:mphantom></m:mtd>
   <m:mtd><m:mn>0</m:mn><m:mphantom><m:mn>.0</m:mn></m:mphantom></m:mtd>
</m:mtr><m:mtr>
   <m:mtd><m:mn>1.0</m:mn></m:mtd>
   <m:mtd><m:mn>4.0</m:mn></m:mtd>
   <m:mtd><m:mn>2.0</m:mn></m:mtd>
   <m:mtd><m:mn>0</m:mn><m:mphantom><m:mn>.0</m:mn></m:mphantom></m:mtd>
</m:mtr><m:mtr>
   <m:mtd><m:mn>0</m:mn><m:mphantom><m:mn>.0</m:mn></m:mphantom></m:mtd>
   <m:mtd><m:mn>2.0</m:mn></m:mtd>
   <m:mtd><m:mn>9.0</m:mn></m:mtd>
   <m:mtd><m:mn>3.0</m:mn></m:mtd>
</m:mtr><m:mtr>
   <m:mtd><m:mn>0</m:mn><m:mphantom><m:mn>.0</m:mn></m:mphantom></m:mtd>
   <m:mtd><m:mn>0</m:mn><m:mphantom><m:mn>.0</m:mn></m:mphantom></m:mtd>
   <m:mtd><m:mn>3.0</m:mn></m:mtd>
   <m:mtd><m:mn>16.0</m:mn></m:mtd>
</m:mtr>
</m:mtable></m:mfenced>
 <m:mtext>.</m:mtext>
</m:math></td><td class="formula2"/></tr></table></div><a class="arg" href="#ABSTOL">ABSTOL</a> is set to zero so that the default tolerance of <m:math><m:mi>n</m:mi><m:mi>&#949;</m:mi> <m:msub><m:mfenced open="&#8214;" close="&#8214;" separators=""><m:mi>T</m:mi></m:mfenced><m:mn>1</m:mn></m:msub></m:math>&#160;is used.</div><h3 class="standard"><a class="sec" name="examtext" id="examtext"/>9.1&#160;&#160;Program Text</h3>
<p><a class="verbatimref" href="../../examples/source/f08jyfe.f90">Program Text (f08jyfe.f90)</a></p><h3 class="standard"><a class="sec" name="examdata" id="examdata"/>9.2&#160;&#160;Program Data</h3>
<p><a class="verbatimref" href="../../examples/data/f08jyfe.d">Program&#160;Data (f08jyfe.d)</a></p><h3 class="standard"><a class="sec" name="examresults" id="examresults"/>9.3&#160;&#160;Program Results</h3>
<p><a class="verbatimref" href="../../examples/baseresults/f08jyfe.r">Program Results (f08jyfe.r)</a></p>
<hr/><div><a class="rout" href="../../pdf/F08/f08jyf.pdf">F08JYF (ZSTEGR) (PDF version)</a></div><div><a class="chap" href="f08conts.xml">F08 Chapter Contents</a></div><div><a class="chapint" href="f08intro.xml">F08 Chapter Introduction</a></div>
<div><a class="htmltoc" href="../FRONTMATTER/manconts.xml">NAG Library Manual</a></div>
<div><hr/><a class="genint" href="../FRONTMATTER/copyright.xml">&#169; The Numerical Algorithms Group Ltd, Oxford, UK. 2011</a></div></body></html>