public interface NTTStepStrategy
Modifier and Type | Method and Description |
---|---|
long |
getMaxTransformLength()
Get the maximum transform length.
|
void |
multiplyElements(ArrayAccess arrayAccess,
int startRow,
int startColumn,
int rows,
int columns,
long length,
long totalTransformLength,
boolean isInverse,
int modulus)
Multiply each matrix element
(i, j) by wi * j / totalTransformLength . |
void |
transformRows(ArrayAccess arrayAccess,
int length,
int count,
boolean isInverse,
boolean permute,
int modulus)
Transform the rows of the data matrix.
|
void multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus) throws ApfloatRuntimeException
(i, j)
by wi * j / totalTransformLength
.
The matrix size is n1 x n2.arrayAccess
- The memory array to multiply.startRow
- Which row in the whole matrix the starting row in the arrayAccess
is.startColumn
- Which column in the whole matrix the starting column in the arrayAccess
is.rows
- The number of rows in the arrayAccess
to multiply.columns
- The number of columns in the matrix (= n2).length
- The length of data in the matrix being transformed.totalTransformLength
- The total transform length, for the scaling factor. Used only for the inverse case.isInverse
- If the multiplication is done for the inverse transform or not.modulus
- Index of the modulus.ApfloatRuntimeException
void transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus) throws ApfloatRuntimeException
ApfloatContext.getNumberOfProcessors()
.arrayAccess
- The memory array to split to rows and to transform.length
- Length of one transform (one row).count
- Number of rows.isInverse
- true
if an inverse transform is performed, false
if a forward transform is performed.permute
- If permutation should be done.modulus
- Index of the modulus.ApfloatRuntimeException
long getMaxTransformLength()
Copyright © 2018. All rights reserved.