deal.II version GIT relicensing-2291-g668cd86249 2024-12-24 11:30:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
vectorization.cc
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2018 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
16
18
19// VectorizedArray must be a POD (plain old data) type to make sure it
20// can use maximum level of compiler optimization.
21// A type is POD if it has standard layout (similar to a C struct)
22// and it is trivial (can be statically default initialized)
23// Here, the trait std::is_pod cannot be used because it is deprecated
24// in C++20.
25//
26// Check these statements to ensure we catch problems if we accidentally
27// make these classes non-POD.
28static_assert(
29 std::is_standard_layout_v<VectorizedArray<double>> &&
30 std::is_trivially_default_constructible_v<VectorizedArray<double>> &&
31 std::is_trivially_copyable_v<VectorizedArray<double>>,
32 "VectorizedArray<double> must be a POD type");
33static_assert(
34 std::is_standard_layout_v<VectorizedArray<float>> &&
35 std::is_trivially_default_constructible_v<VectorizedArray<float>> &&
36 std::is_trivially_copyable_v<VectorizedArray<float>>,
37 "VectorizedArray<float> must be a POD type");
38
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499