You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* When transforming an input array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having two "columns" corresponding to the real and imaginary parts of a folded complex vector and where each "column" has `M` elements.
71
+
*
72
+
* Accordingly, the following is a logical view of an input array (zero-based indexing) which contains `L = 3` transforms and in which each "column" sub-sequence has length `M = 4`:
73
+
*
74
+
* ```text
75
+
* j = 0 ("even" column) j = 1 ("odd" column)
76
+
* k = 0 ─┬────────────────────────────────────┬────────────────────────────────────┐
* @param {NonNegativeInteger} offset - index offset
74
-
* @returns {NonNegativeInteger} index
102
+
* @param {NonNegativeInteger} i - index of an element within a sub-sequence
103
+
* @param {NonNegativeInteger} j - index specifying which of the two complex halves we are in (either `0` or `1`)
104
+
* @param {NonNegativeInteger} k - index of the sub-sequence being transformed
105
+
* @param {NonNegativeInteger} M - sub-sequence length
106
+
* @param {integer} stride - stride length of the input array
107
+
* @param {NonNegativeInteger} offset - index specifying the first indexed element in the input array
108
+
* @returns {NonNegativeInteger} computed index
75
109
*/
76
-
functioniptr(a1,a2,a3,ido,offset){// FIXME: update with more descriptive parameter descriptions
77
-
return(((a3*2)+a2)*ido)+a1+offset;// FIXME: support strides
110
+
functioniptr(i,j,k,M,stride,offset){
111
+
varn=i+((j+(k*2))*M);
112
+
return(n*stride)+offset;
78
113
}
79
114
80
115
/**
81
-
* Resolves an index into the output array.
116
+
* Resolves an index in the output array.
117
+
*
118
+
* ## Notes
119
+
*
120
+
* When writing to an output array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having two "columns" corresponding to the real and imaginary parts of a folded complex vector and where each "column" has `M` elements.
121
+
*
122
+
* Accordingly, the following is a logical view of an input array (zero-based indexing) which contains `L = 3` transforms and in which each "column" sub-sequence has length `M = 4`:
82
123
*
83
124
* @private
84
-
* @param {NonNegativeInteger} a1 - first parameter
85
-
* @param {NonNegativeInteger} a2 - second parameter
86
-
* @param {NonNegativeInteger} a3 - third parameter
0 commit comments