VCTR
Loading...
Searching...
No Matches
vctr.h
1
/*
2
==============================================================================
3
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
5
Copyright 2022- by sonible GmbH.
6
7
This file is part of VCTR - Versatile Container Templates Reconceptualized.
8
9
VCTR is free software: you can redistribute it and/or modify
10
it under the terms of the GNU Lesser General Public License version 3
11
only, as published by the Free Software Foundation.
12
13
VCTR is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU Lesser General Public License version 3 for more details.
17
18
You should have received a copy of the GNU Lesser General Public License
19
version 3 along with VCTR. If not, see <https://www.gnu.org/licenses/>.
20
==============================================================================
21
*/
22
23
/*******************************************************************************
24
VCTR can optionally be used as a JUCE Module. The block below describes the
25
properties of this module, and is read by the Projucer to automatically generate
26
project code that uses it.
27
28
BEGIN_JUCE_MODULE_DECLARATION
29
ID: vctr
30
vendor: sonible
31
version: 1.0.0
32
name: VCTR
33
description: A powerful C++ 20 wrapper around your favourite standard library containers.
34
website: https://github.com/sonible/vctr
35
license: MIT
36
minimumCppStandard: 20
37
dependencies:
38
OSXFrameworks: Accelerate
39
iOSFrameworks: Accelerate
40
END_JUCE_MODULE_DECLARATION
41
*******************************************************************************/
42
43
#pragma once
44
45
#include <utility>
46
#include <vector>
47
#include <array>
48
#include <span>
49
#include <concepts>
50
#include <cmath>
51
#include <ostream>
52
#include <bit>
53
#include <bitset>
54
#include <iterator>
55
#include <memory>
56
#include <cstring>
57
#include <ranges>
58
#include <algorithm>
59
#include <numeric>
60
#include <optional>
61
#include <functional>
62
63
#ifdef jassert
64
#define VCTR_ASSERT(e) jassert (e)
65
#else
66
#include <cassert>
67
#define VCTR_ASSERT(e) assert (e)
68
#endif
69
70
// Also includes Concepts/ElementConcepts.h internally
71
#include "vctr_forward_declarations.h"
72
73
#include "Miscellaneous/Config.h"
74
75
#include "Miscellaneous/CompilerSpecificAttributes.h"
76
77
#if VCTR_X64
78
#include <immintrin.h>
79
#endif
80
81
#if VCTR_ARM
82
#include <arm_neon.h>
83
#endif
84
85
#if VCTR_APPLE
86
#include <Accelerate/Accelerate.h>
87
#endif
88
89
#if VCTR_USE_IPP
90
#include <ippcore.h>
91
#include <ipps.h>
92
#include <ippvm.h>
93
#endif
94
95
#if VCTR_USE_GCEM
96
VCTR_START_IGNORE_WARNING_MSVC (4244)
// conversion from 'long double' to 'T', possible loss of data
97
#include <gcem.hpp>
98
VCTR_END_IGNORE_WARNING_MSVC
99
100
#if ((GCEM_VERSION_MAJOR < 1) || (GCEM_VERSION_MAJOR == 1 && GCEM_VERSION_MINOR < 16))
101
#error "VCTR needs gcem version 1.16.0 or greater"
102
#endif
103
104
#endif
105
106
//==============================================================================
107
// Doxygen group definitions
108
//==============================================================================
125
#include "TypeTraitsAndConcepts/ContainerAndExpressionConcepts.h"
126
#include "TypeTraitsAndConcepts/FunctionConcepts.h"
127
128
#include "Containers/VectorBoolWorkaround.h"
129
130
#include "SIMD/SIMDHelpers.h"
131
#include "SIMD/SSE/SSERegister.h"
132
#include "SIMD/AVX/AVXRegister.h"
133
#include "SIMD/Neon/NeonRegister.h"
134
135
#include "PlatformVectorOps/PlatformVectorOpsHelpers.h"
136
#include "PlatformVectorOps/AppleAccelerate.h"
137
#include "PlatformVectorOps/IntelIPP.h"
138
139
#include "TypeTraitsAndConcepts/Traits.h"
140
141
#include "Expressions/ExpressionTemplate.h"
142
143
#include "Miscellaneous/Range.h"
144
145
#include "Containers/VctrBase.h"
146
#include "Containers/Span.h"
147
#include "Miscellaneous/AlignedAllocator.h"
148
#include "Containers/Vector.h"
149
#include "Containers/Array.h"
150
151
#include "Expressions/ReductionExpression.h"
152
#include "Expressions/ExpressionChainBuilder.h"
153
154
#include "Expressions/Filter/NoAcceleration.h"
155
#include "Expressions/Filter/SIMDFilter.h"
156
#include "Expressions/Filter/PlatformVectorOpsFilter.h"
157
158
#include "Expressions/Generic/Map.h"
159
#include "Expressions/Generic/TransformedBy.h"
160
#include "Expressions/Generic/TransformedByStaticCast.h"
161
162
#include "Expressions/BasicMath/Abs.h"
163
#include "Expressions/BasicMath/Clamp.h"
164
#include "Expressions/BasicMath/Cube.h"
165
#include "Expressions/BasicMath/Sqrt.h"
166
#include "Expressions/BasicMath/Square.h"
167
#include "Expressions/BasicMath/Add.h"
168
#include "Expressions/BasicMath/Subtract.h"
169
#include "Expressions/BasicMath/Multiply.h"
170
#include "Expressions/BasicMath/Divide.h"
171
#include "Expressions/BasicMath/Max.h"
172
#include "Expressions/BasicMath/Min.h"
173
#include "Expressions/BasicMath/Mean.h"
174
#include "Expressions/BasicMath/Sum.h"
175
#include "Expressions/BasicMath/NormalizeSum.h"
176
177
#include "Expressions/Complex/Angle.h"
178
#include "Expressions/Complex/Conjugate.h"
179
#include "Expressions/Complex/Imag.h"
180
#include "Expressions/Complex/Real.h"
181
#include "Expressions/Complex/PowerSpectrum.h"
182
183
#include "Expressions/Exp/Exp.h"
184
#include "Expressions/Exp/Ln.h"
185
#include "Expressions/Exp/Log2.h"
186
#include "Expressions/Exp/Log10.h"
187
#include "Expressions/Exp/Pow.h"
188
189
#include "Expressions/Trigonometric/Sin.h"
190
#include "Expressions/Trigonometric/Cos.h"
191
#include "Expressions/Trigonometric/Tan.h"
192
#include "Expressions/Trigonometric/Sinh.h"
193
#include "Expressions/Trigonometric/Cosh.h"
194
#include "Expressions/Trigonometric/Tanh.h"
195
#include "Expressions/Trigonometric/Asin.h"
196
#include "Expressions/Trigonometric/Acos.h"
197
#include "Expressions/Trigonometric/Atan.h"
198
#include "Expressions/Trigonometric/Asinh.h"
199
#include "Expressions/Trigonometric/Acosh.h"
200
#include "Expressions/Trigonometric/Atanh.h"
201
202
#include "Expressions/DSP/Decibels.h"
203
204
#include "Generators/Linspace.h"
205
206
#include "Miscellaneous/StdOstreamOperator.h"
207
208
//==============================================================================
209
// tpp files go here
210
//==============================================================================
211
#include "Containers/VctrBase.tpp"
include
vctr
vctr.h
Generated by
1.9.6