<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
  "http://www.w3.org/TR/html4/loose.dtd">  
<html > 
<head><title>psb_norm2 &#8212; 2-Norm of Vector</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)"> 
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> 
<!-- html,3 --> 
<meta name="src" content="userhtml.tex"> 
<link rel="stylesheet" type="text/css" href="userhtml.css"> 
</head><body 
>
   <!--l. 627--><div class="crosslinks"><p class="noindent">[<a 
href="userhtmlsu21.html" >next</a>] [<a 
href="userhtmlsu16.html" >prev</a>] [<a 
href="userhtmlsu16.html#tailuserhtmlsu16.html" >prev-tail</a>] [<a 
href="userhtmlsu14.html#tailuserhtmlsu17.html">tail</a>] [<a 
href="userhtmlsu12.html#userhtmlsu20.html" >up</a>] </p></div>
   <h4 class="subsectionHead"><span class="titlemark">4.8   </span> <a 
 id="x26-630004.8"></a>psb_norm2 &#8212; 2-Norm of Vector</h4>
<!--l. 629--><p class="noindent" >This function computes the 2-norm of a vector <span 
class="cmmi-10">x</span>.<br 
class="newline" />If <span 
class="cmmi-10">x </span>is a real vector it computes 2-norm as:
   <center class="math-display" >
<img 
src="userhtml13x.png" alt="        &#x221A; -T--
nrm2  &#x2190;   x x
" class="math-display" ></center>
<!--l. 632--><p class="nopar" > else if <span 
class="cmmi-10">x </span>is a complex vector then it computes 2-norm as:
   <center class="math-display" >
<img 
src="userhtml14x.png" alt="        &#x221A;----
nrm2 &#x2190;   xHx
" class="math-display" ></center>
<!--l. 634--><p class="nopar" >
   <div class="table">
                                                                  

                                                                  
<!--l. 640--><p class="indent" >   <a 
 id="x26-630018"></a><hr class="float"><div class="float" 
>
                                                                  

                                                                  
<div class="center" 
>
<!--l. 641--><p class="noindent" >
<div class="tabular"> <table id="TBL-8" class="tabular" 
cellspacing="0" cellpadding="0"  
><colgroup id="TBL-8-1g"><col 
id="TBL-8-1"><col 
id="TBL-8-2"><col 
id="TBL-8-3"></colgroup><tr 
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr  
 style="vertical-align:baseline;" id="TBL-8-1-"><td  style="white-space:nowrap; text-align:left;" id="TBL-8-1-1"  
class="td11"><span 
class="cmmi-10">nrm</span>2                   </td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-1-2"  
class="td11"><span 
class="cmmi-10">x                          </span></td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-1-3"  
class="td11"><span 
class="cmbx-10">Function  </span></td></tr><tr 
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr  
 style="vertical-align:baseline;" id="TBL-8-2-"><td  style="white-space:nowrap; text-align:left;" id="TBL-8-2-1"  
class="td11">Short Precision Real</td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-2-2"  
class="td11">Short Precision Real </td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-2-3"  
class="td11">psb_genrm2</td>
</tr><tr  
 style="vertical-align:baseline;" id="TBL-8-3-"><td  style="white-space:nowrap; text-align:left;" id="TBL-8-3-1"  
class="td11">Long Precision Real </td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-3-2"  
class="td11">Long Precision Real      </td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-3-3"  
class="td11">psb_genrm2</td>
</tr><tr  
 style="vertical-align:baseline;" id="TBL-8-4-"><td  style="white-space:nowrap; text-align:left;" id="TBL-8-4-1"  
class="td11">Short Precision Real</td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-4-2"  
class="td11">Short Precision Complex</td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-4-3"  
class="td11">psb_genrm2</td>
</tr><tr  
 style="vertical-align:baseline;" id="TBL-8-5-"><td  style="white-space:nowrap; text-align:left;" id="TBL-8-5-1"  
class="td11">Long Precision Real </td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-5-2"  
class="td11">Long Precision Complex </td><td  style="white-space:nowrap; text-align:left;" id="TBL-8-5-3"  
class="td11">psb_genrm2</td>
</tr><tr 
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr  
 style="vertical-align:baseline;" id="TBL-8-6-"><td  style="white-space:nowrap; text-align:left;" id="TBL-8-6-1"  
class="td11">                 </td></tr></table></div></div>
<br /> <div class="caption" 
><span class="id">Table&#x00A0;8: </span><span  
class="content">Data types</span></div><!--tex4ht:label?: x26-630018 -->
                                                                  

                                                                  
   </div><hr class="endfloat" />
   </div>
                                                                  

                                                                  
   <div class="verbatim" id="verbatim-47">
psb_genrm2(x,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,global])
&#x00A0;<br />psb_norm2(x,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,global])
</div>
<!--l. 659--><p class="nopar" >
     <dl class="description"><dt class="description">
<span 
class="cmbx-10">Type:</span> </dt><dd 
class="description">Synchronous.
     </dd><dt class="description">
<span 
class="cmbx-10">On Entry</span> </dt><dd 
class="description">
     </dd><dt class="description">
<span 
class="cmbx-10">x</span> </dt><dd 
class="description">the local portion of global dense matrix <span 
class="cmmi-10">x</span>.<br 
class="newline" />Scope: <span 
class="cmbx-10">local </span><br 
class="newline" />Type: <span 
class="cmbx-10">required </span><br 
class="newline" />Intent: <span 
class="cmbx-10">in</span>.<br 
class="newline" />Specified   as:   a   rank   one   or   two   array   or   an   object   of   type
     <a 
href="userhtmlsu7.html#vdata"><span 
class="cmtt-10">psb</span><span 
class="cmtt-10">_T</span><span 
class="cmtt-10">_vect</span><span 
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a 
href="#x26-630018">8<!--tex4ht:ref: tab:f90nrm2 --></a>.
     </dd><dt class="description">
<span 
class="cmbx-10">desc</span><span 
class="cmbx-10">_a</span> </dt><dd 
class="description">contains data structures for communications.<br 
class="newline" />Scope: <span 
class="cmbx-10">local </span><br 
class="newline" />Type: <span 
class="cmbx-10">required</span><br 
class="newline" />Intent: <span 
class="cmbx-10">in</span>.<br 
class="newline" />Specified as: an object of type <a 
href="userhtmlsu5.html#descdata"><span 
class="cmtt-10">psb</span><span 
class="cmtt-10">_desc</span><span 
class="cmtt-10">_type</span></a>.
     </dd><dt class="description">
<span 
class="cmbx-10">global</span> </dt><dd 
class="description">Specifies whether the computation should include the global reduction
     across all processes.<br 
class="newline" />Scope: <span 
class="cmbx-10">global </span><br 
class="newline" />Type: <span 
class="cmbx-10">optional</span>.<br 
class="newline" />Intent: <span 
class="cmbx-10">in</span>.<br 
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span 
class="cmtt-10">global=.true.</span></span></span><br 
class="newline" />
     </dd><dt class="description">
<span 
class="cmbx-10">On Return</span> </dt><dd 
class="description">
     </dd><dt class="description">
<span 
class="cmbx-10">Function Value</span> </dt><dd 
class="description">is the 2-norm of vector <span 
class="cmmi-10">x</span>.<br 
class="newline" />Scope:  <span 
class="cmbx-10">global </span>unless  the  optional  variable  <span class="obeylines-h"><span class="verb"><span 
class="cmtt-10">global=.false.</span></span></span> has  been
     specified<br 
class="newline" />Type: <span 
class="cmbx-10">required </span><br 
class="newline" />Specified as: a long precision real number.
     </dd><dt class="description">
<span 
class="cmbx-10">info</span> </dt><dd 
class="description">Error code.<br 
class="newline" />Scope: <span 
class="cmbx-10">local </span><br 
class="newline" />Type: <span 
class="cmbx-10">required </span><br 
class="newline" />Intent: <span 
class="cmbx-10">out</span>.<br 
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
                                                                  

                                                                  
<!--l. 706--><p class="noindent" ><span 
class="cmbx-12">Notes</span>
     <ol  class="enumerate1" >
     <li 
  class="enumerate" id="x26-63003x1">The computation of a global result requires a global communication, which
     entails a significant overhead. It may be necessary and/or advisable to compute
     multiple norms at the same time; in this case, it is possible to improve the
     runtime efficiency by using the following scheme: <!--l. 713-->
     <div class="lstlisting" id="listing-4"><span class="label"><a 
 id="x26-63004r1"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(1)&#x00A0;=&#x00A0;psb_genrm2(x1,desc_a,info,global=.<span 
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a 
 id="x26-63005r2"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(2)&#x00A0;=&#x00A0;psb_genrm2(x2,desc_a,info,global=.<span 
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a 
 id="x26-63006r3"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(3)&#x00A0;=&#x00A0;psb_genrm2(x3,desc_a,info,global=.<span 
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a 
 id="x26-63007r4"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span 
class="cmbx-10">call</span>&#x00A0;psb_nrm2(ictxt,vres(1:3))
     
     </div>
     <!--l. 719--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
     operation, is invoked only once.</li></ol>
                                                                  

                                                                  
                                                                  

                                                                  
   <!--l. 725--><div class="crosslinks"><p class="noindent">[<a 
href="userhtmlsu21.html" >next</a>] [<a 
href="userhtmlsu16.html" >prev</a>] [<a 
href="userhtmlsu16.html#tailuserhtmlsu16.html" >prev-tail</a>] [<a 
href="userhtmlsu17.html" >front</a>] [<a 
href="userhtmlsu12.html#userhtmlsu20.html" >up</a>] </p></div>
<!--l. 725--><p class="indent" >   <a 
 id="tailuserhtmlsu17.html"></a>  
</body></html>