commit 0d10245b1a9c056c79459d38518eb0034ad038a1
parent 2757db8fe466d8de414526d46317b397356f4ba8
Author: vaplv <vaplv@free.fr>
Date: Tue, 13 May 2025 16:09:09 +0200
Merge branch 'release_0.6'
Diffstat:
54 files changed, 214 insertions(+), 300 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -11,3 +11,5 @@ test*
.simd
.config
rsimd*.pc
+src/math.h
+src/rsimd.h
diff --git a/Makefile b/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+# Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,6 +22,9 @@ LIBNAME_STATIC = librsimd.a
LIBNAME_SHARED = librsimd.so
LIBNAME = $(LIBNAME_$(LIB_TYPE))
+default: library
+all: library tests
+
################################################################################
# Library building
################################################################################
@@ -31,9 +34,10 @@ SRC = $(SRC_SIMD$(SIMD_WIDTH))
OBJ = $(SRC:.c=.o)
DEP = $(SRC:.c=.d)
-build_library:
+CFLAGS_LIB = -std=c99 $(CFLAGS_SO) $(INCS) -DRSIMD_SHARED_BUILD
+LDFLAGS_LIB = $(LDFLAGS_SO) $(LIBS)
-build_library__: .config $(DEP)
+library: .config $(DEP)
@$(MAKE) -f.simd -fMakefile $$(for i in $(DEP); do echo -f $${i}; done) \
$$(if [ -n "$(LIBNAME)" ]; then\
echo "$(LIBNAME)";\
@@ -41,10 +45,26 @@ build_library__: .config $(DEP)
echo "$(LIBNAME_SHARED)";\
fi)
-$(DEP) $(OBJ): config.mk
+src/rsimd.h: src/rsimd.h.in config.mk
+ if [ "$(SIMD_WIDTH)" = "128" ]; then \
+ sed '/#include[[:space:]]\{0,\}"avx\/avx\.h"/d' src/rsimd.h.in > $@; \
+ fi
+ if [ "$(SIMD_WIDTH)" = "256" ]; then \
+ cp src/rsimd.h.in $@; \
+ fi
+
+src/math.h: src/math.h.in config.mk
+ if [ "$(SIMD_WIDTH)" = "128" ]; then \
+ sed '/#include[[:space:]]\{0,\}"math8\.h"/d' src/math.h.in > $@; \
+ fi
+ if [ "$(SIMD_WIDTH)" = "256" ]; then \
+ cp src/math.h.in $@; \
+ fi
+
+$(DEP) $(OBJ): config.mk src/math.h src/rsimd.h
$(LIBNAME_SHARED): $(OBJ)
- $(CC) -std=c99 $(CFLAGS_SO) $(DPDC_CFLAGS) -o $@ $(OBJ) $(LDFLAGS_SO) $(DPDC_LIBS)
+ $(CC) $(CFLAGS_LIB) -o $@ $(OBJ) $(LDFLAGS_LIB)
$(LIBNAME_STATIC): librsimd.o
$(AR) -rc $@ $?
@@ -54,40 +74,17 @@ librsimd.o: $(OBJ)
$(LD) -r $(OBJ) -o $@
$(OBJCOPY) $(OCPFLAGS) $@
-.config: make.sh config.mk
- @if ! $(PKG_CONFIG) --atleast-version $(RSYS_VERSION) rsys; then \
- echo "rsys $(RSYS_VERSION) not found"; exit 1; fi
- @if ! $(PKG_CONFIG) --atleast-version $(SLEEF_VERSION) sleef; then \
- echo "sleef $(SLEEF_VERSION) not found"; exit 1; fi
- @echo "config done" > $@
-
-.simd: make.sh config.mk
- @$(SHELL) make.sh config_simd $(MAKE) > $@
+.config: config.mk
+ $(PKG_CONFIG) --atleast-version $(RSYS_VERSION) rsys
+ $(PKG_CONFIG) --atleast-version $(SLEEF_VERSION) sleef
+ echo "config done" > $@
.SUFFIXES: .c .d .o
.c.d:
- @$(CC) -std=c99 $(CFLAGS_SO) $(DPDC_CFLAGS) -MM -MT "$(@:.d=.o) $@" $< -MF $@
+ @$(CC) $(CFLAGS_LIB) -MM -MT "$(@:.d=.o) $@" $< -MF $@
.c.o:
- $(CC) -std=c99 $(CFLAGS_SO) $(DPDC_CFLAGS) -DRSIMD_SHARED_BUILD -c $< -o $@
-
-################################################################################
-# Miscellaneous targets
-################################################################################
-all: build_library build_tests
-
-clean__: clean_test
- rm -f $(OBJ) $(TEST_OBJ) $(LIBNAME)
- rm -f .config .simd .test librsimd.o rsimd.pc rsimd-local.pc
-
-distclean__: clean__
- rm -f $(DEP) $(TEST_DEP) .test
-
-lint:
- shellcheck -o all make.sh
-
-build_library build_tests clean distclean install .test test uninstall: .simd
- @$(MAKE) -f.simd -fMakefile $@__
+ $(CC) $(CFLAGS_LIB) -c $< -o $@
################################################################################
# Installation
@@ -151,18 +148,28 @@ rsimd-local.pc: rsimd.pc.in
-e 's#-I$${includedir}##g'\
rsimd.pc.in > $@
-install__: build_library pkg
- @$(SHELL) make.sh install "$(DESTDIR)$(PREFIX)/lib" $(LIBNAME)
- @$(SHELL) make.sh install "$(DESTDIR)$(PREFIX)/lib/pkgconfig" rsimd.pc
- @$(SHELL) make.sh install "$(DESTDIR)$(PREFIX)/include/rsimd" $(API)
- @$(SHELL) make.sh install "$(DESTDIR)$(PREFIX)/share/doc/rsimd" COPYING README.md
-
-uninstall__:
- rm -f $(DESTDIR)$(PREFIX)/lib/$(LIBNAME)
- rm -f $(DESTDIR)$(PREFIX)/lib/pkgconfig/rsimd.pc
+install: library pkg
+ install() { mode="$$1"; prefix="$$2"; shift 2; \
+ mkdir -p "$${prefix}"; \
+ cp "$$@" "$${prefix}"; \
+ chmod "$${mode}" "$$@"; \
+ }; \
+ install 755 "$(DESTDIR)$(LIBPREFIX)" $(LIBNAME); \
+ install 644 "$(DESTDIR)$(LIBPREFIX)/pkgconfig" rsimd.pc; \
+ install 644 "$(DESTDIR)$(INCPREFIX)/rsimd" $(API); \
+ install 644 "$(DESTDIR)$(PREFIX)/share/doc/rsimd" COPYING README.md
+
+uninstall:
+ rm -f $(DESTDIR)$(LIBPREFIX)/$(LIBNAME)
+ rm -f $(DESTDIR)$(LIBPREFIX)/pkgconfig/rsimd.pc
rm -f $(DESTDIR)$(PREFIX)/share/doc/rsimd/COPYING
rm -f $(DESTDIR)$(PREFIX)/share/doc/rsimd/README.md
- rm -f $$(echo $(API) | sed 's,src\/,$(DESTDIR)$(PREFIX)\/include\/rsimd\/,g')
+ rm -f $$(echo $(API) | sed 's,src\/,$(DESTDIR)$(INCPREFIX)\/rsimd\/,g')
+
+clean: clean_test
+ rm -f $(OBJ) $(DEP) $(LIBNAME)
+ rm -f .config librsimd.o rsimd.pc rsimd-local.pc
+ rm -f src/math.h src/rsimd.h
################################################################################
# Tests
@@ -186,30 +193,33 @@ TEST_SIMD256=\
TEST_SRC = $(TEST_SIMD$(SIMD_WIDTH))
TEST_OBJ = $(TEST_SRC:.c=.o)
TEST_DEP = $(TEST_SRC:.c=.d)
+TEST_TGT = $(TEST_SRC:.c=.t)
PKG_CONFIG_LOCAL = PKG_CONFIG_PATH="./:$${PKG_CONFIG_PATH}" $(PKG_CONFIG)
-RSIMD_CFLAGS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --cflags rsimd-local.pc)
-RSIMD_LIBS = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --libs rsimd-local.pc)
+INCS_TEST = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --cflags rsimd-local rsys)
+LIBS_TEST = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --libs rsimd-local rsys)
-build_tests__: build_library $(TEST_DEP) .test .simd
- @$(MAKE) -f.simd -fMakefile -f.test \
- $$(for i in $(TEST_DEP); do echo -f"$${i}"; done) test_bin
+CFLAGS_TEST = -std=c89 $(CFLAGS_EXE) $(INCS_TEST)
+LDFLAGS_TEST = $(LDFLAGS_EXE) $(LIBS_TEST)
-test__: build_tests__
- @$(SHELL) make.sh run_test $(TEST_SRC)
+tests: library $(TEST_DEP) $(TEST_TGT)
+ @$(MAKE) -fMakefile \
+ $$(for i in $(TEST_DEP); do echo -f"$${i}"; done) \
+ $$(for i in $(TEST_TGT); do echo -f"$${i}"; done) \
+ test_list
-.test__: Makefile make.sh
- @$(SHELL) make.sh config_test $(TEST_SRC) > .test
-
-clean_test:
- @$(SHELL) make.sh clean_test $(TEST_SRC)
+$(TEST_TGT):
+ @{ \
+ exe="$$(basename "$@" ".t")"; \
+ printf '%s: %s\n' "$${exe}" $(@:.t=.o); \
+ printf 'test_list: %s\n' "$${exe}"; \
+ } > $@
$(TEST_DEP): config.mk rsimd-local.pc
- @$(CC) -std=c89 $(CFLAGS_EXE) $(RSIMD_CFLAGS) $(RSYS_CFLAGS) \
- -MM -MT "$(@:.d=.o) $@" $(@:.d=.c) -MF $@
+ @$(CC) $(CFLAGS_TEST) -MM -MT "$(@:.d=.o) $@" $(@:.d=.c) -MF $@
$(TEST_OBJ): config.mk rsimd-local.pc
- $(CC) -std=c89 $(CFLAGS_EXE) $(RSIMD_CFLAGS) $(RSYS_CFLAGS) -c $(@:.o=.c) -o $@
+ $(CC) $(CFLAGS_TEST) -c $(@:.o=.c) -o $@
test_aosf33 \
test_aosf44 \
@@ -223,9 +233,27 @@ test_soa8f4 \
test_v4f \
test_v4i \
: config.mk rsimd-local.pc $(LIBNAME)
- $(CC) $(CFLAGS_EXE) -o $@ src/$@.o $(LDFLAGS_EXE) $(RSIMD_LIBS) $(RSYS_LIBS)
+ $(CC) -std=c89 $(CFLAGS_TEST) -o $@ src/$@.o $(LDFLAGS_TEST)
test_math4 \
test_math8 \
: config.mk rsimd-local.pc $(LIBNAME)
- $(CC) $(CFLAGS_EXE) -o $@ src/$@.o $(LDFLAGS_EXE) $(RSIMD_LIBS) $(RSYS_LIBS) -lm
+ $(CC) -std=c89 $(CFLAGS_TEST) -o $@ src/$@.o $(LDFLAGS_TEST) -lm
+
+clean_test:
+ rm -f $(TEST_DEP) $(TEST_OBJ) $(TEST_TGT)
+ for i in $(TEST_SRC); do rm -f "$$(basename "$${i}" ".c")"; done
+
+test: tests
+ @err=0; \
+ for i in $(TEST_SRC); do \
+ test="$$(basename "$${i}" ".c")"; \
+ printf '%s' "$${test}"; \
+ if "./$${test}" > /dev/null 2>&1; then \
+ printf '\n'; \
+ else \
+ printf ': error %s\n' "$$?"; \
+ err=$$((err+1)); \
+ fi \
+ done; \
+ [ "$${err}" -eq 0 ]
diff --git a/README.md b/README.md
@@ -22,6 +22,18 @@ Edit config.mk as needed, then run:
## Release notes
+### Version 0.6
+
+- Fix API headers. Do not include headers (even conditionaly) that
+ depend on SIMD instructions disabled when compiling the library. The
+ client application could activate compilation options that enabled
+ their inclusion, while they were not installed.
+- Improves the construction system. Simplifies it by doing everything in
+ one place (the Makefile). Provides additional macros to control
+ installation subdirectories. Do not detect SIMD instructions to be
+ activated at the time of compilation: let them be explicitly defined
+ by the configuration file.
+
### Version 0.5
- Replace CMake by Makefile as build system.
@@ -58,7 +70,7 @@ Edit config.mk as needed, then run:
## License
-Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
RSIMD is free software released under the GPL v3+ license: GNU GPL
version 3 or later. You are welcome to redistribute it under certain
diff --git a/config.mk b/config.mk
@@ -1,4 +1,4 @@
-VERSION = 0.5.0 # Library version
+VERSION = 0.6.0 # Library version
PREFIX = /usr/local
LIB_TYPE = SHARED
@@ -7,9 +7,12 @@ LIB_TYPE = SHARED
BUILD_TYPE = RELEASE
#BUILD_TYPE = DEBUG
-# If not set, SIMD WIDTH is retrieved from host CPU
-#SIMD_WIDTH = 128
-#SIMD_WIDTH = 256
+# Instruction sets to be used
+# SIMD_WIDTH = 128
+SIMD_WIDTH = 256
+
+LIBPREFIX = $(PREFIX)/lib
+INCPREFIX = $(PREFIX)/include
################################################################################
# Tools
@@ -29,15 +32,10 @@ PCFLAGS_STATIC = --static
PCFLAGS = $(PCFLAGS_$(LIB_TYPE))
RSYS_VERSION = 0.14
-RSYS_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys)
-RSYS_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys)
-
SLEEF_VERSION = 3.6
-SLEEF_CFLAGS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags sleef)
-SLEEF_LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs sleef)
-DPDC_CFLAGS = $(RSYS_CFLAGS) $(SLEEF_CFLAGS)
-DPDC_LIBS = $(RSYS_LIBS) $(SLEEF_LIBS)
+INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys sleef)
+LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys sleef)
################################################################################
# Compilation options
diff --git a/make.sh b/make.sh
@@ -1,117 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-set -e
-
-################################################################################
-# Helper functions
-################################################################################
-# Print the value of a variable in config.mk
-showvar()
-{
- var="$1"
- shift 1
-
- # To avoid messages from Make being displayed instead of the value of the
- # queried variable, we redirect its output to /dev/null and open a new file
- # descriptor to stdout to print the variable
-<< EOF "$@" -f 3>&1 1>/dev/null 2>&1 - || kill -HUP $$
-.POSIX:
-include config.mk
-showvar:
- @1>&3 echo \$(${var})
-EOF
- exec 3<&- # Close file descriptor 3
-}
-
-check_cpuflag()
-{
- sed -n "/^flags[[:blank:]]\{1,\}:/{p;q}" /proc/cpuinfo \
-| sed "s/.*[[:blank:]]\{1,\}\($1\)[[:blank:]]\{1,\}.*/\1/"
-}
-
-################################################################################
-# Main functions
-################################################################################
-config_simd()
-{
- simd_width="$(showvar SIMD_WIDTH "$@")"
- avx="$(check_cpuflag avx)"
- if [ -z "${simd_width}" ] \
- && [ -n "${avx}" ]; then
- simd_width=256
- fi
- printf "SIMD_WIDTH = %s\n" "${simd_width}"
-}
-
-config_test()
-{
- for i in "$@"; do
- test=$(basename "${i}" ".c")
- test_list="${test_list} ${test}"
- printf "%s: src/%s.o\n" "${test}" "${test}"
- done
- printf "test_bin: %s\n" "${test_list}"
-}
-
-run_test()
-{
- for i in "$@"; do
- test=$(basename "${i}" ".c")
-
- printf "%s " "${test}"
- if ./"${test}" > /dev/null 2>&1; then
- printf "\033[1;32mOK\033[m\n"
- else
- printf "\033[1;31mError\033[m\n"
- n=$((n+1))
- fi
- done 2> /dev/null
-}
-
-clean_test()
-{
- for i in "$@"; do
- rm -f "$(basename "${i}" ".c")"
- done
-}
-
-install()
-{
- prefix=$1
- shift 1
-
- for i in "$@"; do
- # Remove the "src" directory and append the "prefix"
- dst="${prefix}/${i#*/}"
-
- # Create the Install directory if required
- dir="${dst%/*}"
- if [ ! -d "${dir}" ]; then
- mkdir -p "${dir}"
- fi
-
- if cmp -s "${i}" "${dst}"; then
- printf "Up to date %s\n" "${dst}"
- else
- printf "Installing %s\n" "${dst}"
- cp "${i}" "${dst}"
- fi
- done
-}
-
-"$@"
diff --git a/src/aosf33.h b/src/aosf33.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/aosf44.c b/src/aosf44.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/aosf44.h b/src/aosf44.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/aosq.c b/src/aosq.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/aosq.h b/src/aosq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/avx/avx.h b/src/avx/avx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/avx/avxf.h b/src/avx/avxf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/avx/avxi.h b/src/avx/avxi.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/math.h b/src/math.h
@@ -1,29 +0,0 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
- *
- * The RSIMD library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The RSIMD library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with the RSIMD library. If not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef RSIMD_MATH_H
-#define RSIMD_MATH_H
-
-#include <rsys/rsys.h>
-
-#ifdef SIMD_SSE2
- #include "math4.h"
-#endif
-#ifdef SIMD_AVX
- #include "math8.h"
-#endif
-
-#endif /* RSIMD_MATH_H */
-
diff --git a/src/math.h.in b/src/math.h.in
@@ -0,0 +1,24 @@
+/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+ *
+ * The RSIMD library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The RSIMD library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with the RSIMD library. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef RSIMD_MATH_H
+#define RSIMD_MATH_H
+
+#include <rsys/rsys.h>
+
+#include "math4.h"
+#include "math8.h"
+
+#endif /* RSIMD_MATH_H */
diff --git a/src/math4.c b/src/math4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/math4.h b/src/math4.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/math8.c b/src/math8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/math8.h b/src/math8.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/mathX.h b/src/mathX.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/mathX_c.h b/src/mathX_c.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/rsimd.h b/src/rsimd.h
@@ -1,36 +0,0 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
- *
- * The RSIMD library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The RSIMD library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with the RSIMD library. If not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef RSIMD_H
-#define RSIMD_H
-
-#include <rsys/rsys.h>
-
-#if defined(RSIMD_SHARED_BUILD)
- #define RSIMD_API extern EXPORT_SYM
-#elif defined(RSIMD_STATIC_BUILD)
- #define RSIMD_API extern LOCAL_SYM
-#else
- #define RSIMD_API extern IMPORT_SYM
-#endif
-
-#ifdef SIMD_SSE2
- #include "sse/sse.h"
-#endif
-#ifdef SIMD_AVX
- #include "avx/avx.h"
-#endif
-
-#endif /* RSIMD_H */
diff --git a/src/rsimd.h.in b/src/rsimd.h.in
@@ -0,0 +1,32 @@
+/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+ *
+ * The RSIMD library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The RSIMD library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with the RSIMD library. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef RSIMD_H
+#define RSIMD_H
+
+#include <rsys/rsys.h>
+
+#if defined(RSIMD_SHARED_BUILD)
+ #define RSIMD_API extern EXPORT_SYM
+#elif defined(RSIMD_STATIC_BUILD)
+ #define RSIMD_API extern LOCAL_SYM
+#else
+ #define RSIMD_API extern IMPORT_SYM
+#endif
+
+#include "sse/sse.h"
+#include "avx/avx.h"
+
+#endif /* RSIMD_H */
diff --git a/src/soa4f2.h b/src/soa4f2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soa4f3.h b/src/soa4f3.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soa4f4.h b/src/soa4f4.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soa8f2.h b/src/soa8f2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soa8f3.h b/src/soa8f3.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soa8f4.h b/src/soa8f4.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soaXf2.h b/src/soaXf2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soaXf3.h b/src/soaXf3.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soaXfY.h b/src/soaXfY.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soaXfY_begin.h b/src/soaXfY_begin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/soaXfY_end.h b/src/soaXfY_end.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/sse/sse.h b/src/sse/sse.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/sse/sse_swz.h b/src/sse/sse_swz.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/sse/ssef.h b/src/sse/ssef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/sse/ssei.h b/src/sse/ssei.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_aosf33.c b/src/test_aosf33.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_aosf44.c b/src/test_aosf44.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_aosq.c b/src/test_aosq.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_soa4f2.c b/src/test_soa4f2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_soa4f3.c b/src/test_soa4f3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_soa4f4.c b/src/test_soa4f4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_soa8f2.c b/src/test_soa8f2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_soa8f3.c b/src/test_soa8f3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_soa8f4.c b/src/test_soa8f4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_soaXfY.h b/src/test_soaXfY.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_v4f.c b/src/test_v4f.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_v4i.c b/src/test_v4i.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_v8f.c b/src/test_v8f.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/test_v8i.c b/src/test_v8i.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/vXf_begin.h b/src/vXf_begin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/vXf_end.h b/src/vXf_end.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2019, 2021, 2023 Vincent Forest (vaplv@free.fr)
+/* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
*
* The RSIMD library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published