[next] [prev] [prev-tail] [tail] [up]

### 4 Computational routines

#### 4.1 psb_geaxpby — General Dense Matrix Sum

This subroutine is an interface to the computational kernel for dense matrix sum:

`call psb_geaxpby(alpha, x, beta, y, desc_a, info)`

x, y, α, β | Subroutine
Short Precision Real | psb_geaxpby
Long Precision Real | psb_geaxpby
Short Precision Complex | psb_geaxpby
Long Precision Complex | psb_geaxpby

Table 1: Data types

Type:

  Synchronous.

On Entry

alpha

  the scalar α.
  Scope: global
  Type: required
  Intent: in.
  Specified as: a number of the data type indicated in Table 1.

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 1. The rank of x must be the same of y.

beta

  the scalar β.
  Scope: global
  Type: required
  Intent: in.
  Specified as: a number of the data type indicated in Table 1.

y

  the local portion of the global dense matrix y.
  Scope: local
  Type: required
  Intent: inout.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of the type indicated in Table 1. The rank of y must be the same of x.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

On Return

y

  the local portion of result submatrix y.
  Scope: local
  Type: required
  Intent: inout.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of the type indicated in Table 1.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.2 psb_gedot — Dot Product

This function computes dot product between two vectors x and y.
If x and y are real vectors it computes dot-product as:

Else if x and y are complex vectors then it computes dot-product as:

`psb_gedot(x, y, desc_a, info [,global])`

dot, x, y | Function
Short Precision Real | psb_gedot
Long Precision Real | psb_gedot
Short Precision Complex | psb_gedot
Long Precision Complex | psb_gedot

Table 2: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 2. The rank of x must be the same of y.

y

  the local portion of global dense matrix y.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 2. The rank of y must be the same of x.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type 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 x and y.
  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:

          vres(1) = psb_gedot(x1,y1,desc_a,info,global=.false.)
          vres(2) = psb_gedot(x2,y2,desc_a,info,global=.false.)
          vres(3) = psb_gedot(x3,y3,desc_a,info,global=.false.)
          call psb_sum(ctxt,vres(1:3))

   In this way the global communication, which for small sizes is a latency-bound operation, is invoked only once.

#### 4.3 psb_gedots — Generalized Dot Product

This subroutine computes a series of dot products among the columns of two dense matrices x and y:

If the matrices are complex, then the usual convention applies, i.e. the conjugate transpose of x is used. If x and y are of rank one, then res is a scalar, else it is a rank one array.

`call psb_gedots(res, x, y, desc_a, info)`

res, x, y | Subroutine
Short Precision Real | psb_gedots
Long Precision Real | psb_gedots
Short Precision Complex | psb_gedots
Long Precision Complex | psb_gedots

Table 3: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 3. The rank of x must be the same of y.

y

  the local portion of global dense matrix y.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 3. The rank of y must be the same of x.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

On Return

res

  is the dot product of vectors x and y.
  Scope: global
  Intent: out.
  Specified as: a number or a rank-one array 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.

#### 4.4 psb_normi — Infinity-Norm of Vector

This function computes the infinity-norm of a vector x.
If x is a real vector it computes infinity norm as:

else if x is a complex vector then it computes the infinity-norm as:

`psb_geamax(x, desc_a, info [,global])`
`psb_normi(x, desc_a, info [,global])`

amax | x | Function
Short Precision Real | Short Precision Real | psb_geamax
Long Precision Real | Long Precision Real | psb_geamax
Short Precision Real | Short Precision Complex | psb_geamax
Long Precision Real | Long Precision Complex | psb_geamax

Table 4: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 4.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type 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 infinity norm of vector x.
  Scope: global unless the optional variable `global=.false.` has been specified
  Specified as: a long precision real number.

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 norms at the same time; in this case, it is possible to improve the runtime efficiency by using the following scheme:

          vres(1) = psb_geamax(x1,desc_a,info,global=.false.)
          vres(2) = psb_geamax(x2,desc_a,info,global=.false.)
          vres(3) = psb_geamax(x3,desc_a,info,global=.false.)
          call psb_amx(ctxt,vres(1:3))

   In this way the global communication, which for small sizes is a latency-bound operation, is invoked only once.

#### 4.5 psb_geamaxs — Generalized Infinity Norm

This subroutine computes a series of infinity norms on the columns of a dense matrix x:

`call psb_geamaxs(res, x, desc_a, info)`

res | x | Subroutine
Short Precision Real | Short Precision Real | psb_geamaxs
Long Precision Real | Long Precision Real | psb_geamaxs
Short Precision Real | Short Precision Complex | psb_geamaxs
Long Precision Real | Long Precision Complex | psb_geamaxs

Table 5: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 5.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

On Return

res

  is the infinity norm of the columns of x.
  Scope: global
  Intent: out.
  Specified as: a number or a rank-one array of long precision real numbers.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.6 psb_norm1 — 1-Norm of Vector

This function computes the 1-norm of a vector x.
If x is a real vector it computes 1-norm as:

else if x is a complex vector then it computes 1-norm as:

`psb_geasum(x, desc_a, info [,global])` `psb_norm1(x, desc_a, info [,global])`

asum | x | Function
Short Precision Real | Short Precision Real | psb_geasum
Long Precision Real | Long Precision Real | psb_geasum
Short Precision Real | Short Precision Complex | psb_geasum
Long Precision Real | Long Precision Complex | psb_geasum

Table 6: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 6.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type 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 1-norm of vector x.
  Scope: global unless the optional variable `global=.false.` has been specified
  Specified as: a long precision real number.

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 norms at the same time; in this case, it is possible to improve the runtime efficiency by using the following scheme:

          vres(1) = psb_geasum(x1,desc_a,info,global=.false.)
          vres(2) = psb_geasum(x2,desc_a,info,global=.false.)
          vres(3) = psb_geasum(x3,desc_a,info,global=.false.)
          call psb_sum(ctxt,vres(1:3))

   In this way the global communication, which for small sizes is a latency-bound operation, is invoked only once.

#### 4.7 psb_geasums — Generalized 1-Norm of Vector

This subroutine computes a series of 1-norms on the columns of a dense matrix x:

This function computes the 1-norm of a vector x.
If x is a real vector it computes 1-norm as:

else if x is a complex vector then it computes 1-norm as:

`call psb_geasums(res, x, desc_a, info)`

res | x | Subroutine
Short Precision Real | Short Precision Real | psb_geasums
Long Precision Real | Long Precision Real | psb_geasums
Short Precision Real | Short Precision Complex | psb_geasums
Long Precision Real | Long Precision Complex | psb_geasums

Table 7: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 7.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

On Return

res

  contains the 1-norm of (the columns of) x.
  Scope: global
  Intent: out.
  Short as: a long precision real number. Specified as: a long precision real number.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.8 psb_norm2 — 2-Norm of Vector

This function computes the 2-norm of a vector x.
If x is a real vector it computes 2-norm as:

else if x is a complex vector then it computes 2-norm as:

nrm2 | x | Function
Short Precision Real | Short Precision Real | psb_genrm2
Long Precision Real | Long Precision Real | psb_genrm2
Short Precision Real | Short Precision Complex | psb_genrm2
Long Precision Real | Long Precision Complex | psb_genrm2

Table 8: Data types

`psb_genrm2(x, desc_a, info [,global])`
`psb_norm2(x, desc_a, info [,global])`

Type:

  Synchronous.

On Entry

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 8.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type 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 2-norm of vector x.
  Scope: global unless the optional variable `global=.false.` has been specified
  Type: required
  Specified as: a long precision real number.

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 norms at the same time; in this case, it is possible to improve the runtime efficiency by using the following scheme:

          vres(1) = psb_genrm2(x1,desc_a,info,global=.false.)
          vres(2) = psb_genrm2(x2,desc_a,info,global=.false.)
          vres(3) = psb_genrm2(x3,desc_a,info,global=.false.)
          call psb_nrm2(ctxt,vres(1:3))

   In this way the global communication, which for small sizes is a latency-bound operation, is invoked only once.

#### 4.9 psb_genrm2s — Generalized 2-Norm of Vector

This subroutine computes a series of 2-norms on the columns of a dense matrix x:

`call psb_genrm2s(res, x, desc_a, info)`

res | x | Subroutine
Short Precision Real | Short Precision Real | psb_genrm2s
Long Precision Real | Long Precision Real | psb_genrm2s
Short Precision Real | Short Precision Complex | psb_genrm2s
Long Precision Real | Long Precision Complex | psb_genrm2s

Table 9: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 9.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

On Return

res

  contains the 1-norm of (the columns of) x.
  Scope: global
  Intent: out.
  Specified as: a long precision real number.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.10 psb_norm1 — 1-Norm of Sparse Matrix

This function computes the 1-norm of a matrix A:

where:

A

  represents the global matrix A

A | Function
Short Precision Real | psb_spnrm1
Long Precision Real | psb_spnrm1
Short Precision Complex | psb_spnrm1
Long Precision Complex | psb_spnrm1

Table 10: Data types

    psb_spnrm1(A, desc_a, info)
    psb_norm1(A, desc_a, info)

Type:

  Synchronous.

On Entry

a

  the local portion of the global sparse matrix A.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_Tspmat_type.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

On Return

Function value

  is the 1-norm of sparse submatrix A.
  Scope: global
  Specified as: a long precision real number.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.11 psb_normi — Infinity Norm of Sparse Matrix

This function computes the infinity-norm of a matrix A:

where:

A

  represents the global matrix A

A | Function
Short Precision Real | psb_spnrmi
Long Precision Real | psb_spnrmi
Short Precision Complex | psb_spnrmi
Long Precision Complex | psb_spnrmi

Table 11: Data types

    psb_spnrmi(A, desc_a, info)
    psb_normi(A, desc_a, info)

Type:

  Synchronous.

On Entry

a

  the local portion of the global sparse matrix A.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_Tspmat_type.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

On Return

Function value

  is the infinity-norm of sparse submatrix A.
  Scope: global
  Specified as: a long precision real number.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.12 psb_spmm — Sparse Matrix by Dense Matrix Product

This subroutine computes the Sparse Matrix by Dense Matrix Product:

| (1)

| (2)

| (3)

where:

x

  is the global dense matrix x:,:

y

  is the global dense matrix y:,:

A

  is the global sparse matrix A

A, x, y, α, β | Subroutine
Short Precision Real | psb_spmm
Long Precision Real | psb_spmm
Short Precision Complex | psb_spmm
Long Precision Complex | psb_spmm

Table 12: Data types

`call psb_spmm(alpha, a, x, beta, y, desc_a, info)`
`call psb_spmm(alpha, a, x, beta, y,desc_a, info, trans, work)`

Type:

  Synchronous.

On Entry

alpha

  the scalar α.
  Scope: global
  Type: required
  Intent: in.
  Specified as: a number of the data type indicated in Table 12.

a

  the local portion of the sparse matrix A.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_Tspmat_type.

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 12. The rank of x must be the same of y.

beta

  the scalar β.
  Scope: global
  Type: required
  Intent: in.
  Specified as: a number of the data type indicated in Table 12.

y

  the local portion of global dense matrix y.
  Scope: local
  Type: required
  Intent: inout.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 12. The rank of y must be the same of x.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

trans

  indicates what kind of operation to perform.

  trans = N

    the operation is specified by equation 1

  trans = T

    the operation is specified by equation 2

  trans = C

    the operation is specified by equation 3

  Scope: global
  Type: optional
  Intent: in.
  Default: trans = N
  Specified as: a character variable.

work

  work array.
  Scope: local
  Type: optional
  Intent: inout.
  Specified as: a rank one array of the same type of x and y with the TARGET attribute.

On Return

y

  the local portion of result matrix y.
  Scope: local
  Type: required
  Intent: inout.
  Specified as: an array of rank one or two containing numbers of type specified in Table 12.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.13 psb_spsm — Triangular System Solve

This subroutine computes the Triangular System Solve:

where:

x

  is the global dense matrix x:,:

y

  is the global dense matrix y:,:

T

  is the global sparse block triangular submatrix T

D

  is the scaling diagonal matrix.

`call psb_spsm(alpha, t, x, beta, y, desc_a, info)`
`call psb_spsm(alpha, t, x, beta, y, desc_a, info, trans, unit, choice, diag, work)`

T, x, y, D, α, β | Subroutine
Short Precision Real | psb_spsm
Long Precision Real | psb_spsm
Short Precision Complex | psb_spsm
Long Precision Complex | psb_spsm

Table 13: Data types

Type:

  Synchronous.

On Entry

alpha

  the scalar α.
  Scope: global
  Type: required
  Intent: in.
  Specified as: a number of the data type indicated in Table 13.

t

  the global portion of the sparse matrix T.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object type specified in § 3.

x

  the local portion of global dense matrix x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 13. The rank of x must be the same of y.

beta

  the scalar β.
  Scope: global
  Type: required
  Intent: in.
  Specified as: a number of the data type indicated in Table 13.

y

  the local portion of global dense matrix y.
  Scope: local
  Type: required
  Intent: inout.
  Specified as: a rank one or two array or an object of type psb_T_vect_type containing numbers of type specified in Table 13. The rank of y must be the same of x.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

trans

  specify with unitd the operation to perform.

  trans = ’N’

    the operation is with no transposed matrix

  trans = ’T’

    the operation is with transposed matrix.

  trans = ’C’

    the operation is with conjugate transposed matrix.

  Scope: global
  Type: optional
  Intent: in.
  Default: trans = N
  Specified as: a character variable.

unitd

  specify with trans the operation to perform.

  unitd = ’U’

    the operation is with no scaling

  unitd = ’L’

    the operation is with left scaling

  unitd = ’R’

    the operation is with right scaling.

  Scope: global
  Type: optional
  Intent: in.
  Default: unitd = U
  Specified as: a character variable.

choice

  specifies the update of overlap elements to be performed on exit:

    `psb_none_`

    `psb_sum_`

    `psb_avg_`

    `psb_square_root_`

  Scope: global
  Type: optional
  Intent: in.
  Default: `psb_avg_`
  Specified as: an integer variable.

diag

  the diagonal scaling matrix.
  Scope: local
  Type: optional
  Intent: in.
  Default: diag(1) = 1(noscaling)
  Specified as: a rank one array containing numbers of the type indicated in Table 13.

work

  a work array.
  Scope: local
  Type: optional
  Intent: inout.
  Specified as: a rank one array of the same type of x with the TARGET attribute.

On Return

y

  the local portion of global dense matrix y.
  Scope: local
  Type: required
  Intent: inout.
  Specified as: an array of rank one or two containing numbers of type specified in Table 13.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.14 psb_gemlt — Entrywise Product

This function computes the entrywise product between two vectors x and y

`psb_gemlt(x, y, desc_a, info)`

dot, x, y | Function
Short Precision Real | psb_gemlt
Long Precision Real | psb_gemlt
Short Precision Complex | psb_gemlt
Long Precision Complex | psb_gemlt

Table 14: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense vector x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_T_vect_type containing numbers of type specified in Table 2.

y

  the local portion of global dense vector y.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_T_vect_type containing numbers of type specified in Table 2.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

On Return

y

  the local portion of result submatrix y.
  Scope: local
  Type: required
  Intent: inout.
  Specified as: an object of type psb_T_vect_type containing numbers of the type indicated in Table 14.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.15 psb_gediv — Entrywise Division

This function computes the entrywise division between two vectors x and y

`psb_gediv(x, y, desc_a, info, [flag)`

∕, x, y | Function
Short Precision Real | psb_gediv
Long Precision Real | psb_gediv
Short Precision Complex | psb_gediv
Long Precision Complex | psb_gediv

Table 15: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense vector x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_T_vect_type containing numbers of type specified in Table 2.

y

  the local portion of global dense vector y.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_T_vect_type containing numbers of type specified in Table 2.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

flag

  check if any of the y(i) = 0, and in case returns error halting the computation.
  Scope: local
  Type: optional Intent: in.
  Specified as: the logical value `flag=.true.`

On Return

x

  the local portion of result submatrix x.
  Scope: local
  Type: required
  Intent: inout.
  Specified as: an object of type psb_T_vect_type containing numbers of the type indicated in Table 14.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

#### 4.16 psb_geinv — Entrywise Inversion

This function computes the entrywise inverse of a vector x and puts it into y

`psb_geinv(x, y, desc_a, info, [flag)`

∕, x, y | Function
Short Precision Real | psb_geinv
Long Precision Real | psb_geinv
Short Precision Complex | psb_geinv
Long Precision Complex | psb_geinv

Table 16: Data types

Type:

  Synchronous.

On Entry

x

  the local portion of global dense vector x.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_T_vect_type containing numbers of type specified in Table 2.

desc_a

  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: an object of type psb_desc_type.

flag

  check if any of the x(i) = 0, and in case returns error halting the computation.
  Scope: local
  Type: optional Intent: in.
  Specified as: the logical value `flag=.true.`

On Return

y

  the local portion of result submatrix x.
  Scope: local
  Type: required
  Intent: out.
  Specified as: an object of type psb_T_vect_type containing numbers of the type indicated in Table 16.

info

  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

[next] [prev] [prev-tail] [front] [up]