2024-06-07 11:28:06 +08:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "en-US" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=11" / >
< meta name = "generator" content = "Doxygen 1.10.0" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > MLX: mlx/backend/metal/kernels/fft.h File Reference< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< script type = "text/javascript" src = "clipboard.js" > < / script >
< script type = "text/javascript" src = "cookie.js" > < / script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/searchdata.js" > < / script >
< script type = "text/javascript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr id = "projectrow" >
< td id = "projectalign" >
< div id = "projectname" > MLX
< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
< / script >
< div id = "main-nav" > < / div >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< div id = "MSearchResults" >
< div class = "SRPage" >
< div id = "SRIndex" >
< div id = "SRResults" > < / div >
< div class = "SRStatus" id = "Loading" > Loading...< / div >
< div class = "SRStatus" id = "Searching" > Searching...< / div >
< div class = "SRStatus" id = "NoMatches" > No Matches< / div >
< / div >
< / div >
< / div >
< / div >
< div id = "nav-path" class = "navpath" >
< ul >
< li class = "navelem" > < a class = "el" href = "dir_938ab0ecf10b8b860ff766c820f665fd.html" > mlx< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_1d446c9bd3c99228254c9484e0bc5c06.html" > backend< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_d0c977ea65824390717cdb7efc36c157.html" > metal< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_70a37effa88bcbd6b791977fa1e64356.html" > kernels< / a > < / li > < / ul >
< / div >
< / div > <!-- top -->
< div class = "header" >
< div class = "summary" >
< a href = "#define-members" > Macros< / a > |
< a href = "#typedef-members" > Typedefs< / a > |
< a href = "#func-members" > Functions< / a > |
< a href = "#var-members" > Variables< / a > < / div >
< div class = "headertitle" > < div class = "title" > fft.h File Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< div class = "textblock" > < code > #include < metal_common> < / code > < br / >
< code > #include " < a class = "el" href = "radix_8h_source.html" > mlx/backend/metal/kernels/fft/radix.h< / a > " < / code > < br / >
< code > #include " < a class = "el" href = "readwrite_8h_source.html" > mlx/backend/metal/kernels/fft/readwrite.h< / a > " < / code > < br / >
< code > #include " < a class = "el" href = "steel_2defines_8h_source.html" > mlx/backend/metal/kernels/steel/defines.h< / a > " < / code > < br / >
< / div >
< p > < a href = "backend_2metal_2kernels_2fft_8h_source.html" > Go to the source code of this file.< / a > < / p >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "define-members" name = "define-members" > < / a >
Macros< / h2 > < / td > < / tr >
< tr class = "memitem:a7b6e56afa21f022c5e754b000955735a" id = "r_a7b6e56afa21f022c5e754b000955735a" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a7b6e56afa21f022c5e754b000955735a" > MAX_RADIX< / a >       13< / td > < / tr >
< tr class = "separator:a7b6e56afa21f022c5e754b000955735a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a28d683cf067736d76f867f30c066317e" id = "r_a28d683cf067736d76f867f30c066317e" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a28d683cf067736d76f867f30c066317e" > MAX_OUTPUT_SIZE< / a >       18< / td > < / tr >
< tr class = "separator:a28d683cf067736d76f867f30c066317e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2024-07-12 06:32:08 +08:00
< tr class = "memitem:a794032d3a9acff0e31c77c69d0007f10" id = "r_a794032d3a9acff0e31c77c69d0007f10" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a794032d3a9acff0e31c77c69d0007f10" > RADIX_STEP< / a > (radix, < a class = "el" href = "metal_2kernels_2hadamard_8h.html#a590e5366adc78bab4fe44e37885d413f" > radix_func< / a > , num_steps)< / td > < / tr >
2024-06-07 11:28:06 +08:00
< tr class = "separator:a794032d3a9acff0e31c77c69d0007f10" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "typedef-members" name = "typedef-members" > < / a >
Typedefs< / h2 > < / td > < / tr >
< tr class = "memitem:a6ba62eabfd5428644aabf89ddaa0128d" id = "r_a6ba62eabfd5428644aabf89ddaa0128d" > < td class = "memItemLeft" align = "right" valign = "top" > typedef void(*  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a6ba62eabfd5428644aabf89ddaa0128d" > RadixFunc< / a > ) (thread float2 *, thread float2 *)< / td > < / tr >
< tr class = "separator:a6ba62eabfd5428644aabf89ddaa0128d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "func-members" name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
< tr class = "memitem:a278d980ed397e6841ce0af44b9aa4396" id = "r_a278d980ed397e6841ce0af44b9aa4396" > < td class = "memTemplParams" colspan = "2" > template< int radix, < a class = "el" href = "#a6ba62eabfd5428644aabf89ddaa0128d" > RadixFunc< / a > radix_func> < / td > < / tr >
< tr class = "memitem:a278d980ed397e6841ce0af44b9aa4396" > < td class = "memTemplItemLeft" align = "right" valign = "top" > METAL_FUNC void  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "#a278d980ed397e6841ce0af44b9aa4396" > radix_butterfly< / a > (int i, int p, thread float2 *x, thread short *indices, thread float2 *y)< / td > < / tr >
< tr class = "separator:a278d980ed397e6841ce0af44b9aa4396" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aba8d32e0911499671df93678f39da08b" id = "r_aba8d32e0911499671df93678f39da08b" > < td class = "memTemplParams" colspan = "2" > template< int radix, < a class = "el" href = "#a6ba62eabfd5428644aabf89ddaa0128d" > RadixFunc< / a > radix_func> < / td > < / tr >
< tr class = "memitem:aba8d32e0911499671df93678f39da08b" > < td class = "memTemplItemLeft" align = "right" valign = "top" > METAL_FUNC void  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "#aba8d32e0911499671df93678f39da08b" > radix_n_steps< / a > (int i, thread int *p, int m, int n, int num_steps, thread float2 *inputs, thread short *indices, thread float2 *values, threadgroup float2 *< a class = "el" href = "backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697" > buf< / a > )< / td > < / tr >
< tr class = "separator:aba8d32e0911499671df93678f39da08b" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a050ead8fa5cacdaec13d68ca3c0dcb81" id = "r_a050ead8fa5cacdaec13d68ca3c0dcb81" > < td class = "memTemplParams" colspan = "2" > template< bool rader = false> < / td > < / tr >
< tr class = "memitem:a050ead8fa5cacdaec13d68ca3c0dcb81" > < td class = "memTemplItemLeft" align = "right" valign = "top" > METAL_FUNC void  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "#a050ead8fa5cacdaec13d68ca3c0dcb81" > perform_fft< / a > (int fft_idx, thread int *p, int m, int n, threadgroup float2 *< a class = "el" href = "backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697" > buf< / a > )< / td > < / tr >
< tr class = "separator:a050ead8fa5cacdaec13d68ca3c0dcb81" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a4010b0e151e5f01e610e9c32234458c7" id = "r_a4010b0e151e5f01e610e9c32234458c7" > < td class = "memTemplParams" colspan = "2" > template< int tg_mem_size, typename in_T , typename out_T > < / td > < / tr >
< tr class = "memitem:a4010b0e151e5f01e610e9c32234458c7" > < td class = "memTemplItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "#a4010b0e151e5f01e610e9c32234458c7" > fft< / a > (const device in_T *in, device out_T *out, constant const int & n, constant const int & batch_size, uint3 elem, uint3 grid)< / td > < / tr >
< tr class = "separator:a4010b0e151e5f01e610e9c32234458c7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad123452303f6415904f3592f660769b8" id = "r_ad123452303f6415904f3592f660769b8" > < td class = "memTemplParams" colspan = "2" > template< int tg_mem_size, typename in_T , typename out_T > < / td > < / tr >
< tr class = "memitem:ad123452303f6415904f3592f660769b8" > < td class = "memTemplItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "#ad123452303f6415904f3592f660769b8" > rader_fft< / a > (const device in_T *in, device out_T *out, const device float2 *raders_b_q, const device short *raders_g_q, const device short *raders_g_minus_q, constant const int & n, constant const int & batch_size, constant const int & rader_n, uint3 elem, uint3 grid)< / td > < / tr >
< tr class = "separator:ad123452303f6415904f3592f660769b8" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a0abc609e9756475800e996775a96a87e" id = "r_a0abc609e9756475800e996775a96a87e" > < td class = "memTemplParams" colspan = "2" > template< int tg_mem_size, typename in_T , typename out_T > < / td > < / tr >
< tr class = "memitem:a0abc609e9756475800e996775a96a87e" > < td class = "memTemplItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "#a0abc609e9756475800e996775a96a87e" > bluestein_fft< / a > (const device in_T *in, device out_T *out, const device float2 *w_q, const device float2 *w_k, constant const int & length, constant const int & n, constant const int & batch_size, uint3 elem, uint3 grid)< / td > < / tr >
< tr class = "separator:a0abc609e9756475800e996775a96a87e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a6558a8205ee4c3e4767bafa93f7606de" id = "r_a6558a8205ee4c3e4767bafa93f7606de" > < td class = "memTemplParams" colspan = "2" > template< int tg_mem_size, typename in_T , typename out_T , int step, bool real = false> < / td > < / tr >
< tr class = "memitem:a6558a8205ee4c3e4767bafa93f7606de" > < td class = "memTemplItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "#a6558a8205ee4c3e4767bafa93f7606de" > four_step_fft< / a > (const device in_T *in, device out_T *out, constant const int & n1, constant const int & n2, constant const int & batch_size, uint3 elem, uint3 grid)< / td > < / tr >
< tr class = "separator:a6558a8205ee4c3e4767bafa93f7606de" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "var-members" name = "var-members" > < / a >
Variables< / h2 > < / td > < / tr >
< tr class = "memitem:a23a773ae455da5d0b9b5508ee2e7694b" id = "r_a23a773ae455da5d0b9b5508ee2e7694b" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a23a773ae455da5d0b9b5508ee2e7694b" > inv_< / a > < / td > < / tr >
< tr class = "separator:a23a773ae455da5d0b9b5508ee2e7694b" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:abeb0f8d030ee27c89882b87eed13be2d" id = "r_abeb0f8d030ee27c89882b87eed13be2d" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#abeb0f8d030ee27c89882b87eed13be2d" > is_power_of_2_< / a > < / td > < / tr >
< tr class = "separator:abeb0f8d030ee27c89882b87eed13be2d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:acf9b1130c134093453d15eee02683c94" id = "r_acf9b1130c134093453d15eee02683c94" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#acf9b1130c134093453d15eee02683c94" > elems_per_thread_< / a > < / td > < / tr >
< tr class = "separator:acf9b1130c134093453d15eee02683c94" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a5d03e78eedb9a084645f8f63185bcf2f" id = "r_a5d03e78eedb9a084645f8f63185bcf2f" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a5d03e78eedb9a084645f8f63185bcf2f" > rader_m_< / a > < / td > < / tr >
< tr class = "separator:a5d03e78eedb9a084645f8f63185bcf2f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a40c698855591f5d73b0d9258049571a2" id = "r_a40c698855591f5d73b0d9258049571a2" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a40c698855591f5d73b0d9258049571a2" > radix_13_steps_< / a > < / td > < / tr >
< tr class = "separator:a40c698855591f5d73b0d9258049571a2" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:af17a5682878a88283d995f2ca37681e4" id = "r_af17a5682878a88283d995f2ca37681e4" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#af17a5682878a88283d995f2ca37681e4" > radix_11_steps_< / a > < / td > < / tr >
< tr class = "separator:af17a5682878a88283d995f2ca37681e4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aadbf4b8812c1489e78ea7d1184a0fdd9" id = "r_aadbf4b8812c1489e78ea7d1184a0fdd9" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#aadbf4b8812c1489e78ea7d1184a0fdd9" > radix_8_steps_< / a > < / td > < / tr >
< tr class = "separator:aadbf4b8812c1489e78ea7d1184a0fdd9" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a02e428463b66a6e0f059bf8fc4f3a073" id = "r_a02e428463b66a6e0f059bf8fc4f3a073" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a02e428463b66a6e0f059bf8fc4f3a073" > radix_7_steps_< / a > < / td > < / tr >
< tr class = "separator:a02e428463b66a6e0f059bf8fc4f3a073" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a92d77e600661bb6f4a7779b6529733b7" id = "r_a92d77e600661bb6f4a7779b6529733b7" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a92d77e600661bb6f4a7779b6529733b7" > radix_6_steps_< / a > < / td > < / tr >
< tr class = "separator:a92d77e600661bb6f4a7779b6529733b7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a7cea841e54e678c583aeb369ea7bf573" id = "r_a7cea841e54e678c583aeb369ea7bf573" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a7cea841e54e678c583aeb369ea7bf573" > radix_5_steps_< / a > < / td > < / tr >
< tr class = "separator:a7cea841e54e678c583aeb369ea7bf573" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad28408cc4ff0a4f820afd1aa18ca9646" id = "r_ad28408cc4ff0a4f820afd1aa18ca9646" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ad28408cc4ff0a4f820afd1aa18ca9646" > radix_4_steps_< / a > < / td > < / tr >
< tr class = "separator:ad28408cc4ff0a4f820afd1aa18ca9646" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a7b23fe1ca5b7f650cc3e8b03efc55434" id = "r_a7b23fe1ca5b7f650cc3e8b03efc55434" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a7b23fe1ca5b7f650cc3e8b03efc55434" > radix_3_steps_< / a > < / td > < / tr >
< tr class = "separator:a7b23fe1ca5b7f650cc3e8b03efc55434" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ae76b69e0b030b8cf1ee7ca9011f3e504" id = "r_ae76b69e0b030b8cf1ee7ca9011f3e504" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ae76b69e0b030b8cf1ee7ca9011f3e504" > radix_2_steps_< / a > < / td > < / tr >
< tr class = "separator:ae76b69e0b030b8cf1ee7ca9011f3e504" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a7fe88d81170dc4e2e8993c58b887dce6" id = "r_a7fe88d81170dc4e2e8993c58b887dce6" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a7fe88d81170dc4e2e8993c58b887dce6" > rader_13_steps_< / a > < / td > < / tr >
< tr class = "separator:a7fe88d81170dc4e2e8993c58b887dce6" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ae1538cb224d84bfedf6655f8ea05aac8" id = "r_ae1538cb224d84bfedf6655f8ea05aac8" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ae1538cb224d84bfedf6655f8ea05aac8" > rader_11_steps_< / a > < / td > < / tr >
< tr class = "separator:ae1538cb224d84bfedf6655f8ea05aac8" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:adb9b3944eb792a4f518b5e151a3e1591" id = "r_adb9b3944eb792a4f518b5e151a3e1591" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#adb9b3944eb792a4f518b5e151a3e1591" > rader_8_steps_< / a > < / td > < / tr >
< tr class = "separator:adb9b3944eb792a4f518b5e151a3e1591" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a9946b98d3350cb1b3c08ad4f7b67f880" id = "r_a9946b98d3350cb1b3c08ad4f7b67f880" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a9946b98d3350cb1b3c08ad4f7b67f880" > rader_7_steps_< / a > < / td > < / tr >
< tr class = "separator:a9946b98d3350cb1b3c08ad4f7b67f880" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a97d2f30278a31635497d7c6c3443206a" id = "r_a97d2f30278a31635497d7c6c3443206a" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a97d2f30278a31635497d7c6c3443206a" > rader_6_steps_< / a > < / td > < / tr >
< tr class = "separator:a97d2f30278a31635497d7c6c3443206a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad64f06afe2ff8ada7449556e1c41b39a" id = "r_ad64f06afe2ff8ada7449556e1c41b39a" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ad64f06afe2ff8ada7449556e1c41b39a" > rader_5_steps_< / a > < / td > < / tr >
< tr class = "separator:ad64f06afe2ff8ada7449556e1c41b39a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:add993232d88c3203960852a6de6a03c3" id = "r_add993232d88c3203960852a6de6a03c3" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#add993232d88c3203960852a6de6a03c3" > rader_4_steps_< / a > < / td > < / tr >
< tr class = "separator:add993232d88c3203960852a6de6a03c3" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aab5dd8c9141fbee09048ba6837ab8aae" id = "r_aab5dd8c9141fbee09048ba6837ab8aae" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#aab5dd8c9141fbee09048ba6837ab8aae" > rader_3_steps_< / a > < / td > < / tr >
< tr class = "separator:aab5dd8c9141fbee09048ba6837ab8aae" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a6faebd7ba948a4b572b7933f6d3b8646" id = "r_a6faebd7ba948a4b572b7933f6d3b8646" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a6faebd7ba948a4b572b7933f6d3b8646" > rader_2_steps_< / a > < / td > < / tr >
< tr class = "separator:a6faebd7ba948a4b572b7933f6d3b8646" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table >
< h2 class = "groupheader" > Macro Definition Documentation< / h2 >
< a id = "a28d683cf067736d76f867f30c066317e" name = "a28d683cf067736d76f867f30c066317e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a28d683cf067736d76f867f30c066317e" > ◆   < / a > < / span > MAX_OUTPUT_SIZE< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define MAX_OUTPUT_SIZE      18< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a7b6e56afa21f022c5e754b000955735a" name = "a7b6e56afa21f022c5e754b000955735a" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a7b6e56afa21f022c5e754b000955735a" > ◆   < / a > < / span > MAX_RADIX< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define MAX_RADIX      13< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a794032d3a9acff0e31c77c69d0007f10" name = "a794032d3a9acff0e31c77c69d0007f10" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a794032d3a9acff0e31c77c69d0007f10" > ◆   < / a > < / span > RADIX_STEP< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define RADIX_STEP< / td >
< td > (< / td >
< td class = "paramtype" > < / td > < td class = "paramname" > < span class = "paramname" > radix, < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2024-07-12 06:32:08 +08:00
< td class = "paramtype" > < / td > < td class = "paramname" > < span class = "paramname" > < a class = "el" href = "metal_2kernels_2hadamard_8h.html#a590e5366adc78bab4fe44e37885d413f" > radix_func< / a > , < / span > < / td >
2024-06-07 11:28:06 +08:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > < / td > < td class = "paramname" > < span class = "paramname" > num_steps< / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Value:< / b > < div class = "fragment" > < div class = "line" > radix_n_steps< radix, radix_func> ( \< / div >
< div class = "line" > fft_idx, p, m, n, num_steps, inputs, indices, values, < a class = "code hl_variable" href = "backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697" > buf< / a > );< / div >
< div class = "ttc" id = "abackend_2metal_2allocator_8h_html_a15aa5cc1baf29be08d55cca88509e697" > < div class = "ttname" > < a href = "backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697" > buf< / a > < / div > < div class = "ttdeci" > MTL::Buffer * buf< / div > < div class = "ttdef" > < b > Definition< / b > allocator.h:38< / div > < / div >
< / div > <!-- fragment -->
< / div >
< / div >
< h2 class = "groupheader" > Typedef Documentation< / h2 >
< a id = "a6ba62eabfd5428644aabf89ddaa0128d" name = "a6ba62eabfd5428644aabf89ddaa0128d" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a6ba62eabfd5428644aabf89ddaa0128d" > ◆   < / a > < / span > RadixFunc< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > typedef void(* RadixFunc) (thread float2 *, thread float2 *)< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< h2 class = "groupheader" > Function Documentation< / h2 >
< a id = "a0abc609e9756475800e996775a96a87e" name = "a0abc609e9756475800e996775a96a87e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a0abc609e9756475800e996775a96a87e" > ◆   < / a > < / span > bluestein_fft()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< int tg_mem_size, typename in_T , typename out_T > < / div >
< table class = "memname" >
< tr >
< td class = "memname" > void bluestein_fft < / td >
< td > (< / td >
< td class = "paramtype" > const device in_T *< / td > < td class = "paramname" > < span class = "paramname" > < em > in< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > device out_T *< / td > < td class = "paramname" > < span class = "paramname" > < em > out< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const device float2 *< / td > < td class = "paramname" > < span class = "paramname" > < em > w_q< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const device float2 *< / td > < td class = "paramname" > < span class = "paramname" > < em > w_k< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > length< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > n< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > batch_size< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint3< / td > < td class = "paramname" > < span class = "paramname" > < em > elem< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint3< / td > < td class = "paramname" > < span class = "paramname" > < em > grid< / em > < / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a4010b0e151e5f01e610e9c32234458c7" name = "a4010b0e151e5f01e610e9c32234458c7" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a4010b0e151e5f01e610e9c32234458c7" > ◆   < / a > < / span > fft()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< int tg_mem_size, typename in_T , typename out_T > < / div >
< table class = "memname" >
< tr >
< td class = "memname" > void fft < / td >
< td > (< / td >
< td class = "paramtype" > const device in_T *< / td > < td class = "paramname" > < span class = "paramname" > < em > in< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > device out_T *< / td > < td class = "paramname" > < span class = "paramname" > < em > out< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > n< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > batch_size< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint3< / td > < td class = "paramname" > < span class = "paramname" > < em > elem< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint3< / td > < td class = "paramname" > < span class = "paramname" > < em > grid< / em > < / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a6558a8205ee4c3e4767bafa93f7606de" name = "a6558a8205ee4c3e4767bafa93f7606de" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a6558a8205ee4c3e4767bafa93f7606de" > ◆   < / a > < / span > four_step_fft()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< int tg_mem_size, typename in_T , typename out_T , int step, bool real = false> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > void four_step_fft < / td >
< td > (< / td >
< td class = "paramtype" > const device in_T *< / td > < td class = "paramname" > < span class = "paramname" > < em > in< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > device out_T *< / td > < td class = "paramname" > < span class = "paramname" > < em > out< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > n1< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > n2< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > batch_size< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint3< / td > < td class = "paramname" > < span class = "paramname" > < em > elem< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint3< / td > < td class = "paramname" > < span class = "paramname" > < em > grid< / em > < / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a050ead8fa5cacdaec13d68ca3c0dcb81" name = "a050ead8fa5cacdaec13d68ca3c0dcb81" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a050ead8fa5cacdaec13d68ca3c0dcb81" > ◆   < / a > < / span > perform_fft()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< bool rader = false> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > METAL_FUNC void perform_fft < / td >
< td > (< / td >
< td class = "paramtype" > int< / td > < td class = "paramname" > < span class = "paramname" > < em > fft_idx< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > thread int *< / td > < td class = "paramname" > < span class = "paramname" > < em > p< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > int< / td > < td class = "paramname" > < span class = "paramname" > < em > m< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > int< / td > < td class = "paramname" > < span class = "paramname" > < em > n< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > threadgroup float2 *< / td > < td class = "paramname" > < span class = "paramname" > < em > buf< / em > < / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ad123452303f6415904f3592f660769b8" name = "ad123452303f6415904f3592f660769b8" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ad123452303f6415904f3592f660769b8" > ◆   < / a > < / span > rader_fft()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< int tg_mem_size, typename in_T , typename out_T > < / div >
< table class = "memname" >
< tr >
< td class = "memname" > void rader_fft < / td >
< td > (< / td >
< td class = "paramtype" > const device in_T *< / td > < td class = "paramname" > < span class = "paramname" > < em > in< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > device out_T *< / td > < td class = "paramname" > < span class = "paramname" > < em > out< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const device float2 *< / td > < td class = "paramname" > < span class = "paramname" > < em > raders_b_q< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const device short *< / td > < td class = "paramname" > < span class = "paramname" > < em > raders_g_q< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const device short *< / td > < td class = "paramname" > < span class = "paramname" > < em > raders_g_minus_q< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > n< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > batch_size< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > constant const int & < / td > < td class = "paramname" > < span class = "paramname" > < em > rader_n< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint3< / td > < td class = "paramname" > < span class = "paramname" > < em > elem< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint3< / td > < td class = "paramname" > < span class = "paramname" > < em > grid< / em > < / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a278d980ed397e6841ce0af44b9aa4396" name = "a278d980ed397e6841ce0af44b9aa4396" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a278d980ed397e6841ce0af44b9aa4396" > ◆   < / a > < / span > radix_butterfly()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< int radix, < a class = "el" href = "#a6ba62eabfd5428644aabf89ddaa0128d" > RadixFunc< / a > radix_func> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > METAL_FUNC void radix_butterfly < / td >
< td > (< / td >
< td class = "paramtype" > int< / td > < td class = "paramname" > < span class = "paramname" > < em > i< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > int< / td > < td class = "paramname" > < span class = "paramname" > < em > p< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > thread float2 *< / td > < td class = "paramname" > < span class = "paramname" > < em > x< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > thread short *< / td > < td class = "paramname" > < span class = "paramname" > < em > indices< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > thread float2 *< / td > < td class = "paramname" > < span class = "paramname" > < em > y< / em > < / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "aba8d32e0911499671df93678f39da08b" name = "aba8d32e0911499671df93678f39da08b" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aba8d32e0911499671df93678f39da08b" > ◆   < / a > < / span > radix_n_steps()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< int radix, < a class = "el" href = "#a6ba62eabfd5428644aabf89ddaa0128d" > RadixFunc< / a > radix_func> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > METAL_FUNC void radix_n_steps < / td >
< td > (< / td >
< td class = "paramtype" > int< / td > < td class = "paramname" > < span class = "paramname" > < em > i< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > thread int *< / td > < td class = "paramname" > < span class = "paramname" > < em > p< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > int< / td > < td class = "paramname" > < span class = "paramname" > < em > m< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > int< / td > < td class = "paramname" > < span class = "paramname" > < em > n< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > int< / td > < td class = "paramname" > < span class = "paramname" > < em > num_steps< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > thread float2 *< / td > < td class = "paramname" > < span class = "paramname" > < em > inputs< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > thread short *< / td > < td class = "paramname" > < span class = "paramname" > < em > indices< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > thread float2 *< / td > < td class = "paramname" > < span class = "paramname" > < em > values< / em > , < / span > < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > threadgroup float2 *< / td > < td class = "paramname" > < span class = "paramname" > < em > buf< / em > < / span >   )< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< h2 class = "groupheader" > Variable Documentation< / h2 >
< a id = "acf9b1130c134093453d15eee02683c94" name = "acf9b1130c134093453d15eee02683c94" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#acf9b1130c134093453d15eee02683c94" > ◆   < / a > < / span > elems_per_thread_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int elems_per_thread_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a23a773ae455da5d0b9b5508ee2e7694b" name = "a23a773ae455da5d0b9b5508ee2e7694b" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a23a773ae455da5d0b9b5508ee2e7694b" > ◆   < / a > < / span > inv_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > bool inv_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "abeb0f8d030ee27c89882b87eed13be2d" name = "abeb0f8d030ee27c89882b87eed13be2d" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#abeb0f8d030ee27c89882b87eed13be2d" > ◆   < / a > < / span > is_power_of_2_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > bool is_power_of_2_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ae1538cb224d84bfedf6655f8ea05aac8" name = "ae1538cb224d84bfedf6655f8ea05aac8" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ae1538cb224d84bfedf6655f8ea05aac8" > ◆   < / a > < / span > rader_11_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_11_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a7fe88d81170dc4e2e8993c58b887dce6" name = "a7fe88d81170dc4e2e8993c58b887dce6" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a7fe88d81170dc4e2e8993c58b887dce6" > ◆   < / a > < / span > rader_13_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_13_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a6faebd7ba948a4b572b7933f6d3b8646" name = "a6faebd7ba948a4b572b7933f6d3b8646" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a6faebd7ba948a4b572b7933f6d3b8646" > ◆   < / a > < / span > rader_2_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_2_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "aab5dd8c9141fbee09048ba6837ab8aae" name = "aab5dd8c9141fbee09048ba6837ab8aae" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aab5dd8c9141fbee09048ba6837ab8aae" > ◆   < / a > < / span > rader_3_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_3_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "add993232d88c3203960852a6de6a03c3" name = "add993232d88c3203960852a6de6a03c3" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#add993232d88c3203960852a6de6a03c3" > ◆   < / a > < / span > rader_4_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_4_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ad64f06afe2ff8ada7449556e1c41b39a" name = "ad64f06afe2ff8ada7449556e1c41b39a" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ad64f06afe2ff8ada7449556e1c41b39a" > ◆   < / a > < / span > rader_5_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_5_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a97d2f30278a31635497d7c6c3443206a" name = "a97d2f30278a31635497d7c6c3443206a" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a97d2f30278a31635497d7c6c3443206a" > ◆   < / a > < / span > rader_6_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_6_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a9946b98d3350cb1b3c08ad4f7b67f880" name = "a9946b98d3350cb1b3c08ad4f7b67f880" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a9946b98d3350cb1b3c08ad4f7b67f880" > ◆   < / a > < / span > rader_7_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_7_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "adb9b3944eb792a4f518b5e151a3e1591" name = "adb9b3944eb792a4f518b5e151a3e1591" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#adb9b3944eb792a4f518b5e151a3e1591" > ◆   < / a > < / span > rader_8_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_8_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a5d03e78eedb9a084645f8f63185bcf2f" name = "a5d03e78eedb9a084645f8f63185bcf2f" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a5d03e78eedb9a084645f8f63185bcf2f" > ◆   < / a > < / span > rader_m_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int rader_m_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "af17a5682878a88283d995f2ca37681e4" name = "af17a5682878a88283d995f2ca37681e4" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#af17a5682878a88283d995f2ca37681e4" > ◆   < / a > < / span > radix_11_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int radix_11_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a40c698855591f5d73b0d9258049571a2" name = "a40c698855591f5d73b0d9258049571a2" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a40c698855591f5d73b0d9258049571a2" > ◆   < / a > < / span > radix_13_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int radix_13_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ae76b69e0b030b8cf1ee7ca9011f3e504" name = "ae76b69e0b030b8cf1ee7ca9011f3e504" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ae76b69e0b030b8cf1ee7ca9011f3e504" > ◆   < / a > < / span > radix_2_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int radix_2_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a7b23fe1ca5b7f650cc3e8b03efc55434" name = "a7b23fe1ca5b7f650cc3e8b03efc55434" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a7b23fe1ca5b7f650cc3e8b03efc55434" > ◆   < / a > < / span > radix_3_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int radix_3_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ad28408cc4ff0a4f820afd1aa18ca9646" name = "ad28408cc4ff0a4f820afd1aa18ca9646" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ad28408cc4ff0a4f820afd1aa18ca9646" > ◆   < / a > < / span > radix_4_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int radix_4_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a7cea841e54e678c583aeb369ea7bf573" name = "a7cea841e54e678c583aeb369ea7bf573" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a7cea841e54e678c583aeb369ea7bf573" > ◆   < / a > < / span > radix_5_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int radix_5_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a92d77e600661bb6f4a7779b6529733b7" name = "a92d77e600661bb6f4a7779b6529733b7" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a92d77e600661bb6f4a7779b6529733b7" > ◆   < / a > < / span > radix_6_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int radix_6_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a02e428463b66a6e0f059bf8fc4f3a073" name = "a02e428463b66a6e0f059bf8fc4f3a073" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a02e428463b66a6e0f059bf8fc4f3a073" > ◆   < / a > < / span > radix_7_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int radix_7_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "aadbf4b8812c1489e78ea7d1184a0fdd9" name = "aadbf4b8812c1489e78ea7d1184a0fdd9" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aadbf4b8812c1489e78ea7d1184a0fdd9" > ◆   < / a > < / span > radix_8_steps_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b" > STEEL_CONST< / a > int radix_8_steps_< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< / div > <!-- contents -->
<!-- start footer part -->
< hr class = "footer" / > < address class = "footer" > < small >
Generated by  < a href = "https://www.doxygen.org/index.html" > < img class = "footer" src = "doxygen.svg" width = "104" height = "31" alt = "doxygen" / > < / a > 1.10.0
< / small > < / address >
< / body >
< / html >