This function computes dot product between two vectors and
.
If and are real vectors
it computes dot-product as:
Else if and are complex vectors then it computes dot-product as:
psb_gedot(x, y, desc_a, info [,global])
Table 2:
Data types
, , |
Function |
Short Precision Real |
psb_gedot |
Long Precision Real |
psb_gedot |
Short Precision Complex |
psb_gedot |
Long Precision Complex |
psb_gedot |
|
- Type:
- Synchronous.
- On Entry
-
- x
- the local portion of global dense matrix
.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
Table 2. The rank of must be the same of .
- y
- the local portion of global dense matrix
.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
Table 2. The rank of must be the same of .
- desc_a
- contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type descdatapsb_desc_type.
- global
- Specifies whether the computation should include the
global reduction across all processes.
Scope: global
Type: optional.
Intent: in.
Specified as: a logical scalar.
Default: global=.true.
- On Return
-
- Function value
- is the dot product of vectors and .
Scope: global unless the optional variable
global=.false.
has been specified
Specified as: a number of the data type indicated in Table 2.
- info
- Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
Notes
- 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:
In this way the global communication, which for small sizes is a
latency-bound operation, is invoked only once.