blob: 5a2dfe70ef84739a8d89a6c1065bf086ba5c216c [file] [log] [blame]
/*
* Copyright 2023 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef AUDIO_PREP_UTIL_H_
#define AUDIO_PREP_UTIL_H_
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
// Evenly linear spaced array
void linspace(float* x, float start, float end, int n);
// Calculate the dot product of two vectors
float dot_product(float* v, float* u, int n);
/*---------------------------------------------------------------------------
* FUNCTION NAME: rfft
*
* PURPOSE: Real valued, in-place split-radix FFT
*
* INPUT:
* x Pointer to input and output array
* m 2^m = n is the Length of FFT
*
* OUTPUT Output order
* Re(0), Re(1), ..., Re(n/2), Im(N/2-1), ..., Im(1)
*
* RETURN VALUE
* none
*
*---------------------------------------------------------------------------*/
void rfft(float* x, int m);
#endif // AUDIO_PREP_UTIL_H_