Whether a dense coefficient matrix operand is nonsymmetric, symmetric or Hermitian, the entire two-dimensional global array is distributed onto the process grid.
For symmetric and Hermitian matrix operands, only the upper (UPLO='U') triangle or the lower (UPLO='L') triangle of the global array is accessed. For triangular matrix operands, the argument UPLO defines whether the matrix is upper (UPLO='U') or lower (UPLO='L') triangular. Only the elements of the relevant triangle of the global array are accessed. Some ScaLAPACK routines have an option to handle unit triangular matrix operands (that is, triangular matrices with diagonal elements = 1). This option is specified by an argument DIAG . If DIAG = 'U' (Unit triangular), the local array elements corresponding to the diagonal elements of the matrix are not referenced by the ScaLAPACK routines.
If an input matrix operand is Hermitian , the imaginary parts of the diagonal elements are zero, and thus the imaginary parts of the corresponding local arrays need not be set, but are assumed to be zero. If an output matrix operand is Hermitian, the imaginary parts of the diagonal elements are set to zero (e.g., PCPOTRF and PCHETRD).
Similarly, if the matrix is upper Hessenberg, the local array elements corresponding to global array elements below the first subdiagonal are not referenced.
Vectors can be distributed across process rows or across process columns. A vector of length N distributed across process rows is distributed the same way that a N-by-1 matrix is. A vector of length N distributed across process columns is distributed the same way that a 1-by-N matrix is.
Within some ScaLAPACK routines, some vectors are replicated in one dimension and distributed in the other dimension. These vectors always aligned with one dimension of another distributed matrix. For example, in PDSYTRD, the vectors D, E, and TAU are replicated across process rows, distributed across process columns, and aligned with the distributed matrix operand A. The data distribution of these replicated vectors is inferred from the distribution of the matrix they are associated with. There is no specific array descriptors for these particular vectors at the present time.