Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #43 from AlwinEsch/Nexus-changes
[Nexus] API related update / update azure pipeline to "Visual Studio 17 2022"
- Loading branch information
Showing
18 changed files
with
1,255 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
cmake_minimum_required(VERSION 3.5) | ||
project(kissfft) | ||
|
||
set(SOURCES kiss_fft.c | ||
kiss_fftr.c) | ||
|
||
add_library(kissfft STATIC ${SOURCES}) | ||
set_property(TARGET kissfft PROPERTY POSITION_INDEPENDENT_CODE ON) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
Copyright (c) 2003-2010 Mark Borgerding . All rights reserved. | ||
|
||
KISS FFT is provided under: | ||
|
||
SPDX-License-Identifier: BSD-3-Clause | ||
|
||
Being under the terms of the BSD 3-clause "New" or "Revised" License, | ||
according with: | ||
|
||
LICENSES/BSD-3-Clause | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
Valid-License-Identifier: BSD-3-Clause | ||
SPDX-URL: https://spdx.org/licenses/BSD-3-Clause.html | ||
Usage-Guide: | ||
To use the BSD 3-clause "New" or "Revised" License put the following SPDX | ||
tag/value pair into a comment according to the placement guidelines in | ||
the licensing rules documentation: | ||
SPDX-License-Identifier: BSD-3-Clause | ||
License-Text: | ||
|
||
Copyright (c) <year> <owner> . All rights reserved. | ||
|
||
Redistribution and use in source and binary forms, with or without modification, | ||
are permitted provided that the following conditions are met: | ||
|
||
1. Redistributions of source code must retain the above copyright notice, | ||
this list of conditions and the following disclaimer. | ||
|
||
2. Redistributions in binary form must reproduce the above copyright notice, | ||
this list of conditions and the following disclaimer in the documentation | ||
and/or other materials provided with the distribution. | ||
|
||
3. Neither the name of the copyright holder nor the names of its contributors | ||
may be used to endorse or promote products derived from this software without | ||
specific prior written permission. | ||
|
||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | ||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | ||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
Valid-License-Identifier: Unlicense | ||
SPDX-URL: https://spdx.org/licenses/Unlicense.html | ||
Usage-Guide: | ||
To use the Unlicense put the following SPDX tag/value pair into a | ||
comment according to the placement guidelines in the licensing rules | ||
documentation: | ||
SPDX-License-Identifier: Unlicense | ||
License-Text: | ||
|
||
This is free and unencumbered software released into the public domain. | ||
|
||
Anyone is free to copy, modify, publish, use, compile, sell, or distribute | ||
this software, either in source code form or as a compiled binary, for any | ||
purpose, commercial or non-commercial, and by any means. | ||
|
||
In jurisdictions that recognize copyright laws, the author or authors of this | ||
software dedicate any and all copyright interest in the software to the public | ||
domain. We make this dedication for the benefit of the public at large and | ||
to the detriment of our heirs and successors. We intend this dedication to be | ||
an overt act of relinquishment in perpetuity of all present and future rights | ||
to this software under copyright law. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS | ||
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH | ||
THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
|
||
For more information, please refer to <http://unlicense.org/> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,167 @@ | ||
/* | ||
* Copyright (c) 2003-2010, Mark Borgerding. All rights reserved. | ||
* This file is part of KISS FFT - https://github.com/mborgerding/kissfft | ||
* | ||
* SPDX-License-Identifier: BSD-3-Clause | ||
* See COPYING file for more information. | ||
*/ | ||
|
||
/* kiss_fft.h | ||
defines kiss_fft_scalar as either short or a float type | ||
and defines | ||
typedef struct { kiss_fft_scalar r; kiss_fft_scalar i; }kiss_fft_cpx; */ | ||
|
||
#ifndef _kiss_fft_guts_h | ||
#define _kiss_fft_guts_h | ||
|
||
#include "kiss_fft.h" | ||
#include "kiss_fft_log.h" | ||
#include <limits.h> | ||
|
||
#define MAXFACTORS 32 | ||
/* e.g. an fft of length 128 has 4 factors | ||
as far as kissfft is concerned | ||
4*4*4*2 | ||
*/ | ||
|
||
struct kiss_fft_state{ | ||
int nfft; | ||
int inverse; | ||
int factors[2*MAXFACTORS]; | ||
kiss_fft_cpx twiddles[1]; | ||
}; | ||
|
||
/* | ||
Explanation of macros dealing with complex math: | ||
C_MUL(m,a,b) : m = a*b | ||
C_FIXDIV( c , div ) : if a fixed point impl., c /= div. noop otherwise | ||
C_SUB( res, a,b) : res = a - b | ||
C_SUBFROM( res , a) : res -= a | ||
C_ADDTO( res , a) : res += a | ||
* */ | ||
#ifdef FIXED_POINT | ||
#include <stdint.h> | ||
#if (FIXED_POINT==32) | ||
# define FRACBITS 31 | ||
# define SAMPPROD int64_t | ||
#define SAMP_MAX INT32_MAX | ||
#define SAMP_MIN INT32_MIN | ||
#else | ||
# define FRACBITS 15 | ||
# define SAMPPROD int32_t | ||
#define SAMP_MAX INT16_MAX | ||
#define SAMP_MIN INT16_MIN | ||
#endif | ||
|
||
#if defined(CHECK_OVERFLOW) | ||
# define CHECK_OVERFLOW_OP(a,op,b) \ | ||
if ( (SAMPPROD)(a) op (SAMPPROD)(b) > SAMP_MAX || (SAMPPROD)(a) op (SAMPPROD)(b) < SAMP_MIN ) { \ | ||
KISS_FFT_WARNING("overflow (%d " #op" %d) = %ld", (a),(b),(SAMPPROD)(a) op (SAMPPROD)(b)); } | ||
#endif | ||
|
||
|
||
# define smul(a,b) ( (SAMPPROD)(a)*(b) ) | ||
# define sround( x ) (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS ) | ||
|
||
# define S_MUL(a,b) sround( smul(a,b) ) | ||
|
||
# define C_MUL(m,a,b) \ | ||
do{ (m).r = sround( smul((a).r,(b).r) - smul((a).i,(b).i) ); \ | ||
(m).i = sround( smul((a).r,(b).i) + smul((a).i,(b).r) ); }while(0) | ||
|
||
# define DIVSCALAR(x,k) \ | ||
(x) = sround( smul( x, SAMP_MAX/k ) ) | ||
|
||
# define C_FIXDIV(c,div) \ | ||
do { DIVSCALAR( (c).r , div); \ | ||
DIVSCALAR( (c).i , div); }while (0) | ||
|
||
# define C_MULBYSCALAR( c, s ) \ | ||
do{ (c).r = sround( smul( (c).r , s ) ) ;\ | ||
(c).i = sround( smul( (c).i , s ) ) ; }while(0) | ||
|
||
#else /* not FIXED_POINT*/ | ||
|
||
# define S_MUL(a,b) ( (a)*(b) ) | ||
#define C_MUL(m,a,b) \ | ||
do{ (m).r = (a).r*(b).r - (a).i*(b).i;\ | ||
(m).i = (a).r*(b).i + (a).i*(b).r; }while(0) | ||
# define C_FIXDIV(c,div) /* NOOP */ | ||
# define C_MULBYSCALAR( c, s ) \ | ||
do{ (c).r *= (s);\ | ||
(c).i *= (s); }while(0) | ||
#endif | ||
|
||
#ifndef CHECK_OVERFLOW_OP | ||
# define CHECK_OVERFLOW_OP(a,op,b) /* noop */ | ||
#endif | ||
|
||
#define C_ADD( res, a,b)\ | ||
do { \ | ||
CHECK_OVERFLOW_OP((a).r,+,(b).r)\ | ||
CHECK_OVERFLOW_OP((a).i,+,(b).i)\ | ||
(res).r=(a).r+(b).r; (res).i=(a).i+(b).i; \ | ||
}while(0) | ||
#define C_SUB( res, a,b)\ | ||
do { \ | ||
CHECK_OVERFLOW_OP((a).r,-,(b).r)\ | ||
CHECK_OVERFLOW_OP((a).i,-,(b).i)\ | ||
(res).r=(a).r-(b).r; (res).i=(a).i-(b).i; \ | ||
}while(0) | ||
#define C_ADDTO( res , a)\ | ||
do { \ | ||
CHECK_OVERFLOW_OP((res).r,+,(a).r)\ | ||
CHECK_OVERFLOW_OP((res).i,+,(a).i)\ | ||
(res).r += (a).r; (res).i += (a).i;\ | ||
}while(0) | ||
|
||
#define C_SUBFROM( res , a)\ | ||
do {\ | ||
CHECK_OVERFLOW_OP((res).r,-,(a).r)\ | ||
CHECK_OVERFLOW_OP((res).i,-,(a).i)\ | ||
(res).r -= (a).r; (res).i -= (a).i; \ | ||
}while(0) | ||
|
||
|
||
#ifdef FIXED_POINT | ||
# define KISS_FFT_COS(phase) floor(.5+SAMP_MAX * cos (phase)) | ||
# define KISS_FFT_SIN(phase) floor(.5+SAMP_MAX * sin (phase)) | ||
# define HALF_OF(x) ((x)>>1) | ||
#elif defined(USE_SIMD) | ||
# define KISS_FFT_COS(phase) _mm_set1_ps( cos(phase) ) | ||
# define KISS_FFT_SIN(phase) _mm_set1_ps( sin(phase) ) | ||
# define HALF_OF(x) ((x)*_mm_set1_ps(.5)) | ||
#else | ||
# define KISS_FFT_COS(phase) (kiss_fft_scalar) cos(phase) | ||
# define KISS_FFT_SIN(phase) (kiss_fft_scalar) sin(phase) | ||
# define HALF_OF(x) ((x)*((kiss_fft_scalar).5)) | ||
#endif | ||
|
||
#define kf_cexp(x,phase) \ | ||
do{ \ | ||
(x)->r = KISS_FFT_COS(phase);\ | ||
(x)->i = KISS_FFT_SIN(phase);\ | ||
}while(0) | ||
|
||
|
||
/* a debugging function */ | ||
#define pcpx(c)\ | ||
KISS_FFT_DEBUG("%g + %gi\n",(double)((c)->r),(double)((c)->i)) | ||
|
||
|
||
#ifdef KISS_FFT_USE_ALLOCA | ||
// define this to allow use of alloca instead of malloc for temporary buffers | ||
// Temporary buffers are used in two case: | ||
// 1. FFT sizes that have "bad" factors. i.e. not 2,3 and 5 | ||
// 2. "in-place" FFTs. Notice the quotes, since kissfft does not really do an in-place transform. | ||
#include <alloca.h> | ||
#define KISS_FFT_TMP_ALLOC(nbytes) alloca(nbytes) | ||
#define KISS_FFT_TMP_FREE(ptr) | ||
#else | ||
#define KISS_FFT_TMP_ALLOC(nbytes) KISS_FFT_MALLOC(nbytes) | ||
#define KISS_FFT_TMP_FREE(ptr) KISS_FFT_FREE(ptr) | ||
#endif | ||
|
||
#endif /* _kiss_fft_guts_h */ | ||
|
Oops, something went wrong.