1#ifndef LINEARALGEBRA_SRC_MOLPRO_LINALG_ARRAY_DEFAULT_HANDLER_H
2#define LINEARALGEBRA_SRC_MOLPRO_LINALG_ARRAY_DEFAULT_HANDLER_H
3#include <molpro/linalg/array/ArrayHandlerDDisk.h>
4#include <molpro/linalg/array/ArrayHandlerDDiskDistr.h>
5#include <molpro/linalg/array/ArrayHandlerDDiskSparse.h>
6#include <molpro/linalg/array/ArrayHandlerDefault.h>
7#include <molpro/linalg/array/ArrayHandlerDistr.h>
8#include <molpro/linalg/array/ArrayHandlerDistrDDisk.h>
9#include <molpro/linalg/array/ArrayHandlerDistrSparse.h>
10#include <molpro/linalg/array/ArrayHandlerIterable.h>
11#include <molpro/linalg/array/ArrayHandlerIterableSparse.h>
12#include <molpro/linalg/array/ArrayHandlerSparse.h>
13#include <molpro/linalg/array/type_traits.h>
17template <
class T,
class S, ArrayFamily = array_family_v<T>, ArrayFamily = array_family_v<S>>
22template <
class T,
class S>
27template <
class T,
class S>
32template <
class T,
class S>
37template <
class T,
class S>
42template <
class T,
class S>
47template <
class T,
class S>
52template <
class T,
class S>
57template <
class T,
class S>
62template <
class T,
class S>
67template <
class T,
class S>
72template <
class T,
class S,
typename = default_handler_t<T, S>>
74 auto operator()() {
return std::make_shared<default_handler_t<T, S>>(); }
81template <
class T,
class S>
Definition: ArrayHandlerDDiskDistr.h:14
Definition: ArrayHandlerDDiskSparse.h:14
Definition: ArrayHandlerDDisk.h:13
Fall back handler that calls member functions of arrays.
Definition: ArrayHandlerDefault.h:16
Definition: ArrayHandlerDistrDDisk.h:14
Definition: ArrayHandlerDistrSparse.h:12
Definition: ArrayHandlerDistr.h:14
Definition: ArrayHandlerIterableSparse.h:14
Array handler for two containers both of which can be iterated through using begin() and end() member...
Definition: ArrayHandlerIterable.h:35
Array handler between two sparse arrays (e.g. std::map)
Definition: ArrayHandlerSparse.h:17
Definition: ArrayHandler.h:22
auto create_default_handler()
Creates an appropriate handler for the given array types.
Definition: default_handler.h:82
typename default_handler< T, S >::value default_handler_t
Definition: default_handler.h:68
ArrayFamily
A tag to distinguish different families for array types, e.g. std::vector<> is iterable,...
Definition: type_traits.h:71
Definition: default_handler.h:18
SFINAE functor for default handler creation allows for more customisation.
Definition: default_handler.h:73
auto operator()()
Definition: default_handler.h:74