'\" te .\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved .TH mlib_MatrixTranspose_U8 3MLIB "2 Mar 2007" "SunOS 5.11" "mediaLib Library Functions" .SH NAME mlib_MatrixTranspose_U8, mlib_MatrixTranspose_U8C, mlib_MatrixTranspose_S8, mlib_MatrixTranspose_S8C, mlib_MatrixTranspose_S16, mlib_MatrixTranspose_S16C, mlib_MatrixTranspose_S32, mlib_MatrixTranspose_S32C \- matrix transpose, in place .SH SYNOPSIS .LP .nf cc [ \fIflag\fR... ] \fIfile\fR... \fB-lmlib\fR [ \fIlibrary\fR... ] #include \fBmlib_status\fR \fBmlib_MatrixTranspose_U8\fR(\fBmlib_u8 *\fR\fIxz\fR, \fBmlib_s32\fR \fImn\fR); .fi .LP .nf \fBmlib_status\fR \fBmlib_MatrixTranspose_U8C\fR(\fBmlib_u8 *\fR\fIxz\fR, \fBmlib_s32\fR \fImn\fR); .fi .LP .nf \fBmlib_status\fR \fBmlib_MatrixTranspose_S8\fR(\fBmlib_s8 *\fR\fIxz\fR, \fBmlib_s32\fR \fImn\fR); .fi .LP .nf \fBmlib_status\fR \fBmlib_MatrixTranspose_S8C\fR(\fBmlib_s8 *\fR\fIxz\fR, \fBmlib_s32\fR \fImn\fR); .fi .LP .nf \fBmlib_status\fR \fBmlib_MatrixTranspose_S16\fR(\fBmlib_s16 *\fR\fIxz\fR, \fBmlib_s32\fR \fImn\fR); .fi .LP .nf \fBmlib_status\fR \fBmlib_MatrixTranspose_S16C\fR(\fBmlib_s16 *\fR\fIxz\fR, \fBmlib_s32\fR \fImn\fR); .fi .LP .nf \fBmlib_status\fR \fBmlib_MatrixTranspose_S32\fR(\fBmlib_s32 *\fR\fIxz\fR, \fBmlib_s32\fR \fImn\fR); .fi .LP .nf \fBmlib_status\fR \fBmlib_MatrixTranspose_S32C\fR(\fBmlib_s32 *\fR\fIxz\fR, \fBmlib_s32\fR \fImn\fR); .fi .SH DESCRIPTION .sp .LP Each of these functions performs an in-place transpose of a square matrix. .sp .LP For real data, the following pseudo code applies: .sp .in +2 .nf for (i = 1; i < mn; i++) { for (j = 0; j < i; i++) { tmp = xz[i*mn + j]; xz[i*mn + j] = xz[j*mn + i]; xz[j*mn + i] = tmp; } } .fi .in -2 .sp .LP For complex data, the following pseudo code applies: .sp .in +2 .nf for (i = 1; i < mn; i++) { for (j = 0; j < i; i++) { tmp0 = xz[2*(i*mn + j)]; tmp1 = xz[2*(i*mn + j) + 1]; xz[2*(i*mn + j)] = xz[2*(j*mn + i)]; xz[2*(i*mn + j) + 1] = xz[2*(j*mn + i) + 1]; xz[2*(j*mn + i)] = tmp0; xz[2*(j*mn + i) + 1] = tmp1; } } .fi .in -2 .SH PARAMETERS .sp .LP Each of the functions takes the following arguments: .sp .ne 2 .mk .na \fB\fIxz\fR\fR .ad .RS 6n .rt Pointer to the source and destination matrix. .RE .sp .ne 2 .mk .na \fB\fImn\fR\fR .ad .RS 6n .rt Number of rows and columns in the matrix. .RE .SH RETURN VALUES .sp .LP Each of the functions returns \fBMLIB_SUCCESS\fR if successful. Otherwise it returns \fBMLIB_FAILURE\fR. .SH ATTRIBUTES .sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . ATTRIBUTE TYPEATTRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe .TE .SH SEE ALSO .sp .LP mlib_MatrixTranspose_U8(3MLIB), \fBattributes\fR(5)