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: LGPLv3
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
#include <ratio>
63
64
#ifdef jassert
65
#define VCTR_ASSERT(e) jassert (e)
66
#else
67
#include <cassert>
68
#define VCTR_ASSERT(e) assert (e)
69
#endif
70
71
// Also includes Concepts/ElementConcepts.h internally
72
#include "vctr_forward_declarations.h"
73
74
#include "Miscellaneous/Config.h"
75
76
#include "Miscellaneous/CompilerSpecificAttributes.h"
77
78
#if VCTR_X64
79
#include <immintrin.h>
80
#endif
81
82
#if VCTR_ARM
83
#include <arm_neon.h>
84
#endif
85
86
#if VCTR_APPLE
87
#include <Accelerate/Accelerate.h>
88
#endif
89
90
#if VCTR_USE_IPP
91
#include <ipp.h>
92
#endif
93
94
#if VCTR_USE_GCEM
95
VCTR_START_IGNORE_WARNING_MSVC (4244)
// conversion from 'long double' to 'T', possible loss of data
96
#include <gcem.hpp>
97
VCTR_END_IGNORE_WARNING_MSVC
98
99
#if ((GCEM_VERSION_MAJOR < 1) || (GCEM_VERSION_MAJOR == 1 && GCEM_VERSION_MINOR < 16))
100
#error "VCTR needs gcem version 1.16.0 or greater"
101
#endif
102
103
#endif
104
105
//==============================================================================
106
// Doxygen group definitions
107
//==============================================================================
124
#include "TypeTraitsAndConcepts/ContainerAndExpressionConcepts.h"
125
#include "TypeTraitsAndConcepts/FunctionConcepts.h"
126
127
#include "Containers/VectorBoolWorkaround.h"
128
129
#include "SIMD/SIMDHelpers.h"
130
#include "SIMD/SSE/SSERegister.h"
131
#include "SIMD/AVX/AVXRegister.h"
132
#include "SIMD/Neon/NeonRegister.h"
133
134
#include "PlatformVectorOps/PlatformVectorOpsHelpers.h"
135
#include "PlatformVectorOps/AppleAccelerate.h"
136
#include "PlatformVectorOps/IntelIPP.h"
137
138
#include "TypeTraitsAndConcepts/Traits.h"
139
140
#include "Expressions/ExpressionTemplate.h"
141
142
#include "Miscellaneous/Range.h"
143
#include "Miscellaneous/StdRatioHelpers.h"
144
#include "Miscellaneous/BitCast.h"
145
146
#include "Containers/VctrBase.h"
147
#include "Containers/Span.h"
148
#include "Miscellaneous/AlignedAllocator.h"
149
#include "Containers/Vector.h"
150
#include "Containers/Array.h"
151
152
#include "Expressions/ReductionExpression.h"
153
#include "Expressions/ExpressionChainBuilder.h"
154
155
#include "Expressions/Filter/NoAcceleration.h"
156
#include "Expressions/Filter/SIMDFilter.h"
157
#include "Expressions/Filter/PlatformVectorOpsFilter.h"
158
159
#include "Expressions/Generic/Map.h"
160
#include "Expressions/Generic/TransformedBy.h"
161
#include "Expressions/Generic/TransformedByStaticCast.h"
162
163
#include "Expressions/BasicMath/Abs.h"
164
#include "Expressions/BasicMath/Clamp.h"
165
#include "Expressions/BasicMath/Cube.h"
166
#include "Expressions/BasicMath/Sqrt.h"
167
#include "Expressions/BasicMath/Square.h"
168
#include "Expressions/BasicMath/Add.h"
169
#include "Expressions/BasicMath/Subtract.h"
170
#include "Expressions/BasicMath/Multiply.h"
171
#include "Expressions/BasicMath/MultiplyAccumulate.h"
172
#include "Expressions/BasicMath/MultiplySubtract.h"
173
#include "Expressions/BasicMath/Divide.h"
174
#include "Expressions/BasicMath/Max.h"
175
#include "Expressions/BasicMath/Min.h"
176
#include "Expressions/BasicMath/Mean.h"
177
#include "Expressions/BasicMath/Sum.h"
178
#include "Expressions/BasicMath/NormalizeSum.h"
179
180
#include "Expressions/Complex/Angle.h"
181
#include "Expressions/Complex/Conjugate.h"
182
#include "Expressions/Complex/Imag.h"
183
#include "Expressions/Complex/PowerSpectrum.h"
184
#include "Expressions/Complex/Real.h"
185
#include "Expressions/Complex/RealToComplex.h"
186
187
#include "Expressions/Exp/Exp.h"
188
#include "Expressions/Exp/Ln.h"
189
#include "Expressions/Exp/Log2.h"
190
#include "Expressions/Exp/Log10.h"
191
#include "Expressions/Exp/Pow.h"
192
193
#include "Expressions/Trigonometric/Sin.h"
194
#include "Expressions/Trigonometric/Cos.h"
195
#include "Expressions/Trigonometric/Tan.h"
196
#include "Expressions/Trigonometric/Sinh.h"
197
#include "Expressions/Trigonometric/Cosh.h"
198
#include "Expressions/Trigonometric/Tanh.h"
199
#include "Expressions/Trigonometric/Asin.h"
200
#include "Expressions/Trigonometric/Acos.h"
201
#include "Expressions/Trigonometric/Atan.h"
202
#include "Expressions/Trigonometric/Asinh.h"
203
#include "Expressions/Trigonometric/Acosh.h"
204
#include "Expressions/Trigonometric/Atanh.h"
205
206
#include "Expressions/DSP/FastExp.h"
207
#include "Expressions/DSP/FastLog.h"
208
#include "Expressions/DSP/Decibels.h"
209
210
#include "Generators/Linspace.h"
211
212
#include "Miscellaneous/StdOstreamOperator.h"
213
214
//==============================================================================
215
// tpp files go here
216
//==============================================================================
217
#include "Containers/VctrBase.tpp"
include
vctr
vctr.h
Generated by
1.9.6