⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 walsh0.cc

📁 the FXT library: fast transforms and low level algorithms. The package contains many algorithms for
💻 CC
字号:
#include "copy.h" // copy()#include "graypermute.h"#include "revbinpermute.h"#include "fxt.h" // dit2_walsh_wak()voidwalsh_wak0(double *f, ulong ldn)// transform wrt. to walsh-kronecker basis (wak-functions)// version for zero padded data{    if ( ldn==0 )  return;    ulong n = (1<<(ulong)ldn);    dit2_walsh_wak(f,ldn-1);    copy(f, f+n/2, n/2);}// ============= end ===============voidwalsh_wal0(double *f, ulong ldn)//// transform wrt. to walsh-kaczmarz basis (wal-functions)// the wal functions are sequency- ordered//{    const ulong n=(1<<ldn);    walsh_wak0(f,ldn);    revbin_permute(f,n);    inverse_gray_permute(f,n);}// ================= end ==================voidwalsh_pal0(double *f, ulong ldn)// transform wrt. to walsh-paley basis (pal-functions)// version for zero padded data{    if ( ldn==0 )  return;    ulong n = (1<<(ulong)ldn);    walsh_wak0(f, ldn);    revbin_permute(f, n);}// ============= end ===============voiddyadic_convolution0(double *f, double *g, ulong ldn)// dyadic linear convolution:  g[] := f[] (*dyad) g[]// ldn := base-2 logarithm of the array length// input data must be zero padded://   f[n/2] .. f[n-1] == 0 and g[n/2] .. g[n-1] == 0// f and g must not overlap{#ifdef PARANOIA    jjassert( f!=g );#endif    WALSH0(f,ldn);    WALSH0(g,ldn);    ulong n=(1<<ldn);    for (ulong k=0; k<n; ++k)  g[k] *= f[k];    WALSH(g,ldn);}// ============= end ===========voiddyadic_auto_convolution0(double *f, ulong ldn)// dyadic self convolution:  f[] := f[] (*dyad) f[]// ldn := base-2 logarithm of the array length// input data must be zero padded://   f[n/2] .. f[n-1] == 0{    WALSH0(f,ldn);    ulong n=(1<<ldn);    for (ulong k=0; k<n; ++k)  f[k] *= f[k];    WALSH(f,ldn);}// ============= end ===========

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -