Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
/* eslint-disable max-lines */

import cffti = require( '@stdlib/fft/base/fftpack/ndarray/generic/cffti' );
import cosqi = require( '@stdlib/fft/base/fftpack/ndarray/generic/cosqi' );
import rffti = require( '@stdlib/fft/base/fftpack/ndarray/generic/rffti' );
import sinqi = require( '@stdlib/fft/base/fftpack/ndarray/generic/sinqi' );

/**
* Interface describing the `generic` namespace.
Expand Down Expand Up @@ -67,6 +69,49 @@ interface Namespace {
*/
cffti: typeof cffti;

/**
* Initializes a workspace array for performing a quarter-wave cosine transform on a one-dimensional ndarray.
*
* ## Notes
*
* - The function expects the following ndarrays:
*
* - a one-dimensional input ndarray.
* - a zero-dimensional ndarray containing the length of the sequence to transform.
*
* @param arrays - array-like object containing ndarrays
* @returns input ndarray
*
* @example
* var Float64Vector = require( '@stdlib/ndarray/vector/float64' );
* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
* var Slice = require( '@stdlib/slice/ctor' );
* var slice = require( '@stdlib/ndarray/slice' );
*
* var N = 8;
* var len = scalar2ndarray( N, {
* 'dtype': 'int32'
* });
*
* var w = new Float64Vector( ( 3*N ) + 34 );
*
* var out = ns.cosqi( [ w, len ] );
* // returns <ndarray>
*
* var bool = ( out === w );
* // returns true
*
* var cosineTable = slice( w, new Slice( 0, N ) );
* // returns <ndarray>[ ~0.98, ~0.92, ~0.83, ~0.7, ~0.56, ~0.38, ~0.2, ~0.0 ]
*
* var twiddleFactors = slice( w, new Slice( 2*N, 3*N ) );
* // returns <ndarray>[ ~0.707, ~0.707, 0, 0, 0, 0, 0, 0 ]
*
* var factors = slice( w, new Slice( 3*N, ( 3*N ) + 4 ) );
* // returns <ndarray>[ 8, 2, 2, 4 ]
*/
cosqi: typeof cosqi;

/**
* Initializes a workspace array for performing a real-valued Fourier transform on a one-dimensional ndarray.
*
Expand Down Expand Up @@ -106,6 +151,49 @@ interface Namespace {
* // returns <ndarray>[ 8, 2, 2, 4 ]
*/
rffti: typeof rffti;

/**
* Initializes a workspace array for performing a quarter-wave sine transform on a one-dimensional ndarray.
*
* ## Notes
*
* - The function expects the following ndarrays:
*
* - a one-dimensional input ndarray.
* - a zero-dimensional ndarray containing the length of the sequence to transform.
*
* @param arrays - array-like object containing ndarrays
* @returns input ndarray
*
* @example
* var Float64Vector = require( '@stdlib/ndarray/vector/float64' );
* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
* var Slice = require( '@stdlib/slice/ctor' );
* var slice = require( '@stdlib/ndarray/slice' );
*
* var N = 8;
* var len = scalar2ndarray( N, {
* 'dtype': 'int32'
* });
*
* var w = new Float64Vector( ( 3*N ) + 34 );
*
* var out = ns.sinqi( [ w, len ] );
* // returns <ndarray>
*
* var bool = ( out === w );
* // returns true
*
* var cosineTable = slice( w, new Slice( 0, N ) );
* // returns <ndarray>[ ~0.98, ~0.92, ~0.83, ~0.7, ~0.56, ~0.38, ~0.2, ~0.0 ]
*
* var twiddleFactors = slice( w, new Slice( 2*N, 3*N ) );
* // returns <ndarray>[ ~0.707, ~0.707, 0, 0, 0, 0, 0, 0 ]
*
* var factors = slice( w, new Slice( 3*N, ( 3*N ) + 4 ) );
* // returns <ndarray>[ 8, 2, 2, 4 ]
*/
sinqi: typeof sinqi;
}

/**
Expand Down