---
name: "stfttp"
section: "3lapack"
platform: "linux"
package: "liblapack-doc"
version: "3.2.1-8"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/stfttp/3lapack"
---

# stfttp(3lapack)

copies a triangular matrix A from rectangular full packed format (TF) to standard packed format (TP)

## NAME

STFTTP - copies a triangular matrix A from rectangular full packed format (TF) to standard packed format (TP)

## SYNOPSIS

- SUBROUTINE STFTTP(

  TRANSR, UPLO, N, ARF, AP, INFO )

- CHARACTER

  TRANSR, UPLO

- INTEGER

  INFO, N

- REAL

  AP( 0: \* ), ARF( 0: \* )

## PURPOSE

STFTTP copies a triangular matrix A from rectangular full packed format (TF) to standard packed format (TP).

## ARGUMENTS

- TRANSR (input) CHARACTER

  \= 'N':  ARF is in Normal format;\
   \= 'T':  ARF is in Transpose format;

- UPLO (input) CHARACTER

  \= 'U':  A is upper triangular;\
   \= 'L':  A is lower triangular.

- N (input) INTEGER

  The order of the matrix A. N \>= 0.

- ARF (input) REAL array, dimension ( N\*(N+1)/2 ),

  On entry, the upper or lower triangular matrix A stored in RFP format. For a further discussion see Notes below.

- AP (output) REAL array, dimension ( N\*(N+1)/2 ),

  On exit, the upper or lower triangular matrix A, packed columnwise in a linear array. The j-th column of A is stored in the array AP as follows: if UPLO = 'U', AP(i + (j-1)\*j/2) = A(i,j) for 1\<=i\<=j; if UPLO = 'L', AP(i + (j-1)\*(2n-j)/2) = A(i,j) for j\<=i\<=n.

- INFO (output) INTEGER

  \= 0:  successful exit\
   \< 0:  if INFO = -i, the i-th argument had an illegal value

## FURTHER DETAILS

We first consider Rectangular Full Packed (RFP) Format when N is even. We give an example where N = 6.\
\
     AP is Upper             AP is Lower\
\
  00 01 02 03 04 05       00\
\
     11 12 13 14 15       10 11\
\
        22 23 24 25       20 21 22\
\
           33 34 35       30 31 32 33\
\
              44 45       40 41 42 43 44\
\
                 55       50 51 52 53 54 55\
 Let TRANSR = 'N'. RFP holds AP as follows:\
 For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last three columns of AP upper. The lower triangle A(4:6,0:2) consists of the transpose of the first three columns of AP upper.\
 For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first three columns of AP lower. The upper triangle A(0:2,0:2) consists of the transpose of the last three columns of AP lower.\
 This covers the case N even and TRANSR = 'N'.\
\
        RFP A                   RFP A\
\
       03 04 05                33 43 53\
\
       13 14 15                00 44 54\
\
       23 24 25                10 11 55\
\
       33 34 35                20 21 22\
\
       00 44 45                30 31 32\
\
       01 11 55                40 41 42\
\
       02 12 22                50 51 52\
 Now let TRANSR = 'T'. RFP A in both UPLO cases is just the transpose of RFP A above. One therefore gets:\
\
          RFP A                   RFP A\
\
    03 13 23 33 00 01 02    33 00 10 20 30 40 50\
\
    04 14 24 34 44 11 12    43 44 11 21 31 41 51\
\
    05 15 25 35 45 55 22    53 54 55 22 32 42 52\
 We first consider Rectangular Full Packed (RFP) Format when N is odd. We give an example where N = 5.\
\
    AP is Upper                 AP is Lower\
\
  00 01 02 03 04              00\
\
     11 12 13 14              10 11\
\
        22 23 24              20 21 22\
\
           33 34              30 31 32 33\
\
              44              40 41 42 43 44\
 Let TRANSR = 'N'. RFP holds AP as follows:\
 For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last three columns of AP upper. The lower triangle A(3:4,0:1) consists of the transpose of the first two columns of AP upper.\
 For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first three columns of AP lower. The upper triangle A(0:1,1:2) consists of the transpose of the last two columns of AP lower.\
 This covers the case N odd and TRANSR = 'N'.\
\
        RFP A                   RFP A\
\
       02 03 04                00 33 43\
\
       12 13 14                10 11 44\
\
       22 23 24                20 21 22\
\
       00 33 34                30 31 32\
\
       01 11 44                40 41 42\
 Now let TRANSR = 'T'. RFP A in both UPLO cases is just the transpose of RFP A above. One therefore gets:\
\
          RFP A                   RFP A\
\
    02 12 22 00 01             00 10 20 30 40 50\
\
    03 13 23 33 11             33 11 21 31 41 51\
\
    04 14 24 34 44             43 44 22 32 42 52\
