libxsmm_itrans Interface

public interface libxsmm_itrans

Overloaded TRANSPOSE routines (in-place form).


Contents


Module Procedures

public pure subroutine libxsmm_itrans_p0(matrix, typesize, m, n, ldi, ldo)

Transpose a matrix (in-place form).

Arguments

Type IntentOptional Attributes Name
type(C_PTR), intent(in) :: matrix
integer(kind=C_INT), intent(in) :: typesize
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldi
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldo

public subroutine libxsmm_itrans_d1(matrix, m, n, ldi, ldo)

Transpose a matrix (in-place form, DP/rank-1).

Arguments

Type IntentOptional Attributes Name
real(kind=C_DOUBLE), intent(inout), TARGET :: matrix(*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldi
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldo

public subroutine libxsmm_itrans_d2(matrix, m, n, ld)

Transpose a matrix (in-place form, DP/rank-2).

Arguments

Type IntentOptional Attributes Name
real(kind=C_DOUBLE), intent(inout), TARGET :: matrix(ld,*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: ld

public subroutine libxsmm_itrans_s1(matrix, m, n, ldi, ldo)

Transpose a matrix (in-place form, SP/rank-1).

Arguments

Type IntentOptional Attributes Name
real(kind=C_FLOAT), intent(inout), TARGET :: matrix(*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldi
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldo

public subroutine libxsmm_itrans_s2(matrix, m, n, ld)

Transpose a matrix (in-place form, SP/rank-2).

Arguments

Type IntentOptional Attributes Name
real(kind=C_FLOAT), intent(inout), TARGET :: matrix(ld,*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: ld