xref: /aosp_15_r20/external/executorch/extension/llm/custom_ops/spinquant/third-party/FFHT/fht.h (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1 #ifndef _FHT_H_
2 #define _FHT_H_
3 #include <stdlib.h>
4 #include <string.h>
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 int fht_float(float* buf, int log_n);
11 #ifndef __aarch64__
12 int fht_double(double* buf, int log_n);
13 #endif
14 int fht_float_oop(float* in, float* out, int log_n);
15 #ifndef __aarch64__
16 int fht_double_oop(double* in, double* out, int log_n);
17 #endif
18 
19 #ifdef __cplusplus
20 
21 } // extern "C"
22 
fht(float * buf,int log_n)23 static inline int fht(float* buf, int log_n) {
24   return fht_float(buf, log_n);
25 }
26 
27 #ifndef __aarch64__
fht(double * buf,int log_n)28 static inline int fht(double* buf, int log_n) {
29   return fht_double(buf, log_n);
30 }
31 #endif
32 
fht(float * buf,float * out,int log_n)33 static inline int fht(float* buf, float* out, int log_n) {
34   return fht_float_oop(buf, out, log_n);
35 }
36 
37 #ifndef __aarch64__
fht(double * buf,double * out,int log_n)38 static inline int fht(double* buf, double* out, int log_n) {
39   return fht_double_oop(buf, out, log_n);
40 }
41 #endif
42 
43 #endif
44 
45 #endif
46