xref: /aosp_15_r20/external/pffft/pf_carrier.h (revision 3f1979aa0d7ad34fcf3763de7b7b8f8cd67e5bdd)
1*3f1979aaSAndroid Build Coastguard Worker /*
2*3f1979aaSAndroid Build Coastguard Worker This software is part of pffft/pfdsp, a set of simple DSP routines.
3*3f1979aaSAndroid Build Coastguard Worker 
4*3f1979aaSAndroid Build Coastguard Worker Copyright (c) 2014, Andras Retzler <[email protected]>
5*3f1979aaSAndroid Build Coastguard Worker Copyright (c) 2020  Hayati Ayguen <[email protected]>
6*3f1979aaSAndroid Build Coastguard Worker All rights reserved.
7*3f1979aaSAndroid Build Coastguard Worker 
8*3f1979aaSAndroid Build Coastguard Worker Redistribution and use in source and binary forms, with or without
9*3f1979aaSAndroid Build Coastguard Worker modification, are permitted provided that the following conditions are met:
10*3f1979aaSAndroid Build Coastguard Worker     * Redistributions of source code must retain the above copyright
11*3f1979aaSAndroid Build Coastguard Worker       notice, this list of conditions and the following disclaimer.
12*3f1979aaSAndroid Build Coastguard Worker     * Redistributions in binary form must reproduce the above copyright
13*3f1979aaSAndroid Build Coastguard Worker       notice, this list of conditions and the following disclaimer in the
14*3f1979aaSAndroid Build Coastguard Worker       documentation and/or other materials provided with the distribution.
15*3f1979aaSAndroid Build Coastguard Worker     * Neither the name of the copyright holder nor the
16*3f1979aaSAndroid Build Coastguard Worker       names of its contributors may be used to endorse or promote products
17*3f1979aaSAndroid Build Coastguard Worker       derived from this software without specific prior written permission.
18*3f1979aaSAndroid Build Coastguard Worker 
19*3f1979aaSAndroid Build Coastguard Worker THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20*3f1979aaSAndroid Build Coastguard Worker ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21*3f1979aaSAndroid Build Coastguard Worker WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22*3f1979aaSAndroid Build Coastguard Worker DISCLAIMED. IN NO EVENT SHALL ANDRAS RETZLER BE LIABLE FOR ANY
23*3f1979aaSAndroid Build Coastguard Worker DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24*3f1979aaSAndroid Build Coastguard Worker (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25*3f1979aaSAndroid Build Coastguard Worker LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26*3f1979aaSAndroid Build Coastguard Worker ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27*3f1979aaSAndroid Build Coastguard Worker (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28*3f1979aaSAndroid Build Coastguard Worker SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29*3f1979aaSAndroid Build Coastguard Worker */
30*3f1979aaSAndroid Build Coastguard Worker 
31*3f1979aaSAndroid Build Coastguard Worker #pragma once
32*3f1979aaSAndroid Build Coastguard Worker 
33*3f1979aaSAndroid Build Coastguard Worker #include <stdio.h>
34*3f1979aaSAndroid Build Coastguard Worker #include <stdint.h>
35*3f1979aaSAndroid Build Coastguard Worker 
36*3f1979aaSAndroid Build Coastguard Worker #ifdef __cplusplus
37*3f1979aaSAndroid Build Coastguard Worker extern "C" {
38*3f1979aaSAndroid Build Coastguard Worker #endif
39*3f1979aaSAndroid Build Coastguard Worker 
40*3f1979aaSAndroid Build Coastguard Worker 
41*3f1979aaSAndroid Build Coastguard Worker /*
42*3f1979aaSAndroid Build Coastguard Worker    _____                      _
43*3f1979aaSAndroid Build Coastguard Worker   / ____|                    | |
44*3f1979aaSAndroid Build Coastguard Worker  | |     ___  _ __ ___  _ __ | | _____  __
45*3f1979aaSAndroid Build Coastguard Worker  | |    / _ \| '_ ` _ \| '_ \| |/ _ \ \/ /
46*3f1979aaSAndroid Build Coastguard Worker  | |___| (_) | | | | | | |_) | |  __/>  <
47*3f1979aaSAndroid Build Coastguard Worker   \_____\___/|_| |_| |_| .__/|_|\___/_/\_\
48*3f1979aaSAndroid Build Coastguard Worker                        | |
49*3f1979aaSAndroid Build Coastguard Worker                        |_|
50*3f1979aaSAndroid Build Coastguard Worker */
51*3f1979aaSAndroid Build Coastguard Worker 
52*3f1979aaSAndroid Build Coastguard Worker typedef struct complexf_s { float i; float q; } complexf;
53*3f1979aaSAndroid Build Coastguard Worker 
54*3f1979aaSAndroid Build Coastguard Worker 
55*3f1979aaSAndroid Build Coastguard Worker /* generation functions */
56*3f1979aaSAndroid Build Coastguard Worker void generate_dc_f(float* output, int size);
57*3f1979aaSAndroid Build Coastguard Worker void generate_dc_s16(short* output, int size);
58*3f1979aaSAndroid Build Coastguard Worker void generate_pos_fs4_f(float* output, int size);
59*3f1979aaSAndroid Build Coastguard Worker void generate_pos_fs4_s16(short* output, int size);
60*3f1979aaSAndroid Build Coastguard Worker void generate_neg_fs4_f(float* output, int size);
61*3f1979aaSAndroid Build Coastguard Worker void generate_neg_fs4_s16(short* output, int size);
62*3f1979aaSAndroid Build Coastguard Worker 
63*3f1979aaSAndroid Build Coastguard Worker void generate_dc_pos_fs4_s16(short* output, int size);
64*3f1979aaSAndroid Build Coastguard Worker void generate_dc_neg_fs4_s16(short* output, int size);
65*3f1979aaSAndroid Build Coastguard Worker void generate_pos_neg_fs4_s16(short* output, int size);
66*3f1979aaSAndroid Build Coastguard Worker void generate_dc_pos_neg_fs4_s16(short* output, int size);
67*3f1979aaSAndroid Build Coastguard Worker 
68*3f1979aaSAndroid Build Coastguard Worker void generate_pos_neg_fs2_s16(short* output, int size);
69*3f1979aaSAndroid Build Coastguard Worker void generate_dc_pos_neg_fs2_s16(short* output, int size);
70*3f1979aaSAndroid Build Coastguard Worker 
71*3f1979aaSAndroid Build Coastguard Worker 
72*3f1979aaSAndroid Build Coastguard Worker #ifdef __cplusplus
73*3f1979aaSAndroid Build Coastguard Worker }
74*3f1979aaSAndroid Build Coastguard Worker #endif
75*3f1979aaSAndroid Build Coastguard Worker 
76