103 template <
typename T>
115 template <
typename T>
127 template <
typename T>
141 template <
typename T>
155 template <
typename T>
169 template <
typename T>
176 template <
typename T>
179 result.lerp(
A, B, t);
197 template <
typename T>
205 if (
A.rows == 3 &&
A.cols == 3 && B.rows == 3 && B.cols == 3) {
211 if (
A.rows == 4 &&
A.cols == 4 && B.rows == 4 && B.cols == 4) {
217 if (
A.rows == 8 &&
A.cols == 8 && B.rows == 8 && B.cols == 8) {
223 if (
A.rows == 16 &&
A.cols == 16 && B.rows == 16 && B.cols == 16) {
229 if (
A.rows == 32 &&
A.cols == 32 && B.rows == 32 && B.cols == 32) {
246 return Acol._mul_mat(B);
256 template <
typename T>
258 return A.transpose();
266 template <
typename T>
279 template <
typename T>
292 template <
typename T>
297 template <
typename T>
302 template <
typename T>
308 template<
typename K, std::
size_t Rank>
309 template <
size_t I,
size_t J>
310 Tensor<K, Rank - 2> Tensor<K, Rank>::contract_tensor()
const {
311 static_assert(
I < Rank &&
J < Rank &&
I !=
J,
"Invalid contraction indices");
315 template <
typename K, std::
size_t Rank>
321 template<
typename K,
size_t R1,
size_t R2>
326 template <
size_t I,
size_t J,
typename K, std::
size_t Rank>
328 static_assert(
I < Rank &&
J < Rank &&
I !=
J,
"Invalid contraction indices");
332 template <
typename T>
337 template <
typename T>
342 template <
typename T>
350 input.centered_derivative(input, output, axis, dx);
359 template<
typename K,
size_t Rank>
361 input.centered_derivative(input, output, axis, dx);
365 template<
typename K,
size_t Rank>
367 input.centered_derivative_order4_rank(input, output, axis, dx);
Numerical differentiation operators using SIMD.
static void backward(CVectorT &a)
Perform inverse FFT (in-place)
Definition Spectral.hpp:93
static void forward(CVectorT &a)
Perform forward FFT (in-place)
Definition Spectral.hpp:38
Multi-dimensional tensor class with fixed rank and SIMD support.
Definition Tensor.hpp:25
__attribute__((always_inline, hot, flatten)) inline size_t flatten_index(const std transpose_simd() const
Definition Tensor.hpp:287
Tensor()
Default constructor.
Definition Tensor.hpp:35
Aligned, SIMD-optimized mathematical vector class for scientific computing.
Definition Vector.hpp:26
Direct Gaussian elimination solver with SIMD acceleration.
Definition LinearSolver.hpp:29
static void raw_row_echelon(Matrix< K > &A, Vector< K > *b=nullptr, K eps=1e-12)
Definition LinearSolver.hpp:141
static Vector< K > solve(const Matrix< K > &A, const Vector< K > &b, K tol=1e-10, int max_iter=2000)
Solve the system using the Jacobi method.
Definition LinearSolver.hpp:212
Definition Derivate.hpp:24
Vector< T > cross_vec(const Vector< T > &a, const Vector< T > &b)
Definition Functional.hpp:128
Vector< T > lerp_vec(const Vector< T > &a, const Vector< T > &b, T t)
Definition Functional.hpp:104
Vector< T > mul_vec(const Matrix< T > &A, const Vector< T > &x)
Definition Functional.hpp:280
Matrix< T > lerp_mat(const Matrix< T > &A, const Matrix< T > &B, T t)
Definition Functional.hpp:177
Matrix< T > scl_mat(const Matrix< T > &A, T scalar)
Definition Functional.hpp:170
void forwardFFT(tensorium::Vector< std::complex< T > > &data)
Definition Functional.hpp:374
Matrix< T > trace_mat(const Matrix< T > &A)
Definition Functional.hpp:267
Tensor< K, Rank - 2 > contract_tensor(const Tensor< K, Rank > &T)
Definition Functional.hpp:327
Vector< T > scl_vec(const Vector< T > &a, T scalar)
Definition Functional.hpp:49
void row_echelon(Matrix< T > &A, Vector< T > *b=nullptr, T eps=T(1e-12))
Definition Functional.hpp:343
Vector< T > linear_combination_vec(const std::vector< Vector< T > > &u, const std::vector< T > &coef)
Definition Functional.hpp:116
Vector< T > add_vec(const Vector< T > &a, const Vector< T > &b)
Definition Functional.hpp:21
T norm2_vec(const Vector< T > &a)
Definition Functional.hpp:69
T dot_vec(const Vector< T > &a, const Vector< T > &b)
Definition Functional.hpp:86
Matrix< T > inverse_mat(const Matrix< T > &A)
Definition Functional.hpp:293
Matrix< T > sub_mat(const Matrix< T > &A, const Matrix< T > &B)
Definition Functional.hpp:156
Vector< T > jacobi_solve(const Matrix< T > &A, const Vector< T > &b, T tol=1e-6, int max_iter=1000)
Definition Functional.hpp:338
Matrix< T > add_mat(const Matrix< T > &A, const Matrix< T > &B)
Definition Functional.hpp:142
T norm1_vec(const Vector< T > &a)
Definition Functional.hpp:61
Tensor< K, Rank > transpose_tensor(const Tensor< K, Rank > &T)
Definition Functional.hpp:316
void backwardFFT(tensorium::Vector< std::complex< T > > &data)
Definition Functional.hpp:380
void centered_derivative(const Derivate< K > &input, Derivate< K > &output, size_t axis, K dx)
Definition Functional.hpp:349
Matrix< T > mul_mat(const Matrix< T > &A, const Matrix< T > &B)
Definition Functional.hpp:198
void centered_derivative_order4(const Derivate< K > &input, Derivate< K > &output, size_t axis, K dx)
Definition Functional.hpp:355
size_t rank_mat(const Matrix< T > &A)
Definition Functional.hpp:303
Vector< T > gauss_solve(const Matrix< T > &A, const Vector< T > &b)
Definition Functional.hpp:333
Tensor< K, R1+R2 > mul_tensor(const Tensor< K, R1 > &A, const Tensor< K, R2 > &B)
Definition Functional.hpp:322
T normInf_vec(const Vector< T > &a)
Definition Functional.hpp:77
T det_mat(const Matrix< T > &A)
Definition Functional.hpp:298
Matrix< T > transpose_mat(const Matrix< T > &A)
Definition Functional.hpp:257
Vector< T > sub_vec(const Vector< T > &a, const Vector< T > &b)
Definition Functional.hpp:35
void backwardFFP(tensorium::Vector< std::complex< T > > &data)
Definition Functional.hpp:386
T cosine_vec(const Vector< T > &a, const Vector< T > &b)
Definition Functional.hpp:94