|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
|
<html >
|
|
|
<head><title>Computational routines</title>
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
|
<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)">
|
|
|
<meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)">
|
|
|
<!-- html,3 -->
|
|
|
<meta name="src" content="userhtml.tex">
|
|
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
|
|
</head><body
|
|
|
>
|
|
|
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
|
|
href="userhtmlse8.html" >next</a>] [<a
|
|
|
href="userhtmlse3.html" >prev</a>] [<a
|
|
|
href="userhtmlse3.html#tailuserhtmlse3.html" >prev-tail</a>] [<a
|
|
|
href="#tailuserhtmlse4.html">tail</a>] [<a
|
|
|
href="userhtml.html#userhtmlse7.html" >up</a>] </p></div>
|
|
|
<h3 class="sectionHead"><span class="titlemark">4 </span> <a
|
|
|
id="x9-550004"></a>Computational routines</h3>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a
|
|
|
id="x9-560004.1"></a>psb_geaxpby — General Dense Matrix Sum</h4>
|
|
|
<!--l. 10--><p class="noindent" >This subroutine is an interface to the computational kernel for dense matrix
|
|
|
sum:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml1x.png" alt="y ← α x+ βy
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 12--><p class="nopar" >
|
|
|
<!--l. 19--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_geaxpby</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 23--><p class="indent" > <a
|
|
|
id="x9-56001r1"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 24--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-1" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-1-1g"><col
|
|
|
id="TBL-1-1"><col
|
|
|
id="TBL-1-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">x</span>, <span
|
|
|
class="cmmi-10">y</span>, <span
|
|
|
class="cmmi-10">α</span>, <span
|
|
|
class="cmmi-10">β </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Subroutine</span></td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-2"
|
|
|
class="td11">psb_geaxpby</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-2"
|
|
|
class="td11">psb_geaxpby</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-1-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-2"
|
|
|
class="td11">psb_geaxpby</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-2"
|
|
|
class="td11">psb_geaxpby</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 1: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-56001r1 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 40--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 40--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 41--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 41--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 42--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">alpha</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 42--><p class="noindent" >the scalar <span
|
|
|
class="cmmi-10">α</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </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 number of the data type indicated in Table <a
|
|
|
href="#x9-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 45--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 45--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>. The
|
|
|
rank of <span
|
|
|
class="cmmi-10">x </span>must be the same of <span
|
|
|
class="cmmi-10">y</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 53--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">beta</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 53--><p class="noindent" >the scalar <span
|
|
|
class="cmmi-10">β</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </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 number of the data type indicated in Table <a
|
|
|
href="#x9-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 58--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 58--><p class="noindent" >the local portion of the global dense matrix <span
|
|
|
class="cmmi-10">y</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">inout</span>.<br
|
|
|
class="newline" />Specified as: a rank one or two array or an object of type
|
|
|
<a
|
|
|
href="userhtmlse3.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> containing numbers of the type indicated in Table <a
|
|
|
href="#x9-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
|
|
The rank of <span
|
|
|
class="cmmi-10">y </span>must be the same of <span
|
|
|
class="cmmi-10">x</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 65--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 65--><p class="noindent" >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="userhtmlse3.html#descdata"><span
|
|
|
class="cmtt-10">psb</span><span
|
|
|
class="cmtt-10">_desc</span><span
|
|
|
class="cmtt-10">_type</span></a>.
|
|
|
</dd></dl>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 91--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 91--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 92--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 92--><p class="noindent" >the local portion of result submatrix <span
|
|
|
class="cmmi-10">y</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">inout</span>.<br
|
|
|
class="newline" />Specified as: a rank one or two array or an object of type
|
|
|
<a
|
|
|
href="userhtmlse3.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> containing numbers of the type indicated in Table <a
|
|
|
href="#x9-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 98--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 98--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a
|
|
|
id="x9-570004.2"></a>psb_gedot — Dot Product</h4>
|
|
|
<!--l. 113--><p class="noindent" >This function computes dot product between two vectors <span
|
|
|
class="cmmi-10">x </span>and <span
|
|
|
class="cmmi-10">y</span>.<br
|
|
|
class="newline" />If <span
|
|
|
class="cmmi-10">x </span>and <span
|
|
|
class="cmmi-10">y </span>are real vectors it computes dot-product as:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml2x.png" alt="dot ← xTy
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 117--><p class="nopar" > Else if <span
|
|
|
class="cmmi-10">x </span>and <span
|
|
|
class="cmmi-10">y </span>are complex vectors then it computes dot-product as:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml3x.png" alt="dot ← xHy
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 119--><p class="nopar" >
|
|
|
<!--l. 126--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_gedot</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code> <div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 128--><p class="indent" > <a
|
|
|
id="x9-57001r2"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 129--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-2" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-2-1g"><col
|
|
|
id="TBL-2-1"><col
|
|
|
id="TBL-2-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">dot</span>, <span
|
|
|
class="cmmi-10">x</span>, <span
|
|
|
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Function</span></td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-2"
|
|
|
class="td11">psb_gedot</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-2"
|
|
|
class="td11">psb_gedot</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-2"
|
|
|
class="td11">psb_gedot</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-2"
|
|
|
class="td11">psb_gedot</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 2: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-57001r2 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 145--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 145--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 146--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 146--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 147--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 147--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>. The
|
|
|
rank of <span
|
|
|
class="cmmi-10">x </span>must be the same of <span
|
|
|
class="cmmi-10">y</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 157--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 157--><p class="noindent" >the local portion of global dense matrix <span
|
|
|
class="cmmi-10">y</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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>. The
|
|
|
rank of <span
|
|
|
class="cmmi-10">y </span>must be the same of <span
|
|
|
class="cmmi-10">x</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 167--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 167--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 172--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">global</span> </dt><dd
|
|
|
class="description">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 172--><p class="noindent" >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: <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code><br
|
|
|
class="newline" />
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 191--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 191--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 192--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 192--><p class="noindent" >is the dot product of vectors <span
|
|
|
class="cmmi-10">x </span>and <span
|
|
|
class="cmmi-10">y</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </span>unless the optional variable <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code> has been
|
|
|
specified<br
|
|
|
class="newline" />Specified as: a number of the data type indicated in Table <a
|
|
|
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 196--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 196--><p class="noindent" >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. 203--><p class="noindent" ><span
|
|
|
class="cmbx-12">Notes</span>
|
|
|
<ol class="enumerate1" >
|
|
|
<li
|
|
|
class="enumerate" id="x9-57003x1">
|
|
|
<!--l. 205--><p class="noindent" >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 dot products at the same time; in this case, it is
|
|
|
possible to improve the runtime efficiency by using the following scheme:
|
|
|
<!--l. 218-->
|
|
|
<pre class="lstlisting" id="listing-103"><span class="label"><a
|
|
|
id="x9-57004r1"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(1)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_gedot</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x1</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">y1</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-57005r2"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(2)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_gedot</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x2</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">y2</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-57006r3"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(3)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_gedot</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x3</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">y3</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-57007r4"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_sum</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">ctxt</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(1:3))</span></span></pre>
|
|
|
|
|
|
<!--l. 225--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
|
|
operation, is invoked only once.</li></ol>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.3 </span> <a
|
|
|
id="x9-580004.3"></a>psb_gedots — Generalized Dot Product</h4>
|
|
|
<!--l. 237--><p class="noindent" >This subroutine computes a series of dot products among the columns of two dense
|
|
|
matrices <span
|
|
|
class="cmmi-10">x </span>and <span
|
|
|
class="cmmi-10">y</span>:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml4x.png" alt="res(i) ← x(:,i)Ty(:,i)
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 239--><p class="nopar" > If the matrices are complex, then the usual convention applies, i.e. the conjugate
|
|
|
transpose of <span
|
|
|
class="cmmi-10">x </span>is used. If <span
|
|
|
class="cmmi-10">x </span>and <span
|
|
|
class="cmmi-10">y </span>are of rank one, then <span
|
|
|
class="cmmi-10">res </span>is a scalar, else it is a rank
|
|
|
one array.
|
|
|
<!--l. 245--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_gedots</span><span style="color:#000000">(</span><span style="color:#000000">res</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 247--><p class="indent" > <a
|
|
|
id="x9-58001r3"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 248--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-3" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-3-1g"><col
|
|
|
id="TBL-3-1"><col
|
|
|
id="TBL-3-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">res</span>, <span
|
|
|
class="cmmi-10">x</span>, <span
|
|
|
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Subroutine</span></td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-2"
|
|
|
class="td11">psb_gedots </td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-2"
|
|
|
class="td11">psb_gedots </td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-2"
|
|
|
class="td11">psb_gedots </td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-3-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-2"
|
|
|
class="td11">psb_gedots </td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-3-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 3: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-58001r3 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 264--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 264--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 265--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 265--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 266--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 266--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-58001r3">3<!--tex4ht:ref: tab:f90mdot --></a>. The
|
|
|
rank of <span
|
|
|
class="cmmi-10">x </span>must be the same of <span
|
|
|
class="cmmi-10">y</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 274--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 274--><p class="noindent" >the local portion of global dense matrix <span
|
|
|
class="cmmi-10">y</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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-58001r3">3<!--tex4ht:ref: tab:f90mdot --></a>. The
|
|
|
rank of <span
|
|
|
class="cmmi-10">y </span>must be the same of <span
|
|
|
class="cmmi-10">x</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 282--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 282--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 287--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 287--><p class="noindent" >
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 288--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">res</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 288--><p class="noindent" >is the dot product of vectors <span
|
|
|
class="cmmi-10">x </span>and <span
|
|
|
class="cmmi-10">y</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </span><br
|
|
|
class="newline" />Intent: <span
|
|
|
class="cmbx-10">out</span>.<br
|
|
|
class="newline" />Specified as: a number or a rank-one array of the data type indicated in
|
|
|
Table <a
|
|
|
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 293--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 293--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.4 </span> <a
|
|
|
id="x9-590004.4"></a>psb_normi — Infinity-Norm of Vector</h4>
|
|
|
<!--l. 309--><p class="noindent" >This function computes the infinity-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 infinity norm as:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml5x.png" alt="amax ← max |xi|
|
|
|
i
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 313--><p class="nopar" > else if <span
|
|
|
class="cmmi-10">x </span>is a complex vector then it computes the infinity-norm as:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml6x.png" alt="amax ← maxi (|re(xi)|+ |im(xi)|)
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 315--><p class="nopar" >
|
|
|
<!--l. 321--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_geamax</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br
|
|
|
class="newline" /><code class="lstinline"><span style="color:#000000">psb_normi</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 325--><p class="indent" > <a
|
|
|
id="x9-59001r4"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 326--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-4" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-4-1g"><col
|
|
|
id="TBL-4-1"><col
|
|
|
id="TBL-4-2"><col
|
|
|
id="TBL-4-3"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">amax </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-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-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-3"
|
|
|
class="td11">psb_geamax</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-2"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-3"
|
|
|
class="td11">psb_geamax</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-4-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-2"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-3"
|
|
|
class="td11">psb_geamax</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-4-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-2"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-3"
|
|
|
class="td11">psb_geamax</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-4-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 4: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-59001r4 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 343--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 343--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 344--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 344--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 345--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 345--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-59001r4">4<!--tex4ht:ref: tab:f90amax --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 355--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 355--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 360--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">global</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 360--><p class="noindent" >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: <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code><br
|
|
|
class="newline" />
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 373--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 373--><p class="noindent" >
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 374--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 374--><p class="noindent" >is the infinity norm of vector <span
|
|
|
class="cmmi-10">x</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </span>unless the optional variable <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code> has been
|
|
|
specified<br
|
|
|
class="newline" />Specified as: a long precision real number.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 378--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 378--><p class="noindent" >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. 385--><p class="noindent" ><span
|
|
|
class="cmbx-12">Notes</span>
|
|
|
<ol class="enumerate1" >
|
|
|
<li
|
|
|
class="enumerate" id="x9-59003x1">
|
|
|
<!--l. 387--><p class="noindent" >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. 400-->
|
|
|
<pre class="lstlisting" id="listing-109"><span class="label"><a
|
|
|
id="x9-59004r1"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(1)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_geamax</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x1</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-59005r2"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(2)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_geamax</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x2</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-59006r3"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(3)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_geamax</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x3</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-59007r4"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_amx</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">ctxt</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(1:3))</span></span></pre>
|
|
|
|
|
|
<!--l. 407--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
|
|
operation, is invoked only once.</li></ol>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.5 </span> <a
|
|
|
id="x9-600004.5"></a>psb_geamaxs — Generalized Infinity Norm</h4>
|
|
|
<!--l. 419--><p class="noindent" >This subroutine computes a series of infinity norms on the columns of a dense matrix
|
|
|
<span
|
|
|
class="cmmi-10">x</span>:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml7x.png" alt="res(i) ← max|x(k,i)|
|
|
|
k
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 421--><p class="nopar" >
|
|
|
<!--l. 423--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_geamaxs</span><span style="color:#000000">(</span><span style="color:#000000">res</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 425--><p class="indent" > <a
|
|
|
id="x9-60001r5"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 426--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-5" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-5-1g"><col
|
|
|
id="TBL-5-1"><col
|
|
|
id="TBL-5-2"><col
|
|
|
id="TBL-5-3"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">res </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-3"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Subroutine </span></td></tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-2"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-3"
|
|
|
class="td11">psb_geamaxs</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-2"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-3"
|
|
|
class="td11">psb_geamaxs</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-2"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-3"
|
|
|
class="td11">psb_geamaxs</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-2"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-3"
|
|
|
class="td11">psb_geamaxs</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 5: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-60001r5 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 442--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 442--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 443--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 443--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 444--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 444--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-60001r5">5<!--tex4ht:ref: tab:f90mamax --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 452--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 452--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 457--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 457--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 458--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">res</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 458--><p class="noindent" >is the infinity norm of the columns of <span
|
|
|
class="cmmi-10">x</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </span><br
|
|
|
class="newline" />Intent: <span
|
|
|
class="cmbx-10">out</span>.<br
|
|
|
class="newline" />Specified as: a number or a rank-one array of long precision real numbers.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 462--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 462--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.6 </span> <a
|
|
|
id="x9-610004.6"></a>psb_norm1 — 1-Norm of Vector</h4>
|
|
|
<!--l. 478--><p class="noindent" >This function computes the 1-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 1-norm as:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml8x.png" alt="asum ← ∥xi∥
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 481--><p class="nopar" > else if <span
|
|
|
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml9x.png" alt="asum ← ∥re(x)∥1 + ∥im (x)∥1
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 483--><p class="nopar" >
|
|
|
<!--l. 486--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_geasum</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code> <code class="lstinline"><span style="color:#000000">psb_norm1</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 489--><p class="indent" > <a
|
|
|
id="x9-61001r6"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 490--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-6" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-6-1g"><col
|
|
|
id="TBL-6-1"><col
|
|
|
id="TBL-6-2"><col
|
|
|
id="TBL-6-3"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">asum </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-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-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-2"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-3"
|
|
|
class="td11">psb_geasum</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-2"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-3"
|
|
|
class="td11">psb_geasum</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-2"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-3"
|
|
|
class="td11">psb_geasum</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-2"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-3"
|
|
|
class="td11">psb_geasum</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-6-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 6: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-61001r6 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 506--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 506--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 507--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 507--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 508--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 508--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-61001r6">6<!--tex4ht:ref: tab:f90asum --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 518--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 518--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 523--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">global</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 523--><p class="noindent" >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: <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code><br
|
|
|
class="newline" />
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 531--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 531--><p class="noindent" >
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 532--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 532--><p class="noindent" >is the 1-norm of vector <span
|
|
|
class="cmmi-10">x</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </span>unless the optional variable <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code> has been
|
|
|
specified<br
|
|
|
class="newline" />Specified as: a long precision real number.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 536--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 536--><p class="noindent" >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. 543--><p class="noindent" ><span
|
|
|
class="cmbx-12">Notes</span>
|
|
|
<ol class="enumerate1" >
|
|
|
<li
|
|
|
class="enumerate" id="x9-61003x1">
|
|
|
<!--l. 545--><p class="noindent" >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. 558-->
|
|
|
<pre class="lstlisting" id="listing-115"><span class="label"><a
|
|
|
id="x9-61004r1"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(1)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_geasum</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x1</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-61005r2"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(2)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_geasum</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x2</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-61006r3"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(3)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_geasum</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x3</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-61007r4"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_sum</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">ctxt</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(1:3))</span></span></pre>
|
|
|
|
|
|
<!--l. 565--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
|
|
operation, is invoked only once.</li></ol>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.7 </span> <a
|
|
|
id="x9-620004.7"></a>psb_geasums — Generalized 1-Norm of Vector</h4>
|
|
|
<!--l. 572--><p class="noindent" >This subroutine computes a series of 1-norms on the columns of a dense matrix
|
|
|
<span
|
|
|
class="cmmi-10">x</span>:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml10x.png" alt="res(i) ← max|x(k,i)|
|
|
|
k
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 574--><p class="nopar" > This function computes the 1-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 1-norm as:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml11x.png" alt="res(i) ← ∥xi∥
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 578--><p class="nopar" > else if <span
|
|
|
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml12x.png" alt="res(i) ← ∥re(x )∥1 +∥im (x )∥1
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 580--><p class="nopar" >
|
|
|
<!--l. 583--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_geasums</span><span style="color:#000000">(</span><span style="color:#000000">res</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 585--><p class="indent" > <a
|
|
|
id="x9-62001r7"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 586--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-7" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-7-1g"><col
|
|
|
id="TBL-7-1"><col
|
|
|
id="TBL-7-2"><col
|
|
|
id="TBL-7-3"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">res </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-3"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Subroutine</span></td></tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-2"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-3"
|
|
|
class="td11">psb_geasums</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-2"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-3"
|
|
|
class="td11">psb_geasums</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-2"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-3"
|
|
|
class="td11">psb_geasums</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-2"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-3"
|
|
|
class="td11">psb_geasums</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-7-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 7: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-62001r7 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 602--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 602--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 603--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 603--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 604--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 604--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-62001r7">7<!--tex4ht:ref: tab:f90asums --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 614--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 614--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 620--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 620--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 621--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">res</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 621--><p class="noindent" >contains the 1-norm of (the columns of) <span
|
|
|
class="cmmi-10">x</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </span><br
|
|
|
class="newline" />Intent: <span
|
|
|
class="cmbx-10">out</span>.<br
|
|
|
class="newline" />Short as: a long precision real number. Specified as: a long precision real
|
|
|
number.
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 626--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 626--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.8 </span> <a
|
|
|
id="x9-630004.8"></a>psb_norm2 — 2-Norm of Vector</h4>
|
|
|
<!--l. 643--><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:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml13x.png" alt="nrm2 ← √xT-x-
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 646--><p class="nopar" > else if <span
|
|
|
class="cmmi-10">x </span>is a complex vector then it computes 2-norm as:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml14x.png" alt=" √----
|
|
|
nrm2 ← xHx
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 648--><p class="nopar" >
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 654--><p class="indent" > <a
|
|
|
id="x9-63001r8"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 655--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-8" class="tabular"
|
|
|
|
|
|
><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 8: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-63001r8 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<!--l. 670--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_genrm2</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br
|
|
|
class="newline" /><code class="lstinline"><span style="color:#000000">psb_norm2</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br
|
|
|
class="newline" />
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 675--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 675--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 676--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 676--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 677--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 677--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-63001r8">8<!--tex4ht:ref: tab:f90nrm2 --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 687--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 687--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 692--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">global</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 692--><p class="noindent" >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: <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code><br
|
|
|
class="newline" />
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 705--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 705--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 706--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Function Value</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 706--><p class="noindent" >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 <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code> 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">
|
|
|
<!--l. 711--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 711--><p class="noindent" >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. 718--><p class="noindent" ><span
|
|
|
class="cmbx-12">Notes</span>
|
|
|
<ol class="enumerate1" >
|
|
|
<li
|
|
|
class="enumerate" id="x9-63003x1">
|
|
|
<!--l. 720--><p class="noindent" >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. 725-->
|
|
|
<pre class="lstlisting" id="listing-121"><span class="label"><a
|
|
|
id="x9-63004r1"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(1)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_genrm2</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x1</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-63005r2"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(2)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_genrm2</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x2</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-63006r3"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(3)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_genrm2</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">x3</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">info</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">global</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">=.</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">false</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">.)</span></span>
|
|
|
<span class="label"><a
|
|
|
id="x9-63007r4"></a></span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span
|
|
|
class="cmtt-10"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
|
|
|
class="cmtt-10">psb_nrm2</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">ctxt</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">,</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">vres</span></span><span style="color:#000000"><span
|
|
|
class="cmtt-10">(1:3))</span></span></pre>
|
|
|
|
|
|
<!--l. 731--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
|
|
operation, is invoked only once.</li></ol>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.9 </span> <a
|
|
|
id="x9-640004.9"></a>psb_genrm2s — Generalized 2-Norm of Vector</h4>
|
|
|
<!--l. 739--><p class="noindent" >This subroutine computes a series of 2-norms on the columns of a dense matrix
|
|
|
<span
|
|
|
class="cmmi-10">x</span>:
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml15x.png" alt="res(i) ← ∥x(:,i)∥2
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 741--><p class="nopar" >
|
|
|
<!--l. 744--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_genrm2s</span><span style="color:#000000">(</span><span style="color:#000000">res</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 746--><p class="indent" > <a
|
|
|
id="x9-64001r9"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 747--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-9" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-9-1g"><col
|
|
|
id="TBL-9-1"><col
|
|
|
id="TBL-9-2"><col
|
|
|
id="TBL-9-3"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">res </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-3"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Subroutine</span></td></tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-2"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-3"
|
|
|
class="td11">psb_genrm2s</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-2"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-3"
|
|
|
class="td11">psb_genrm2s</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-1"
|
|
|
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-2"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-3"
|
|
|
class="td11">psb_genrm2s</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-2"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-3"
|
|
|
class="td11">psb_genrm2s</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-9-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 9: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-64001r9 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 763--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 763--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 764--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 764--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 765--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 765--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-64001r9">9<!--tex4ht:ref: tab:f90nrm2s --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 775--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 775--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 781--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 781--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 782--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">res</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 782--><p class="noindent" >contains the 1-norm of (the columns of) <span
|
|
|
class="cmmi-10">x</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </span><br
|
|
|
class="newline" />Intent: <span
|
|
|
class="cmbx-10">out</span>.<br
|
|
|
class="newline" />Specified as: a long precision real number.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 786--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 786--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.10 </span> <a
|
|
|
id="x9-650004.10"></a>psb_norm1 — 1-Norm of Sparse Matrix</h4>
|
|
|
<!--l. 804--><p class="noindent" >This function computes the 1-norm of a matrix <span
|
|
|
class="cmmi-10">A</span>:<br
|
|
|
class="newline" />
|
|
|
<div class="par-math-display" >
|
|
|
<img
|
|
|
src="userhtml16x.png" alt="nrm1 ← ∥A ∥1
|
|
|
" class="par-math-display" ></div>
|
|
|
<!--l. 806--><p class="nopar" > where:
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 809--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmmi-10">A</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 809--><p class="noindent" >represents the global matrix <span
|
|
|
class="cmmi-10">A</span></dd></dl>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 812--><p class="indent" > <a
|
|
|
id="x9-65001r10"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 813--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-10" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-10-1g"><col
|
|
|
id="TBL-10-1"><col
|
|
|
id="TBL-10-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">A </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-10-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Function </span></td></tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-2-2"
|
|
|
class="td11">psb_spnrm1</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-3-2"
|
|
|
class="td11">psb_spnrm1</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-10-4-2"
|
|
|
class="td11">psb_spnrm1</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-5-2"
|
|
|
class="td11">psb_spnrm1</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 10: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-65001r10 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<pre class="verbatim" id="verbatim-31">
|
|
|
psb_spnrm1(A, desc_a, info)
|
|
|
psb_norm1(A, desc_a, info)
|
|
|
</pre>
|
|
|
<!--l. 831--><p class="nopar" >
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 834--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 834--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 835--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 835--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 836--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 836--><p class="noindent" >the local portion of the global sparse matrix <span
|
|
|
class="cmmi-10">A</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: an object of type <a
|
|
|
href="userhtmlse3.html#spdata"><span
|
|
|
class="cmtt-10">psb</span><span
|
|
|
class="cmtt-10">_Tspmat</span><span
|
|
|
class="cmtt-10">_type</span></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 842--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 842--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 847--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 847--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 848--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 848--><p class="noindent" >is the 1-norm of sparse submatrix <span
|
|
|
class="cmmi-10">A</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </span><br
|
|
|
class="newline" />Specified as: a long precision real number.
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 851--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 851--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.11 </span> <a
|
|
|
id="x9-660004.11"></a>psb_normi — Infinity Norm of Sparse Matrix</h4>
|
|
|
<!--l. 868--><p class="noindent" >This function computes the infinity-norm of a matrix <span
|
|
|
class="cmmi-10">A</span>:<br
|
|
|
class="newline" />
|
|
|
<div class="par-math-display" >
|
|
|
<img
|
|
|
src="userhtml17x.png" alt="nrmi ← ∥A∥∞
|
|
|
" class="par-math-display" ></div>
|
|
|
<!--l. 870--><p class="nopar" > where:
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 873--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmmi-10">A</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 873--><p class="noindent" >represents the global matrix <span
|
|
|
class="cmmi-10">A</span></dd></dl>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 876--><p class="indent" > <a
|
|
|
id="x9-66001r11"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 877--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-11" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-11-1g"><col
|
|
|
id="TBL-11-1"><col
|
|
|
id="TBL-11-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">A </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-11-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Function </span></td></tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-2-2"
|
|
|
class="td11">psb_spnrmi</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-2"
|
|
|
class="td11">psb_spnrmi</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-11-4-2"
|
|
|
class="td11">psb_spnrmi</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-2"
|
|
|
class="td11">psb_spnrmi</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 11: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-66001r11 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<pre class="verbatim" id="verbatim-32">
|
|
|
psb_spnrmi(A, desc_a, info)
|
|
|
psb_normi(A, desc_a, info)
|
|
|
</pre>
|
|
|
<!--l. 895--><p class="nopar" >
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 898--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 898--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 899--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 899--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 900--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 900--><p class="noindent" >the local portion of the global sparse matrix <span
|
|
|
class="cmmi-10">A</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: an object of type <a
|
|
|
href="userhtmlse3.html#spdata"><span
|
|
|
class="cmtt-10">psb</span><span
|
|
|
class="cmtt-10">_Tspmat</span><span
|
|
|
class="cmtt-10">_type</span></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 906--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 906--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 911--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 911--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 912--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 912--><p class="noindent" >is the infinity-norm of sparse submatrix <span
|
|
|
class="cmmi-10">A</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </span><br
|
|
|
class="newline" />Specified as: a long precision real number.
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 915--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 915--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.12 </span> <a
|
|
|
id="x9-670004.12"></a>psb_spmm — Sparse Matrix by Dense Matrix Product</h4>
|
|
|
<!--l. 933--><p class="noindent" >This subroutine computes the Sparse Matrix by Dense Matrix Product:
|
|
|
<table
|
|
|
class="equation"><tr><td>
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml18x.png" alt="y ← αAx + βy
|
|
|
" class="math-display" ><a
|
|
|
id="x9-67001r1"></a></div>
|
|
|
</td><td class="equation-label">(1)</td></tr></table>
|
|
|
<!--l. 938--><p class="nopar" >
|
|
|
<table
|
|
|
class="equation"><tr><td>
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml19x.png" alt=" T
|
|
|
y ← αA x+ βy
|
|
|
" class="math-display" ><a
|
|
|
id="x9-67002r2"></a></div>
|
|
|
</td><td class="equation-label">(2)</td></tr></table>
|
|
|
<!--l. 942--><p class="nopar" >
|
|
|
<table
|
|
|
class="equation"><tr><td>
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml20x.png" alt="y ← αAHx + βy
|
|
|
" class="math-display" ><a
|
|
|
id="x9-67003r3"></a></div>
|
|
|
</td><td class="equation-label">(3)</td></tr></table>
|
|
|
<!--l. 946--><p class="nopar" >
|
|
|
<!--l. 948--><p class="indent" > where:
|
|
|
|
|
|
|
|
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 950--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmmi-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 950--><p class="noindent" >is the global dense matrix <span
|
|
|
class="cmmi-10">x</span><sub><span
|
|
|
class="cmr-7">:</span><span
|
|
|
class="cmmi-7">,</span><span
|
|
|
class="cmr-7">:</span></sub>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 951--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmmi-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 951--><p class="noindent" >is the global dense matrix <span
|
|
|
class="cmmi-10">y</span><sub><span
|
|
|
class="cmr-7">:</span><span
|
|
|
class="cmmi-7">,</span><span
|
|
|
class="cmr-7">:</span></sub>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 952--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmmi-10">A</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 952--><p class="noindent" >is the global sparse matrix <span
|
|
|
class="cmmi-10">A</span></dd></dl>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 955--><p class="indent" > <a
|
|
|
id="x9-67004r12"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 956--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-12" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-12-1g"><col
|
|
|
id="TBL-12-1"><col
|
|
|
id="TBL-12-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">A</span>, <span
|
|
|
class="cmmi-10">x</span>, <span
|
|
|
class="cmmi-10">y</span>, <span
|
|
|
class="cmmi-10">α</span>, <span
|
|
|
class="cmmi-10">β </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Subroutine</span></td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-2"
|
|
|
class="td11">psb_spmm </td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-2"
|
|
|
class="td11">psb_spmm </td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-2"
|
|
|
class="td11">psb_spmm </td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-2"
|
|
|
class="td11">psb_spmm </td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 12: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-67004r12 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<!--l. 971--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_spmm</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br
|
|
|
class="newline" /><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_spmm</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">trans</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">work</span><span style="color:#000000">)</span></code>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 975--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 975--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 976--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 976--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 977--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">alpha</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 977--><p class="noindent" >the scalar <span
|
|
|
class="cmmi-10">α</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </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 number of the data type indicated in Table <a
|
|
|
href="#x9-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 983--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 983--><p class="noindent" >the local portion of the sparse matrix <span
|
|
|
class="cmmi-10">A</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: an object of type <a
|
|
|
href="userhtmlse3.html#spdata"><span
|
|
|
class="cmtt-10">psb</span><span
|
|
|
class="cmtt-10">_Tspmat</span><span
|
|
|
class="cmtt-10">_type</span></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 989--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 989--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>. The
|
|
|
rank of <span
|
|
|
class="cmmi-10">x </span>must be the same of <span
|
|
|
class="cmmi-10">y</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 999--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">beta</span> </dt><dd
|
|
|
class="description">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 999--><p class="noindent" >the scalar <span
|
|
|
class="cmmi-10">β</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </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 number of the data type indicated in Table <a
|
|
|
href="#x9-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1004--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1004--><p class="noindent" >the local portion of global dense matrix <span
|
|
|
class="cmmi-10">y</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">inout</span>.<br
|
|
|
class="newline" />Specified as: a rank one or two array or an object of type
|
|
|
<a
|
|
|
href="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>. The
|
|
|
rank of <span
|
|
|
class="cmmi-10">y </span>must be the same of <span
|
|
|
class="cmmi-10">x</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1014--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1014--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 1019--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">trans</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1019--><p class="noindent" >indicates what kind of operation to perform.
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 1021--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">trans = N</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1021--><p class="noindent" >the operation is specified by equation <a
|
|
|
href="#x9-67001r1">1<!--tex4ht:ref: eq:f90spmm_no_tra --></a>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1022--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">trans = T</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1022--><p class="noindent" >the operation is specified by equation <a
|
|
|
href="#x9-67002r2">2<!--tex4ht:ref: eq:f90spmm_tra --></a>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1024--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">trans = C</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1024--><p class="noindent" >the operation is specified by equation <a
|
|
|
href="#x9-67003r3">3<!--tex4ht:ref: eq:f90spmm_con --></a></dd></dl>
|
|
|
<!--l. 1027--><p class="noindent" >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" />Default: <span
|
|
|
class="cmmi-10">trans </span>= <span
|
|
|
class="cmmi-10">N</span><br
|
|
|
class="newline" />Specified as: a character variable.
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1050--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">work</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1050--><p class="noindent" >work array.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">local </span><br
|
|
|
class="newline" />Type: <span
|
|
|
class="cmbx-10">optional</span><br
|
|
|
class="newline" />Intent: <span
|
|
|
class="cmbx-10">inout</span>.<br
|
|
|
class="newline" />Specified as: a rank one array of the same type of <span
|
|
|
class="cmmi-10">x </span>and <span
|
|
|
class="cmmi-10">y </span>with the TARGET
|
|
|
attribute.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1057--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1057--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1058--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1058--><p class="noindent" >the local portion of result matrix <span
|
|
|
class="cmmi-10">y</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">inout</span>.<br
|
|
|
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
|
|
|
in Table <a
|
|
|
href="#x9-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1065--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1065--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.13 </span> <a
|
|
|
id="x9-680004.13"></a>psb_spsm — Triangular System Solve</h4>
|
|
|
<!--l. 1081--><p class="noindent" >This subroutine computes the Triangular System Solve:
|
|
|
<div class="eqnarray">
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml21x.png" alt="y ← αT- 1x + βy
|
|
|
y ← αDT -1x +βy
|
|
|
- 1
|
|
|
y ← αT Dx +βy
|
|
|
y ← αT- Tx+ βy
|
|
|
y ← αDT -Tx + βy
|
|
|
y ← αT- TDx + βy
|
|
|
- H
|
|
|
y ← αT x +βy
|
|
|
y ← αDT -Hx + βy
|
|
|
y ← αT- HDx + βy
|
|
|
" class="math-display" ></div>
|
|
|
</div>
|
|
|
<!--l. 1096--><p class="indent" > where:
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 1098--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmmi-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1098--><p class="noindent" >is the global dense matrix <span
|
|
|
class="cmmi-10">x</span><sub><span
|
|
|
class="cmr-7">:</span><span
|
|
|
class="cmmi-7">,</span><span
|
|
|
class="cmr-7">:</span></sub>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1099--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmmi-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1099--><p class="noindent" >is the global dense matrix <span
|
|
|
class="cmmi-10">y</span><sub><span
|
|
|
class="cmr-7">:</span><span
|
|
|
class="cmmi-7">,</span><span
|
|
|
class="cmr-7">:</span></sub>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1100--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmmi-10">T</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1100--><p class="noindent" >is the global sparse block triangular submatrix <span
|
|
|
class="cmmi-10">T</span>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1101--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmmi-10">D</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1101--><p class="noindent" >is the scaling diagonal matrix.</dd></dl>
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 1104--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_spsm</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">t</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br
|
|
|
class="newline" /><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_spsm</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">t</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">trans</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">unit</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">choice</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">diag</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">work</span><span style="color:#000000">)</span></code><br
|
|
|
class="newline" />
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 1107--><p class="indent" > <a
|
|
|
id="x9-68002r13"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 1108--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-13" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-13-1g"><col
|
|
|
id="TBL-13-1"><col
|
|
|
id="TBL-13-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">T</span>, <span
|
|
|
class="cmmi-10">x</span>, <span
|
|
|
class="cmmi-10">y</span>, <span
|
|
|
class="cmmi-10">D</span>, <span
|
|
|
class="cmmi-10">α</span>, <span
|
|
|
class="cmmi-10">β </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-13-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Subroutine</span></td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-13-2-2"
|
|
|
class="td11">psb_spsm </td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-13-3-2"
|
|
|
class="td11">psb_spsm </td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-13-4-2"
|
|
|
class="td11">psb_spsm </td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-13-5-2"
|
|
|
class="td11">psb_spsm </td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 13: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-68002r13 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 1126--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1126--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1127--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1127--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1128--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">alpha</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1128--><p class="noindent" >the scalar <span
|
|
|
class="cmmi-10">α</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </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 number of the data type indicated in Table <a
|
|
|
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1134--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">t</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1134--><p class="noindent" >the global portion of the sparse matrix <span
|
|
|
class="cmmi-10">T</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: an object type specified in <span
|
|
|
class="tcrm-1000"><EFBFBD></span> <a
|
|
|
href="userhtmlse3.html#x8-90003">3<!--tex4ht:ref: sec:datastruct --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1141--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1141--><p class="noindent" >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="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>. The
|
|
|
rank of <span
|
|
|
class="cmmi-10">x </span>must be the same of <span
|
|
|
class="cmmi-10">y</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1151--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">beta</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1151--><p class="noindent" >the scalar <span
|
|
|
class="cmmi-10">β</span>.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">global </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 number of the data type indicated in Table <a
|
|
|
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1156--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1156--><p class="noindent" >the local portion of global dense matrix <span
|
|
|
class="cmmi-10">y</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">inout</span>.<br
|
|
|
class="newline" />Specified as: a rank one or two array or an object of type
|
|
|
<a
|
|
|
href="userhtmlse3.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> containing numbers of type specified in Table <a
|
|
|
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>. The
|
|
|
rank of <span
|
|
|
class="cmmi-10">y </span>must be the same of <span
|
|
|
class="cmmi-10">x</span>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1166--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1166--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 1171--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">trans</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1171--><p class="noindent" >specify with <span
|
|
|
class="cmti-10">unitd </span>the operation to perform.
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 1173--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">trans = ’N’</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1173--><p class="noindent" >the operation is with no transposed matrix
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1174--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">trans = ’T’</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1174--><p class="noindent" >the operation is with transposed matrix.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1175--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">trans = ’C’</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1175--><p class="noindent" >the operation is with conjugate transposed matrix.</dd></dl>
|
|
|
<!--l. 1177--><p class="noindent" >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" />Default: <span
|
|
|
class="cmmi-10">trans </span>= <span
|
|
|
class="cmmi-10">N</span><br
|
|
|
class="newline" />Specified as: a character variable.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1182--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">unitd</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1182--><p class="noindent" >specify with <span
|
|
|
class="cmti-10">trans </span>the operation to perform.
|
|
|
|
|
|
|
|
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 1184--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">unitd = ’U’</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1184--><p class="noindent" >the operation is with no scaling
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1185--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">unitd = ’L’</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1185--><p class="noindent" >the operation is with left scaling
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1186--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">unitd = ’R’</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1186--><p class="noindent" >the operation is with right scaling.</dd></dl>
|
|
|
<!--l. 1188--><p class="noindent" >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" />Default: <span
|
|
|
class="cmmi-10">unitd </span>= <span
|
|
|
class="cmmi-10">U</span><br
|
|
|
class="newline" />Specified as: a character variable.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1193--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">choice</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1193--><p class="noindent" >specifies the update of overlap elements to be performed on exit:
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 1196--><p class="noindent" >
|
|
|
</dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1196--><p class="noindent" ><code class="lstinline"><span style="color:#000000">psb_none_</span></code>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1197--><p class="noindent" >
|
|
|
</dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1197--><p class="noindent" ><code class="lstinline"><span style="color:#000000">psb_sum_</span></code>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1198--><p class="noindent" >
|
|
|
</dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1198--><p class="noindent" ><code class="lstinline"><span style="color:#000000">psb_avg_</span></code>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1199--><p class="noindent" >
|
|
|
</dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1199--><p class="noindent" ><code class="lstinline"><span style="color:#000000">psb_square_root_</span></code></dd></dl>
|
|
|
<!--l. 1201--><p class="noindent" >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" />Default: <code class="lstinline"><span style="color:#000000">psb_avg_</span></code><br
|
|
|
class="newline" />Specified as: an integer variable.
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1206--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">diag</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1206--><p class="noindent" >the diagonal scaling matrix.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">local </span><br
|
|
|
class="newline" />Type: <span
|
|
|
class="cmbx-10">optional</span><br
|
|
|
class="newline" />Intent: <span
|
|
|
class="cmbx-10">in</span>.<br
|
|
|
class="newline" />Default: <span
|
|
|
class="cmmi-10">diag</span>(1) = 1(<span
|
|
|
class="cmmi-10">noscaling</span>)<br
|
|
|
class="newline" />Specified as: a rank one array containing numbers of the type indicated in
|
|
|
Table <a
|
|
|
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1213--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">work</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1213--><p class="noindent" >a work array. <br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">local </span><br
|
|
|
class="newline" />Type: <span
|
|
|
class="cmbx-10">optional</span><br
|
|
|
class="newline" />Intent: <span
|
|
|
class="cmbx-10">inout</span>.<br
|
|
|
class="newline" />Specified as: a rank one array of the same type of <span
|
|
|
class="cmmi-10">x </span>with the TARGET
|
|
|
attribute.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1220--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1220--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1221--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1221--><p class="noindent" >the local portion of global dense matrix <span
|
|
|
class="cmmi-10">y</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">inout</span>.<br
|
|
|
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
|
|
|
in Table <a
|
|
|
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1231--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1231--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.14 </span> <a
|
|
|
id="x9-690004.14"></a>psb_gemlt — Entrywise Product</h4>
|
|
|
<!--l. 1247--><p class="noindent" >This function computes the entrywise product between two vectors <span
|
|
|
class="cmmi-10">x </span>and
|
|
|
<span
|
|
|
class="cmmi-10">y</span>
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml22x.png" alt="dot ← x(i)y(i).
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 1249--><p class="nopar" >
|
|
|
<!--l. 1251--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_gemlt</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 1254--><p class="indent" > <a
|
|
|
id="x9-69001r14"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 1255--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-14" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-14-1g"><col
|
|
|
id="TBL-14-1"><col
|
|
|
id="TBL-14-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">dot</span>, <span
|
|
|
class="cmmi-10">x</span>, <span
|
|
|
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-14-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Function</span></td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-2-2"
|
|
|
class="td11">psb_gemlt</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-3-2"
|
|
|
class="td11">psb_gemlt</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-14-4-2"
|
|
|
class="td11">psb_gemlt</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-5-2"
|
|
|
class="td11">psb_gemlt</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 14: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-69001r14 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 1271--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1271--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1272--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1272--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1273--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1273--><p class="noindent" >the local portion of global dense vector <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: an object of type <a
|
|
|
href="userhtmlse3.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> containing numbers of
|
|
|
type specified in Table <a
|
|
|
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1283--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1283--><p class="noindent" >the local portion of global dense vector <span
|
|
|
class="cmmi-10">y</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: an object of type <a
|
|
|
href="userhtmlse3.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> containing numbers of
|
|
|
type specified in Table <a
|
|
|
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1293--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1293--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 1298--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1298--><p class="noindent" >
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1299--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1299--><p class="noindent" >the local portion of result submatrix <span
|
|
|
class="cmmi-10">y</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">inout</span>.<br
|
|
|
class="newline" />Specified as: an object of type <a
|
|
|
href="userhtmlse3.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> containing numbers of
|
|
|
the type indicated in Table <a
|
|
|
href="#x9-69001r14">14<!--tex4ht:ref: tab:f90mlt --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1305--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1305--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.15 </span> <a
|
|
|
id="x9-700004.15"></a>psb_gediv — Entrywise Division</h4>
|
|
|
<!--l. 1314--><p class="noindent" >This function computes the entrywise division between two vectors <span
|
|
|
class="cmmi-10">x </span>and
|
|
|
<span
|
|
|
class="cmmi-10">y</span>
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml23x.png" alt="∕ ← x(i)∕y(i).
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 1316--><p class="nopar" >
|
|
|
<!--l. 1318--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_gediv</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">[</span><span style="color:#000000">flag</span><span style="color:#000000">)</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 1321--><p class="indent" > <a
|
|
|
id="x9-70001r15"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 1322--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-15" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-15-1g"><col
|
|
|
id="TBL-15-1"><col
|
|
|
id="TBL-15-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">∕</span>, <span
|
|
|
class="cmmi-10">x</span>, <span
|
|
|
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-15-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Function</span></td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-15-2-2"
|
|
|
class="td11">psb_gediv</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-15-3-2"
|
|
|
class="td11">psb_gediv</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-15-4-2"
|
|
|
class="td11">psb_gediv</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-15-5-2"
|
|
|
class="td11">psb_gediv</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 15: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-70001r15 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 1338--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1338--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1339--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1339--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1340--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1340--><p class="noindent" >the local portion of global dense vector <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: an object of type <a
|
|
|
href="userhtmlse3.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> containing numbers of
|
|
|
type specified in Table <a
|
|
|
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1350--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1350--><p class="noindent" >the local portion of global dense vector <span
|
|
|
class="cmmi-10">y</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: an object of type <a
|
|
|
href="userhtmlse3.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> containing numbers of
|
|
|
type specified in Table <a
|
|
|
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1360--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1360--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 1365--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">flag</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1365--><p class="noindent" >check if any of the <span
|
|
|
class="cmmi-10">y</span>(<span
|
|
|
class="cmmi-10">i</span>) = 0, and in case returns error halting the
|
|
|
computation.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">local </span><br
|
|
|
class="newline" />Type: <span
|
|
|
class="cmbx-10">optional </span>Intent: <span
|
|
|
class="cmbx-10">in</span>.<br
|
|
|
class="newline" />Specified as: the logical value <code class="lstinline"><span style="color:#000000">flag</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code>
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1370--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1370--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1371--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1371--><p class="noindent" >the local portion of result submatrix <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">inout</span>.<br
|
|
|
class="newline" />Specified as: an object of type <a
|
|
|
href="userhtmlse3.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> containing numbers of
|
|
|
the type indicated in Table <a
|
|
|
href="#x9-69001r14">14<!--tex4ht:ref: tab:f90mlt --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1377--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1377--><p class="noindent" >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>
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">4.16 </span> <a
|
|
|
id="x9-710004.16"></a>psb_geinv — Entrywise Inversion</h4>
|
|
|
<!--l. 1386--><p class="noindent" >This function computes the entrywise inverse of a vector <span
|
|
|
class="cmmi-10">x </span>and puts it into
|
|
|
<span
|
|
|
class="cmmi-10">y</span>
|
|
|
<div class="math-display" >
|
|
|
<img
|
|
|
src="userhtml24x.png" alt="∕ ← 1∕x(i).
|
|
|
" class="math-display" ></div>
|
|
|
<!--l. 1388--><p class="nopar" >
|
|
|
<!--l. 1390--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_geinv</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">[</span><span style="color:#000000">flag</span><span style="color:#000000">)</span></code>
|
|
|
<div class="table">
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 1393--><p class="indent" > <a
|
|
|
id="x9-71001r16"></a><hr class="float"><div class="float"
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="center"
|
|
|
>
|
|
|
<!--l. 1394--><p class="noindent" >
|
|
|
<div class="tabular"> <table id="TBL-16" class="tabular"
|
|
|
|
|
|
><colgroup id="TBL-16-1g"><col
|
|
|
id="TBL-16-1"><col
|
|
|
id="TBL-16-2"></colgroup><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-1-1"
|
|
|
class="td11"><span
|
|
|
class="cmmi-10">∕</span>, <span
|
|
|
class="cmmi-10">x</span>, <span
|
|
|
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-16-1-2"
|
|
|
class="td11"><span
|
|
|
class="cmbx-10">Function</span></td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-2-1"
|
|
|
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-16-2-2"
|
|
|
class="td11">psb_geinv</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-3-1"
|
|
|
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-16-3-2"
|
|
|
class="td11">psb_geinv</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-4-1"
|
|
|
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-16-4-2"
|
|
|
class="td11">psb_geinv</td>
|
|
|
</tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-5-1"
|
|
|
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-16-5-2"
|
|
|
class="td11">psb_geinv</td>
|
|
|
</tr><tr
|
|
|
class="hline"><td><hr></td><td><hr></td></tr><tr
|
|
|
style="vertical-align:baseline;" id="TBL-16-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-6-1"
|
|
|
class="td11"> </td></tr></table> </div></div>
|
|
|
<br /> <div class="caption"
|
|
|
><span class="id">Table 16: </span><span
|
|
|
class="content">Data types</span></div><!--tex4ht:label?: x9-71001r16 -->
|
|
|
|
|
|
|
|
|
|
|
|
</div><hr class="endfloat" />
|
|
|
</div>
|
|
|
<dl class="description"><dt class="description">
|
|
|
<!--l. 1410--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1410--><p class="noindent" >Synchronous.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1411--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1411--><p class="noindent" >
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1412--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">x</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1412--><p class="noindent" >the local portion of global dense vector <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: an object of type <a
|
|
|
href="userhtmlse3.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> containing numbers of
|
|
|
type specified in Table <a
|
|
|
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1422--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">desc</span><span
|
|
|
class="cmbx-10">_a</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1422--><p class="noindent" >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="userhtmlse3.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">
|
|
|
<!--l. 1427--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">flag</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1427--><p class="noindent" >check if any of the <span
|
|
|
class="cmmi-10">x</span>(<span
|
|
|
class="cmmi-10">i</span>) = 0, and in case returns error halting the
|
|
|
computation.<br
|
|
|
class="newline" />Scope: <span
|
|
|
class="cmbx-10">local </span><br
|
|
|
class="newline" />Type: <span
|
|
|
class="cmbx-10">optional </span>Intent: <span
|
|
|
class="cmbx-10">in</span>.<br
|
|
|
class="newline" />Specified as: the logical value <code class="lstinline"><span style="color:#000000">flag</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code>
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1432--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1432--><p class="noindent" >
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1433--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">y</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1433--><p class="noindent" >the local portion of result submatrix <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">out</span>.<br
|
|
|
class="newline" />Specified as: an object of type <a
|
|
|
href="userhtmlse3.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> containing numbers of
|
|
|
the type indicated in Table <a
|
|
|
href="#x9-71001r16">16<!--tex4ht:ref: tab:f90inv --></a>.
|
|
|
</dd><dt class="description">
|
|
|
<!--l. 1439--><p class="noindent" >
|
|
|
<span
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
class="description">
|
|
|
<!--l. 1439--><p class="noindent" >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. 1--><div class="crosslinks"><p class="noindent">[<a
|
|
|
href="userhtmlse8.html" >next</a>] [<a
|
|
|
href="userhtmlse3.html" >prev</a>] [<a
|
|
|
href="userhtmlse3.html#tailuserhtmlse3.html" >prev-tail</a>] [<a
|
|
|
href="userhtmlse4.html" >front</a>] [<a
|
|
|
href="userhtml.html#userhtmlse7.html" >up</a>] </p></div>
|
|
|
<!--l. 1--><p class="indent" > <a
|
|
|
id="tailuserhtmlse4.html"></a>
|
|
|
</body></html>
|