Skip to content

Commit f5d52b9

Browse files
committed
Release 1.0.29
* Implemented AVX-512 optimized direct_fft and reverse_fft functions. * Added definition of MacOS dependencies in build scripts. * Updated module versions in dependencies.
2 parents 7db5651 + f35da35 commit f5d52b9

File tree

28 files changed

+2004
-391
lines changed

28 files changed

+2004
-391
lines changed

Diff for: .cproject

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
</option>
3131
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.368930916" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
3232
<listOptionValue builtIn="false" value="LSP_TESTING"/>
33+
<listOptionValue builtIn="false" value="LSP_TRACE"/>
3334
<listOptionValue builtIn="false" value="LSP_IDE_DEBUG"/>
3435
</option>
3536
<option id="gnu.cpp.compiler.option.dialect.std.380024909" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
@@ -45,6 +46,7 @@
4546
</option>
4647
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.def.symbols.1421051177" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols">
4748
<listOptionValue builtIn="false" value="LSP_TESTING"/>
49+
<listOptionValue builtIn="false" value="LSP_TRACE"/>
4850
<listOptionValue builtIn="false" value="LSP_IDE_DEBUG"/>
4951
</option>
5052
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.2008435369" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
@@ -382,4 +384,4 @@
382384
</storageModule>
383385
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
384386
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
385-
</cproject>
387+
</cproject>

Diff for: CHANGELOG

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
* RECENT CHANGES
33
*******************************************************************************
44

5+
=== 1.0.29 ===
6+
* Implemented AVX-512 optimized direct_fft and reverse_fft functions.
7+
* Added definition of MacOS dependencies in build scripts.
8+
* Updated module versions in dependencies.
9+
510
=== 1.0.28 ===
611
* The DSP library now builds for Apple M1 chips and above on MacOS.
712
* Implemented abs_max2, abs_min2, abs_max3 and abs_min3 functions.

Diff for: dependencies.mk

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#
2-
# Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
# (C) 2020 Vladimir Sadovnikov <[email protected]>
2+
# Copyright (C) 2025 Linux Studio Plugins Project <https://lsp-plug.in/>
3+
# (C) 2025 Vladimir Sadovnikov <[email protected]>
44
#
55
# This file is part of lsp-dsp-lib
66
#
@@ -60,14 +60,27 @@ ifeq ($(PLATFORM),Windows)
6060
TEST_DEPENDENCIES += $(WINDOWS_TEST_DEPENDENCIES)
6161
endif
6262

63+
#------------------------------------------------------------------------------
64+
# MacOS dependencies
65+
MACOS_DEPENDENCIES =
66+
67+
MACOS_TEST_DEPENDENCIES =
68+
69+
ifeq ($(PLATFORM),MacOS)
70+
DEPENDENCIES += $(MACOS_DEPENDENCIES)
71+
TEST_DEPENDENCIES += $(MACOS_TEST_DEPENDENCIES)
72+
endif
73+
6374
#------------------------------------------------------------------------------
6475
# Overall system dependencies
6576
ALL_DEPENDENCIES = \
6677
$(DEPENDENCIES) \
6778
$(LINUX_DEPENDENCIES) \
6879
$(BSD_DEPENDENCIES) \
6980
$(WINDOWS_DEPENDENCIES) \
81+
$(MACOS_DEPENDENCIES) \
7082
$(TEST_DEPENDENCIES) \
7183
$(LINUX_TEST_DEPENDENCIES) \
7284
$(BSD_TEST_DEPENDENCIES) \
73-
$(WINDOWS_TEST_DEPENDENCIES)
85+
$(WINDOWS_TEST_DEPENDENCIES) \
86+
$(MACOS_TESTDEPENDENCIES)

Diff for: include/lsp-plug.in/dsp/version.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
// Define version of headers
2626
#define LSP_DSP_LIB_MAJOR 1
2727
#define LSP_DSP_LIB_MINOR 0
28-
#define LSP_DSP_LIB_MICRO 28
28+
#define LSP_DSP_LIB_MICRO 29
2929

3030
#if defined(__WINDOWS__) || defined(__WIN32__) || defined(__WIN64__) || defined(_WIN64) || defined(_WIN32) || defined(__WINNT) || defined(__WINNT__)
3131
#define LSP_DSP_LIB_EXPORT_MODIFIER __declspec(dllexport)

Diff for: include/private/dsp/arch/aarch64/asimd/fft.h

+32-31
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
* Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
* (C) 2020 Vladimir Sadovnikov <[email protected]>
2+
* Copyright (C) 2025 Linux Studio Plugins Project <https://lsp-plug.in/>
3+
* (C) 2025 Vladimir Sadovnikov <[email protected]>
44
*
55
* This file is part of lsp-dsp-lib
66
* Created on: 31 мар. 2020 г.
@@ -42,15 +42,15 @@ namespace lsp
4242
{
4343
if (rank == 2)
4444
{
45-
float s0_re = src_re[0] + src_re[1];
46-
float s1_re = src_re[0] - src_re[1];
47-
float s2_re = src_re[2] + src_re[3];
48-
float s3_re = src_re[2] - src_re[3];
45+
float s0_re = src_re[0] + src_re[2];
46+
float s1_re = src_re[0] - src_re[2];
47+
float s2_re = src_re[1] + src_re[3];
48+
float s3_re = src_re[1] - src_re[3];
4949

50-
float s0_im = src_im[0] + src_im[1];
51-
float s1_im = src_im[0] - src_im[1];
52-
float s2_im = src_im[2] + src_im[3];
53-
float s3_im = src_im[2] - src_im[3];
50+
float s0_im = src_im[0] + src_im[2];
51+
float s1_im = src_im[0] - src_im[2];
52+
float s2_im = src_im[1] + src_im[3];
53+
float s3_im = src_im[1] - src_im[3];
5454

5555
dst_re[0] = s0_re + s2_re;
5656
dst_re[1] = s1_re + s3_im;
@@ -104,25 +104,25 @@ namespace lsp
104104
{
105105
if (rank == 2)
106106
{
107-
float s0_re = src_re[0] + src_re[1];
108-
float s1_re = src_re[0] - src_re[1];
109-
float s2_re = src_re[2] + src_re[3];
110-
float s3_re = src_re[2] - src_re[3];
111-
112-
float s0_im = src_im[0] + src_im[1];
113-
float s1_im = src_im[0] - src_im[1];
114-
float s2_im = src_im[2] + src_im[3];
115-
float s3_im = src_im[2] - src_im[3];
116-
117-
dst_re[0] = (s0_re + s2_re)*0.25f;
118-
dst_re[1] = (s1_re - s3_im)*0.25f;
119-
dst_re[2] = (s0_re - s2_re)*0.25f;
120-
dst_re[3] = (s1_re + s3_im)*0.25f;
121-
122-
dst_im[0] = (s0_im + s2_im)*0.25f;
123-
dst_im[1] = (s1_im + s3_re)*0.25f;
124-
dst_im[2] = (s0_im - s2_im)*0.25f;
125-
dst_im[3] = (s1_im - s3_re)*0.25f;
107+
float s0_re = src_re[0] + src_re[2];
108+
float s1_re = src_re[0] - src_re[2];
109+
float s2_re = src_re[1] + src_re[3];
110+
float s3_re = src_re[1] - src_re[3];
111+
112+
float s0_im = src_im[0] + src_im[2];
113+
float s1_im = src_im[0] - src_im[2];
114+
float s2_im = src_im[1] + src_im[3];
115+
float s3_im = src_im[1] - src_im[3];
116+
117+
dst_re[0] = (s0_re + s2_re) * 0.25f;
118+
dst_re[1] = (s1_re - s3_im) * 0.25f;
119+
dst_re[2] = (s0_re - s2_re) * 0.25f;
120+
dst_re[3] = (s1_re + s3_im) * 0.25f;
121+
122+
dst_im[0] = (s0_im + s2_im) * 0.25f;
123+
dst_im[1] = (s1_im + s3_re) * 0.25f;
124+
dst_im[2] = (s0_im - s2_im) * 0.25f;
125+
dst_im[3] = (s1_im - s3_re) * 0.25f;
126126
}
127127
else if (rank == 1)
128128
{
@@ -160,7 +160,8 @@ namespace lsp
160160

161161
dsp::normalize_fft2(dst_re, dst_im, rank);
162162
}
163-
}
164-
}
163+
164+
} /* namespace asimd */
165+
} /* namespace lsp */
165166

166167
#endif /* PRIVATE_DSP_ARCH_AARCH64_ASIMD_FFT_H_ */

Diff for: include/private/dsp/arch/arm/neon-d32/fft.h

+32-31
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
* Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
* (C) 2020 Vladimir Sadovnikov <[email protected]>
2+
* Copyright (C) 2025 Linux Studio Plugins Project <https://lsp-plug.in/>
3+
* (C) 2025 Vladimir Sadovnikov <[email protected]>
44
*
55
* This file is part of lsp-dsp-lib
66
* Created on: 31 мар. 2020 г.
@@ -44,15 +44,15 @@ namespace lsp
4444
{
4545
if (rank == 2)
4646
{
47-
float s0_re = src_re[0] + src_re[1];
48-
float s1_re = src_re[0] - src_re[1];
49-
float s2_re = src_re[2] + src_re[3];
50-
float s3_re = src_re[2] - src_re[3];
47+
float s0_re = src_re[0] + src_re[2];
48+
float s1_re = src_re[0] - src_re[2];
49+
float s2_re = src_re[1] + src_re[3];
50+
float s3_re = src_re[1] - src_re[3];
5151

52-
float s0_im = src_im[0] + src_im[1];
53-
float s1_im = src_im[0] - src_im[1];
54-
float s2_im = src_im[2] + src_im[3];
55-
float s3_im = src_im[2] - src_im[3];
52+
float s0_im = src_im[0] + src_im[2];
53+
float s1_im = src_im[0] - src_im[2];
54+
float s2_im = src_im[1] + src_im[3];
55+
float s3_im = src_im[1] - src_im[3];
5656

5757
dst_re[0] = s0_re + s2_re;
5858
dst_re[1] = s1_re + s3_im;
@@ -98,25 +98,25 @@ namespace lsp
9898
{
9999
if (rank == 2)
100100
{
101-
float s0_re = src_re[0] + src_re[1];
102-
float s1_re = src_re[0] - src_re[1];
103-
float s2_re = src_re[2] + src_re[3];
104-
float s3_re = src_re[2] - src_re[3];
105-
106-
float s0_im = src_im[0] + src_im[1];
107-
float s1_im = src_im[0] - src_im[1];
108-
float s2_im = src_im[2] + src_im[3];
109-
float s3_im = src_im[2] - src_im[3];
110-
111-
dst_re[0] = (s0_re + s2_re)*0.25f;
112-
dst_re[1] = (s1_re - s3_im)*0.25f;
113-
dst_re[2] = (s0_re - s2_re)*0.25f;
114-
dst_re[3] = (s1_re + s3_im)*0.25f;
115-
116-
dst_im[0] = (s0_im + s2_im)*0.25f;
117-
dst_im[1] = (s1_im + s3_re)*0.25f;
118-
dst_im[2] = (s0_im - s2_im)*0.25f;
119-
dst_im[3] = (s1_im - s3_re)*0.25f;
101+
float s0_re = src_re[0] + src_re[2];
102+
float s1_re = src_re[0] - src_re[2];
103+
float s2_re = src_re[1] + src_re[3];
104+
float s3_re = src_re[1] - src_re[3];
105+
106+
float s0_im = src_im[0] + src_im[2];
107+
float s1_im = src_im[0] - src_im[2];
108+
float s2_im = src_im[1] + src_im[3];
109+
float s3_im = src_im[1] - src_im[3];
110+
111+
dst_re[0] = (s0_re + s2_re) * 0.25f;
112+
dst_re[1] = (s1_re - s3_im) * 0.25f;
113+
dst_re[2] = (s0_re - s2_re) * 0.25f;
114+
dst_re[3] = (s1_re + s3_im) * 0.25f;
115+
116+
dst_im[0] = (s0_im + s2_im) * 0.25f;
117+
dst_im[1] = (s1_im + s3_re) * 0.25f;
118+
dst_im[2] = (s0_im - s2_im) * 0.25f;
119+
dst_im[3] = (s1_im - s3_re) * 0.25f;
120120
}
121121
else if (rank == 1)
122122
{
@@ -256,7 +256,8 @@ namespace lsp
256256

257257
packed_unscramble_reverse(dst, rank);
258258
}
259-
}
260-
}
259+
260+
} /* namespace neon_d32 */
261+
} /* namespace lsp */
261262

262263
#endif /* PRIVATE_DSP_ARCH_ARM_NEON_D32_FFT_H_ */

Diff for: include/private/dsp/arch/generic/bitmap/helpers.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ namespace lsp
4646
{
4747
bitmap_part_t rect;
4848

49-
rect.dst_x = lsp_max(0, x);
50-
rect.dst_y = lsp_max(0, y);
49+
rect.dst_x = lsp_max(ssize_t(0), x);
50+
rect.dst_y = lsp_max(ssize_t(0), y);
5151
rect.src_x = rect.dst_x - x;
5252
rect.src_y = rect.dst_y - y;
5353
rect.count_y = lsp_min(dst->height - rect.dst_y, src->height - rect.src_y);

0 commit comments

Comments
 (0)