libxsmm_matcopy Interface

public interface libxsmm_matcopy

Overloaded MATCOPY routines (2d-copy).


Contents


Module Procedures

public pure subroutine libxsmm_matcopy_p0(output, input, typesize, m, n, ldi, ldo)

Matrix-copy (2-dimensional copy) routine. If the input (optional) is not present, the routine is used to zero-fill the out-matrix.

Arguments

Type IntentOptional Attributes Name
type(C_PTR), intent(in) :: output
type(C_PTR), intent(in), optional :: input
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_matcopy_d1(output, input, m, n, ldi, ldo)

Matrix-copy (2-dimensional copy) routine (DP/rank-1).

Arguments

Type IntentOptional Attributes Name
real(kind=C_DOUBLE), intent(out), TARGET :: output(*)
real(kind=C_DOUBLE), intent(in), optional, TARGET :: input(*)
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_matcopy_d2(output, input, m, n, ldi, ldo)

Matrix-copy (2-dimensional copy) routine (DP/rank-2).

Arguments

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

public subroutine libxsmm_matcopy_s1(output, input, m, n, ldi, ldo)

Matrix-copy (2-dimensional copy) routine (SP/rank-1).

Arguments

Type IntentOptional Attributes Name
real(kind=C_FLOAT), intent(out), TARGET :: output(*)
real(kind=C_FLOAT), intent(in), optional, TARGET :: input(*)
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_matcopy_s2(output, input, m, n, ldi, ldo)

Matrix-copy (2-dimensional copy) routine (SP/rank-2).

Arguments

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