# Uses of Class
org.apfloat.spi.ArrayAccess

Packages that use ArrayAccess
Package
Description
org.apfloat.aparapi
Transforms for using a GPU via the aparapi library.
org.apfloat.internal
Default implementations of the apfloat Service Provider Interface (SPI).
org.apfloat.spi
The apfloat Service Provider Interface (SPI).

- ## Uses of ArrayAccess in org.apfloat.aparapi

  Methods in org.apfloat.aparapi that return ArrayAccess
  Modifier and Type
  Method
  Description
  `protected ArrayAccess`
  ColumnTwoPassFNTStrategy.`getColumns(DataStorage dataStorage, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  ColumnTwoPassFNTStrategy.`getRows(DataStorage dataStorage, int startRow, int rows, int columns)`
  Methods in org.apfloat.aparapi with parameters of type ArrayAccess
  Modifier and Type
  Method
  Description
  `default void`
  IntAparapiNTTStrategy.`afterTransform(ArrayAccess arrayAccess)`
  `default void`
  LongAparapiNTTStrategy.`afterTransform(ArrayAccess arrayAccess)`
  `default void`
  IntAparapiNTTStrategy.`beforeTransform(ArrayAccess arrayAccess)`
  `default void`
  LongAparapiNTTStrategy.`beforeTransform(ArrayAccess arrayAccess)`
  `protected void`
  ColumnSixStepFNTStrategy.`multiplyElements(ArrayAccess arrayAccess, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  `protected void`
  ColumnTwoPassFNTStrategy.`multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  `void`
  IntAparapiNTTStepStrategy.`multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  `void`
  LongAparapiNTTStepStrategy.`multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  `void`
  IntAparapiMatrixStrategy.`permuteToDoubleWidth(ArrayAccess arrayAccess, int n1, int n2)`
  `void`
  LongAparapiMatrixStrategy.`permuteToDoubleWidth(ArrayAccess arrayAccess, int n1, int n2)`
  `void`
  IntAparapiMatrixStrategy.`permuteToHalfWidth(ArrayAccess arrayAccess, int n1, int n2)`
  `void`
  LongAparapiMatrixStrategy.`permuteToHalfWidth(ArrayAccess arrayAccess, int n1, int n2)`
  `void`
  IntAparapiNTTStepStrategy.`transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  Transform the rows or columns of the data matrix.
  `void`
  LongAparapiNTTStepStrategy.`transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  Transform the rows or columns of the data matrix.
  `void`
  IntAparapiMatrixStrategy.`transpose(ArrayAccess arrayAccess, int n1, int n2)`
  `void`
  LongAparapiMatrixStrategy.`transpose(ArrayAccess arrayAccess, int n1, int n2)`
  `protected void`
  ColumnSixStepFNTStrategy.`transposeInitial(ArrayAccess arrayAccess, int n1, int n2, boolean isInverse)`
  `protected void`
  ColumnSixStepFNTStrategy.`transposeMiddle(ArrayAccess arrayAccess, int n1, int n2, boolean isInverse)`
  `void`
  IntAparapiMatrixStrategy.`transposeSquare(ArrayAccess arrayAccess, int n1, int n2)`
  `void`
  LongAparapiMatrixStrategy.`transposeSquare(ArrayAccess arrayAccess, int n1, int n2)`

- ## Uses of ArrayAccess in org.apfloat.internal

  Subclasses of ArrayAccess in org.apfloat.internal
  Modifier and Type
  Class
  Description
  `class`
  `DoubleMemoryArrayAccess`
  Array access class based on a `double[]`.
  `class`
  `FloatMemoryArrayAccess`
  Array access class based on a `float[]`.
  `class`
  `IntMemoryArrayAccess`
  Array access class based on a `int[]`.
  `class`
  `LongMemoryArrayAccess`
  Array access class based on a `long[]`.
  Methods in org.apfloat.internal that return ArrayAccess
  Modifier and Type
  Method
  Description
  `protected abstract ArrayAccess`
  DiskDataStorage.`createArrayAccess(int mode, int startColumn, int columns, int rows)`
  Create an empty ArrayAccess.
  `protected ArrayAccess`
  DoubleDiskDataStorage.`createArrayAccess(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  FloatDiskDataStorage.`createArrayAccess(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  IntDiskDataStorage.`createArrayAccess(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  LongDiskDataStorage.`createArrayAccess(int mode, int startColumn, int columns, int rows)`
  `protected abstract ArrayAccess`
  DiskDataStorage.`createTransposedArrayAccess(int mode, int startColumn, int columns, int rows)`
  Create an empty transposed ArrayAccess.
  `protected ArrayAccess`
  DoubleDiskDataStorage.`createTransposedArrayAccess(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  FloatDiskDataStorage.`createTransposedArrayAccess(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  IntDiskDataStorage.`createTransposedArrayAccess(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  LongDiskDataStorage.`createTransposedArrayAccess(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  TwoPassFNTStrategy.`getColumns(DataStorage dataStorage, int startColumn, int columns, int rows)`
  Get a block of column data.
  `protected ArrayAccess`
  TwoPassFNTStrategy.`getRows(DataStorage dataStorage, int startRow, int rows, int columns)`
  Get a block of row data.
  `protected ArrayAccess`
  DiskDataStorage.`implGetArray(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  DoubleDiskDataStorage.`implGetArray(int mode, long offset, int length)`
  `protected ArrayAccess`
  DoubleMemoryDataStorage.`implGetArray(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  DoubleMemoryDataStorage.`implGetArray(int mode, long offset, int length)`
  `protected ArrayAccess`
  FloatDiskDataStorage.`implGetArray(int mode, long offset, int length)`
  `protected ArrayAccess`
  FloatMemoryDataStorage.`implGetArray(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  FloatMemoryDataStorage.`implGetArray(int mode, long offset, int length)`
  `protected ArrayAccess`
  IntDiskDataStorage.`implGetArray(int mode, long offset, int length)`
  `protected ArrayAccess`
  IntMemoryDataStorage.`implGetArray(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  IntMemoryDataStorage.`implGetArray(int mode, long offset, int length)`
  `protected ArrayAccess`
  LongDiskDataStorage.`implGetArray(int mode, long offset, int length)`
  `protected ArrayAccess`
  LongMemoryDataStorage.`implGetArray(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  LongMemoryDataStorage.`implGetArray(int mode, long offset, int length)`
  `protected ArrayAccess`
  DiskDataStorage.`implGetTransposedArray(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  DoubleMemoryDataStorage.`implGetTransposedArray(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  FloatMemoryDataStorage.`implGetTransposedArray(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  IntMemoryDataStorage.`implGetTransposedArray(int mode, int startColumn, int columns, int rows)`
  `protected ArrayAccess`
  LongMemoryDataStorage.`implGetTransposedArray(int mode, int startColumn, int columns, int rows)`
  `ArrayAccess`
  DoubleMemoryArrayAccess.`subsequence(int offset, int length)`
  `ArrayAccess`
  FloatMemoryArrayAccess.`subsequence(int offset, int length)`
  `ArrayAccess`
  IntMemoryArrayAccess.`subsequence(int offset, int length)`
  `ArrayAccess`
  LongMemoryArrayAccess.`subsequence(int offset, int length)`
  Methods in org.apfloat.internal with parameters of type ArrayAccess
  Modifier and Type
  Method
  Description
  `void`
  NTTStrategyDecorator.`afterTransform(ArrayAccess arrayAccess)`
  Finish processing the data after the (inverse) transform.
  `void`
  NTTStrategyDecorator.`beforeTransform(ArrayAccess arrayAccess)`
  Prepare the data for the (inverse) transform.
  `protected ParallelRunnable`
  DoubleNTTStepStrategy.`createMultiplyElementsParallelRunnable(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  Create a ParallelRunnable object for multiplying the elements of the matrix.
  `protected ParallelRunnable`
  FloatNTTStepStrategy.`createMultiplyElementsParallelRunnable(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  Create a ParallelRunnable object for multiplying the elements of the matrix.
  `protected ParallelRunnable`
  IntNTTStepStrategy.`createMultiplyElementsParallelRunnable(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  Create a ParallelRunnable object for multiplying the elements of the matrix.
  `protected ParallelRunnable`
  LongNTTStepStrategy.`createMultiplyElementsParallelRunnable(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  Create a ParallelRunnable object for multiplying the elements of the matrix.
  `protected ParallelRunnable`
  DoubleNTTStepStrategy.`createTransformRowsParallelRunnable(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  Create a ParallelRunnable object for transforming the rows of the matrix.
  `protected ParallelRunnable`
  FloatNTTStepStrategy.`createTransformRowsParallelRunnable(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  Create a ParallelRunnable object for transforming the rows of the matrix.
  `protected ParallelRunnable`
  IntNTTStepStrategy.`createTransformRowsParallelRunnable(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  Create a ParallelRunnable object for transforming the rows of the matrix.
  `protected ParallelRunnable`
  LongNTTStepStrategy.`createTransformRowsParallelRunnable(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  Create a ParallelRunnable object for transforming the rows of the matrix.
  `void`
  DoubleTableFNT.`inverseTableFNT(ArrayAccess arrayAccess, double[] wTable, int[] permutationTable)`
  Inverse (Cooley-Tukey) fast Number Theoretic Transform.
  `void`
  FloatTableFNT.`inverseTableFNT(ArrayAccess arrayAccess, float[] wTable, int[] permutationTable)`
  Inverse (Cooley-Tukey) fast Number Theoretic Transform.
  `void`
  IntTableFNT.`inverseTableFNT(ArrayAccess arrayAccess, int[] wTable, int[] permutationTable)`
  Inverse (Cooley-Tukey) fast Number Theoretic Transform.
  `void`
  LongTableFNT.`inverseTableFNT(ArrayAccess arrayAccess, long[] wTable, int[] permutationTable)`
  Inverse (Cooley-Tukey) fast Number Theoretic Transform.
  `void`
  DoubleNTTStepStrategy.`multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  `void`
  FloatNTTStepStrategy.`multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  `void`
  IntNTTStepStrategy.`multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  `void`
  LongNTTStepStrategy.`multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  `protected void`
  SixStepFNTStrategy.`multiplyElements(ArrayAccess arrayAccess, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)`
  Multiply each matrix element by a power of the n:th root of unity.
  `protected void`
  TwoPassFNTStrategy.`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`
  DoubleMatrixStrategy.`permuteToDoubleWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a n1/2 x 2*n2 matrix.
  `void`
  FloatMatrixStrategy.`permuteToDoubleWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a n1/2 x 2*n2 matrix.
  `void`
  IntMatrixStrategy.`permuteToDoubleWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a n1/2 x 2*n2 matrix.
  `void`
  LongMatrixStrategy.`permuteToDoubleWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a n1/2 x 2*n2 matrix.
  `void`
  DoubleMatrixStrategy.`permuteToHalfWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a 2*n1 x n2/2 matrix.
  `void`
  FloatMatrixStrategy.`permuteToHalfWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a 2*n1 x n2/2 matrix.
  `void`
  IntMatrixStrategy.`permuteToHalfWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a 2*n1 x n2/2 matrix.
  `void`
  LongMatrixStrategy.`permuteToHalfWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a 2*n1 x n2/2 matrix.
  `default void`
  DecorableNTTStrategy.`postTransform(ArrayAccess arrayAccess)`
  Finish processing the data after the (inverse) transform.
  `default void`
  DecorableNTTStrategy.`preTransform(ArrayAccess arrayAccess)`
  Prepare the data for the (inverse) transform.
  `protected void`
  DiskDataStorage.`setArray(ArrayAccess arrayAccess, int startColumn, int columns, int rows)`
  Write the data back to the same location in the file that was retrieved with `DiskDataStorage.implGetArray(int,int,int,int)`.
  `protected void`
  DiskDataStorage.`setTransposedArray(ArrayAccess arrayAccess, int startColumn, int columns, int rows)`
  Write the data back to the same location in the file that was retrieved with `DiskDataStorage.implGetTransposedArray(int,int,int,int)`.
  `void`
  DoubleTableFNT.`tableFNT(ArrayAccess arrayAccess, double[] wTable, int[] permutationTable)`
  Forward (Sande-Tukey) fast Number Theoretic Transform.
  `void`
  FloatTableFNT.`tableFNT(ArrayAccess arrayAccess, float[] wTable, int[] permutationTable)`
  Forward (Sande-Tukey) fast Number Theoretic Transform.
  `void`
  IntTableFNT.`tableFNT(ArrayAccess arrayAccess, int[] wTable, int[] permutationTable)`
  Forward (Sande-Tukey) fast Number Theoretic Transform.
  `void`
  LongTableFNT.`tableFNT(ArrayAccess arrayAccess, long[] wTable, int[] permutationTable)`
  Forward (Sande-Tukey) fast Number Theoretic Transform.
  `protected void`
  TwoPassFNTStrategy.`transformColumns(ArrayAccess arrayAccess, int length, int count, boolean isInverse, int modulus)`
  Transform the columns of the data matrix.
  `protected void`
  SixStepFNTStrategy.`transformFirst(ArrayAccess arrayAccess, int length, int count, boolean isInverse, int modulus)`
  The first transform of the rows (or columns) of the data matrix.
  `void`
  DoubleNTTStepStrategy.`transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  `void`
  FloatNTTStepStrategy.`transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  `void`
  IntNTTStepStrategy.`transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  `void`
  LongNTTStepStrategy.`transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  `protected void`
  TwoPassFNTStrategy.`transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, int modulus)`
  Transform the rows of the data matrix.
  `protected void`
  SixStepFNTStrategy.`transformSecond(ArrayAccess arrayAccess, int length, int count, boolean isInverse, int modulus)`
  The second transform of the rows (or columns) of the data matrix.
  `void`
  DoubleMatrixStrategy.`transpose(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a n1 x n2 matrix.
  `void`
  FloatMatrixStrategy.`transpose(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a n1 x n2 matrix.
  `void`
  IntMatrixStrategy.`transpose(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a n1 x n2 matrix.
  `void`
  LongMatrixStrategy.`transpose(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a n1 x n2 matrix.
  `protected void`
  SixStepFNTStrategy.`transposeFinal(ArrayAccess arrayAccess, int n1, int n2, boolean isInverse)`
  The final transpose of the forward transform, or the initial transpose of the inverse transform.
  `protected void`
  SixStepFNTStrategy.`transposeInitial(ArrayAccess arrayAccess, int n1, int n2, boolean isInverse)`
  The initial transpose of the forward transform, or the final transpose of the inverse transform, to transpose the columns of the matrix to be rows.
  `protected void`
  SixStepFNTStrategy.`transposeMiddle(ArrayAccess arrayAccess, int n1, int n2, boolean isInverse)`
  The second transpose of either the forward or inverse transform.
  `void`
  DoubleMatrixStrategy.`transposeSquare(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a square n1 x n1 block of n1 x n2 matrix.
  `void`
  FloatMatrixStrategy.`transposeSquare(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a square n1 x n1 block of n1 x n2 matrix.
  `void`
  IntMatrixStrategy.`transposeSquare(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a square n1 x n1 block of n1 x n2 matrix.
  `void`
  LongMatrixStrategy.`transposeSquare(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a square n1 x n1 block of n1 x n2 matrix.

- ## Uses of ArrayAccess in org.apfloat.spi

  Methods in org.apfloat.spi that return ArrayAccess
  Modifier and Type
  Method
  Description
  `final ArrayAccess`
  DataStorage.`getArray(int mode, int startColumn, int columns, int rows)`
  Maps a block of data to a memory array when the data is treated as a matrix.
  `final ArrayAccess`
  DataStorage.`getArray(int mode, long offset, int length)`
  Gets an array access to the data of this data storage when the data is treated as a linear block.
  `final ArrayAccess`
  DataStorage.`getTransposedArray(int mode, int startColumn, int columns, int rows)`
  Maps a transposed block of data to a memory array when the data is treated as a matrix.
  `protected abstract ArrayAccess`
  DataStorage.`implGetArray(int mode, int startColumn, int columns, int rows)`
  Maps a block of data to a memory array when the data is treated as a matrix.
  `protected abstract ArrayAccess`
  DataStorage.`implGetArray(int mode, long offset, int length)`
  Gets an array access to the data of this data storage when it is treated as a linear block.
  `protected abstract ArrayAccess`
  DataStorage.`implGetTransposedArray(int mode, int startColumn, int columns, int rows)`
  Maps a transposed block of data to a memory array when the data is treated as a matrix.
  `abstract ArrayAccess`
  ArrayAccess.`subsequence(int offset, int length)`
  Create a sub-sequence view of this array access.
  Methods in org.apfloat.spi with parameters of type ArrayAccess
  Modifier and Type
  Method
  Description
  `void`
  NTTStepStrategy.`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`
  MatrixStrategy.`permuteToDoubleWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a n1/2 x 2*n2 matrix.
  `void`
  MatrixStrategy.`permuteToHalfWidth(ArrayAccess arrayAccess, int n1, int n2)`
  Permute the rows of the n1 x n2 matrix so that it is shaped like a 2*n1 x n2/2 matrix.
  `void`
  NTTStepStrategy.`transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus)`
  Transform the rows of the data matrix.
  `void`
  MatrixStrategy.`transpose(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a n1 x n2 matrix.
  `void`
  MatrixStrategy.`transposeSquare(ArrayAccess arrayAccess, int n1, int n2)`
  Transpose a square n1 x n1 block of n1 x n2 matrix.