xtensor
Loading...
Searching...
No Matches
xtensor_forward.hpp
1/***************************************************************************
2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
3 * Copyright (c) QuantStack *
4 * *
5 * Distributed under the terms of the BSD 3-Clause License. *
6 * *
7 * The full license is in the file LICENSE, distributed with this software. *
8 ****************************************************************************/
9
10#ifndef XTENSOR_FORWARD_HPP
11#define XTENSOR_FORWARD_HPP
12
13// This file contains forward declarations and
14// alias types to solve the problem of circular
15// includes. It should not contain anything else
16// and should not bring additional dependencies to
17// the files that include it. So:
18// - do NOT define classes of metafunctions here
19// - do NOT include other headers
20//
21// If you need to do so, something is probably
22// going wrong (either your change, or xtensor
23// needs to be refactored).
24
25#include <memory>
26#include <vector>
27
28#include <xtl/xoptional_sequence.hpp>
29
30#include "xlayout.hpp"
31#include "xtensor_config.hpp"
32
33namespace xt
34{
35 struct xtensor_expression_tag;
36 struct xoptional_expression_tag;
37
38 template <class C>
39 struct xcontainer_inner_types;
40
41 template <class D>
42 class xcontainer;
43
44 template <class T, class A>
45 class uvector;
46
47 template <class T, std::size_t N, class A, bool Init>
48 class svector;
49
50 template <
51 class EC,
52 layout_type L = XTENSOR_DEFAULT_LAYOUT,
53 class SC = XTENSOR_DEFAULT_SHAPE_CONTAINER(typename EC::value_type, typename EC::allocator_type, std::allocator<typename EC::size_type>),
54 class Tag = xtensor_expression_tag>
55 class xarray_container;
56
77 template <
78 class T,
79 layout_type L = XTENSOR_DEFAULT_LAYOUT,
80 class A = XTENSOR_DEFAULT_ALLOCATOR(T),
81 class SA = std::allocator<typename std::vector<T, A>::size_type>>
82 using xarray = xarray_container<XTENSOR_DEFAULT_DATA_CONTAINER(T, A), L, XTENSOR_DEFAULT_SHAPE_CONTAINER(T, A, SA)>;
83
84 template <
85 class EC,
86 layout_type L = XTENSOR_DEFAULT_LAYOUT,
87 class SC = XTENSOR_DEFAULT_SHAPE_CONTAINER(typename EC::value_type, std::allocator<typename EC::size_type>, std::allocator<typename EC::size_type>),
89 class xarray_adaptor;
90
101 template <
102 class T,
103 layout_type L = XTENSOR_DEFAULT_LAYOUT,
104 class A = XTENSOR_DEFAULT_ALLOCATOR(T),
105 class BC = xtl::xdynamic_bitset<std::size_t>,
106 class SA = std::allocator<typename std::vector<T, A>::size_type>>
108 xtl::xoptional_vector<T, A, BC>,
109 L,
110 XTENSOR_DEFAULT_SHAPE_CONTAINER(T, A, SA),
112
113 template <class EC, std::size_t N, layout_type L = XTENSOR_DEFAULT_LAYOUT, class Tag = xtensor_expression_tag>
114 class xtensor_container;
115
136 template <class T, std::size_t N, layout_type L = XTENSOR_DEFAULT_LAYOUT, class A = XTENSOR_DEFAULT_ALLOCATOR(T)>
137 using xtensor = xtensor_container<XTENSOR_DEFAULT_DATA_CONTAINER(T, A), N, L>;
138
139 template <class EC, std::size_t N, layout_type L = XTENSOR_DEFAULT_LAYOUT, class Tag = xtensor_expression_tag>
140 class xtensor_adaptor;
141
142 template <class EC, std::size_t N, layout_type L = XTENSOR_DEFAULT_LAYOUT, class Tag = xtensor_expression_tag>
143 class xtensor_view;
144
145 template <std::size_t... N>
146 class fixed_shape;
147
152 template <std::size_t... N>
153 using xshape = fixed_shape<N...>;
154
155 template <class ET, class S, layout_type L = XTENSOR_DEFAULT_LAYOUT, bool Sharable = true, class Tag = xtensor_expression_tag>
156 class xfixed_container;
157
158 template <class ET, class S, layout_type L = XTENSOR_DEFAULT_LAYOUT, bool Sharable = true, class Tag = xtensor_expression_tag>
159 class xfixed_adaptor;
160
181 template <class T, class FSH, layout_type L = XTENSOR_DEFAULT_LAYOUT, bool Sharable = true>
183
194 template <
195 class T,
196 std::size_t N,
197 layout_type L = XTENSOR_DEFAULT_LAYOUT,
198 class A = XTENSOR_DEFAULT_ALLOCATOR(T),
199 class BC = xtl::xdynamic_bitset<std::size_t>>
201
202 template <class CT, class... S>
203 class xview;
204
205 template <class F, class... CT>
206 class xfunction;
207}
208
209#endif
Fixed shape implementation for compile time defined arrays.
Dense multidimensional container adaptor with tensor semantic.
Definition xarray.hpp:217
Dense multidimensional container with tensor semantic.
Definition xarray.hpp:85
Dense multidimensional container adaptor with tensor semantic and fixed dimension.
Definition xfixed.hpp:448
Dense multidimensional container with tensor semantic and fixed dimension.
Definition xfixed.hpp:298
Multidimensional function operating on xtensor expressions.
Dense multidimensional container adaptor with tensor semantics and fixed dimension.
Definition xtensor.hpp:212
Dense multidimensional container with tensor semantic and fixed dimension.
Definition xtensor.hpp:86
Dense multidimensional container adaptor with view semantics and fixed dimension.
Definition xtensor.hpp:329
Multidimensional view with tensor semantic.
Definition xview.hpp:360
standard mathematical functions for xexpressions
layout_type
Definition xlayout.hpp:24