Template Struct TypeInfo< ::librapid::detail::Function< desc, Functor_, Args… > >#

Struct Documentation#

template<typename desc, typename Functor_, typename ...Args>
struct TypeInfo<::librapid::detail::Function<desc, Functor_, Args...>>#

Public Types

using Scalar = decltype(std::declval<Functor_>()(std::declval<typename TypeInfo<std::decay_t<Args>>::Scalar>()...))#
using Packet = typename TypeInfo<Scalar>::Packet#
using Backend = decltype(commonBackend<Args...>())#
using ShapeType = typename detail::ShapeTypeHelper<typename TypeInfo<Args>::ShapeType...>::Type#
using ArrayType = Array<Scalar, Backend>#
using StorageType = typename TypeInfo<ArrayType>::StorageType#

Public Static Attributes

static constexpr detail::LibRapidType type = detail::LibRapidType::ArrayFunction#
static constexpr bool allowVectorisation = checkAllowVectorisation<Args...>()#
static constexpr bool supportsArithmetic = TypeInfo<Scalar>::supportsArithmetic#
static constexpr bool supportsLogical = TypeInfo<Scalar>::supportsLogical#
static constexpr bool supportsBinary = TypeInfo<Scalar>::supportsBinary#