## psb_gedot -- Dot Product

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 vdata`psb_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 vdata`psb_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 descdata`psb_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

1. 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.