Skip to content

Commit cc0ec9d

Browse files
committed
Improve indexing and some more cleanup
1 parent 0339d98 commit cc0ec9d

File tree

5 files changed

+514
-363
lines changed

5 files changed

+514
-363
lines changed

.github/workflows/simd.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
strategy:
1717
matrix:
18-
flags: ['-msse2', '-msse3', '-msse4', '-mavx', '-mavx2']
18+
flags: ['-msse2', '-msse3', '-mssse3', '-msse4', '-mavx', '-mavx2']
1919

2020
steps:
2121
- uses: actions/checkout@v3

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Flatbush for C++
22

33
[![Ubuntu](https://github.com/chusitoo/flatbush/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/chusitoo/flatbush/actions/workflows/ubuntu.yml) [![Windows](https://github.com/chusitoo/flatbush/actions/workflows/windows.yml/badge.svg)](https://github.com/chusitoo/flatbush/actions/workflows/windows.yml) [![macOS](https://github.com/chusitoo/flatbush/actions/workflows/macos.yml/badge.svg)](https://github.com/chusitoo/flatbush/actions/workflows/macos.yml) [![CodeQL](https://github.com/chusitoo/flatbush/actions/workflows/codeql.yml/badge.svg)](https://github.com/chusitoo/flatbush/actions/workflows/codeql.yml)
4+
45
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/chusitoo/flatbush)](https://github.com/chusitoo/flatbush/releases/latest) [![Conan Center](https://img.shields.io/conan/v/flatbush)](https://conan.io/center/recipes/flatbush) [![Vcpkg](https://img.shields.io/vcpkg/v/flatbush)](https://vcpkg.io/en/package/flatbush)
56

67
A C++ adaptation of the great Flatbush JS library which implements a packed Hilbert R-tree algorithm.
@@ -86,6 +87,18 @@ This is a single header library with the aim to support C++11 and up.
8687

8788
If the target compiler does not have support for C++20 features, namely the ```<span>``` header, a minimalistic implementation is available if **FLATBUSH_SPAN** flag is defined.
8889

90+
### SIMD Optimizations
91+
The library automatically detects and uses SIMD instructions for improved performance. You can control the SIMD level with the following flags:
92+
93+
| ISA Level | GCC/Clang | MSVC |
94+
|-----------|-----------|------|
95+
| **SSE2** (default on x64) | `-msse2` | `/arch:SSE2` |
96+
| **SSE3** | `-msse3` | N/A |
97+
| **SSE4** | `-msse4` | N/A |
98+
| **AVX** | `-mavx` | `/arch:AVX` |
99+
| **AVX2** | `-mavx2` | `/arch:AVX2` |
100+
| **AVX512** | `-mavx512f -mavx512dq -mavx512vl` | `/arch:AVX512` |
101+
89102
### Unit tests
90103

91104
#### CMake

0 commit comments

Comments
 (0)