From 1256c9b807bc55cef0b8659eea12b2a3fc2410ab Mon Sep 17 00:00:00 2001 From: Theodor Chikin Date: Thu, 9 Oct 2025 14:34:57 +0300 Subject: [PATCH] added fft_twiddle_gen func that calculates twiddles inside provided arrays --- C/FFT_FP_realisation.c | 14 ++++++++++---- C/FFT_FP_realisation.h | 1 + C/FFT_FP_realisation.o | Bin 4024 -> 4360 bytes C/FP_math | Bin 16632 -> 16672 bytes 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/C/FFT_FP_realisation.c b/C/FFT_FP_realisation.c index 520bbe6..07eff61 100644 --- a/C/FFT_FP_realisation.c +++ b/C/FFT_FP_realisation.c @@ -6,12 +6,18 @@ static int64_t twiddle_re[TWIDDLE_L] = {0,}; static int64_t twiddle_im[TWIDDLE_L] = {0,}; -void fft_fp_prepare(void){ +void fft_twiddle_gen(int64_t* tw_re, int64_t* tw_im){ for (uint32_t k = 0; k < TWIDDLE_L; ++k){ double angle = 2.0 * PI * k / DATA_L; - twiddle_re[k] = lround(cos(angle) * FP_acc); - twiddle_im[k] = lround(-sin(angle) * FP_acc); - printf("k, angle, tw_re, tw_im: %u %g %lld %lld\n", k, angle, (long long)twiddle_re[k], (long long)twiddle_im[k]); + tw_re[k] = lround(cos(angle) * FP_acc); + tw_im[k] = lround(-sin(angle) * FP_acc); + } +} + +void fft_fp_prepare(void){ + fft_twiddle_gen(twiddle_re, twiddle_im); + for (uint32_t k = 0; k < TWIDDLE_L; ++k){ + printf("k, angle, tw_re, tw_im: %u %g %lld %lld\n", k, 2.0 * PI * k / DATA_L, (long long)twiddle_re[k], (long long)twiddle_im[k]); } } diff --git a/C/FFT_FP_realisation.h b/C/FFT_FP_realisation.h index 08b894e..4df8244 100644 --- a/C/FFT_FP_realisation.h +++ b/C/FFT_FP_realisation.h @@ -19,6 +19,7 @@ #define PI 3.141592653589793238462643383279502884197169399375105820974944 #endif +void fft_twiddle_gen(int64_t* twiddle_re, int64_t* twiddle_im); void fft_fp_prepare(void); void FFT_fp(int64_t* inp, uint32_t inp_L, int64_t* buf); diff --git a/C/FFT_FP_realisation.o b/C/FFT_FP_realisation.o index ecc2c03bf29cec56c022bb7579ee1965bb165db4..be28488cc3fdecdaa8f18eb8960ad0ae5467a504 100644 GIT binary patch delta 1117 zcmZ`(Ur19?7(e%Jx_h^K_s67RsEx3&kWd1ZkWBLGkzQtHWF~5DOJU44C%t4Ef;cXV zt?!}osiMao0$=RSh_oI8B?6Nmgarydwq{&mT2USZI4X(=hqBZe^ctTFVIcCNjB6##}RHxm+%l;(Gtj z_iuJw)w?}B@eO^td9uW4lvw)xv~1W~*0Pk?n!`!gvOHP-))40Px^hVT7u`Z^y06Va zud+mn#4ZdARcaQ!WKA!3IuMNoqeHPE zi^fJG@eu3ixP&b0#wr96M=6dL3K0FUfezwkz^u69>#;1}58)1Y>|Ws+Jhgi(=8H7; zBF!S)Ld~k7{6R|L7_8d84fS+(2F{W*#0oJjV-;XfKVz zmk=;D21oo3ymEXMuiIcwX|ylU2_xJhtSgOp10J;%{7wn3sLjUuNNtwu>8cQQ&?X&# zZM8<Ol}ZXm3{RLCGNpG5$Zh!36~${F(jlzyIdX?8emg(dH>7 z6KTy%9<gBgq0luOaT$Q2$5hGcCXc0=c2LTn1DK+$=4 zEp%?kH7D20w2G@(JHR;0LpE$=3-+R2UbdIY%k0KVh21W%td(xEO0mT3at>b`cbe0LDBehy{2T)|0o~gpJ}J!uUCGQ30;%shY1UeAW9NPo5(_{t2X1J-Owp z(uvo-yemCFdKsPQ_uTjRKc3`_{?Jl&o`mnJUOh{1h#1~wIIZFF}fXwqd6XW(=^Ei&|j5E&?9 UW_xGk;c+}2ZhOjAh67Cg2FgR#xc~qF diff --git a/C/FP_math b/C/FP_math index b6c6ac736e8c317d02a882beb2538ad681f6a26e..8942ea0480a36efa00da1e49135eda266104095e 100755 GIT binary patch delta 1252 zcmY*YU1$?o6ux(ov`uN9q*jx-(I%-jEm%u!v@TXR%kJp)K`1M6+fx6aRx2XP#$6S) zYP&AkG0<{$S*!)?TOS0ggHYI)__Iy>Ahf8^hk^>(C4%@RcjbH49< z=gY~=>{&i=j`vjZ-Mv+hoHtcwuAAWIHO@)JdYUx0@Xg%WYCW-5xTriTz3=fHza88$ z<(~PoRpdh%K(?gGO?3iu<>Tu4k1ZacWW|j*h3b42e8_f`_hU zV7Irrb9(_}(`xgrY1LKygL&VHcej=mx|VGh>Y-E?W~C%}eU6IR(*c}E%Wlc8%%Xy4moI;|%z;R(n zVWjeLjN=&3yp-}7#tszAV(gxlvH-jMG$Z9oj4RN7BgO{&ALAIk@1^_$js(L#hLt!W z#=g&YQCN;Uf_pz)4~A>0pP42IS1Il|?%C&34pAbv{1`9bJ`T=M8IMC%sGNTTTSH%M z4PbT#_q{h#dayIo7P!tU-xcR+T{fGO7tzZ^)n3F>Z>5~V`#eXvKaa0N{G`zvx>N{F z)dD|_E7f5;e*j~(m-!OtSY4*9TLQnY{+SN~uM6`En5gqWv@THC>LW$QrWhQkYgp)F zn%7F0Ztz+_RG$~WR2M^T)IvX>D+uLZ!>fpg3*ZrtFNRDvD`6~PaqKy28`L7Y4ABx) z8gN@_bGCTxfIWyF&7rW!LT}(RtrMo*RK&~sO*hx5hvH+ds0q&>f0GZ#LqtPxU0KLq z8o@QHqPDlkcg26{XlpyTch|nXhm4x~syros0kmvbd=rXM$Gl fb8Ir2H%hL!9MBS7>ug+Op>N@0w4QH*iD>u}*8F|K delta 971 zcmZ8fUr19?7{BMb={7d+R?|6==4?5IZ0uherA_MMEr@!UG>MWTB_%?LqQE~*!&-CI z_?|+;d^7YxybuWm6Vk1>eDJN(Ucw+!=c@J6={t9t<$-&C=X}5K`~ALi&w18QvSISL ziqyrcm$X)aQ-&2x#HF3&bGu3T1Zg7LU~b0+;R(NF9$Ywo>BG^9Wc&>L$j0-BE8AS< z@=#uK7ypewb8#&($g$!C*)0uxH73OjtNr3492XTc@XA`#*Q(*Tw9qn}7L0~-%K8GX zO=4DxirIEaxRzKM$x_Pbt;H&W5&j1>z69 zrRa?;GE8zlGB3r{esq!|$(ML~Ze<)j2E>e>gnKfykK=^FH@{_1X(L~D*}>{nyc7|q zqT=K~ekUFBqp~$#SVsjW#M)RnoQ8)sD~#JhFr^upE_aYq?1r?AT&46rLIQCL@f~6c z@y;5hU5Fj)lrAIQO;gID=JgDv4#a)fn}pbdf9?w0wmXRi#_Sf-1vAR}ligxv+Dvn6 zl;L6szc838Y@{396??^|4N9lk;}HvugZwc=e%^ClUw}7&gXOc=u=t(Q5PEIroF*)X z@n(!0}Qw_)RH~$E8zSCl_4W^