|
| template<Operator::Hint H = Operator::Hint::None, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsFloat< typename R::Value > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0, If< IsSatisfied<(R::size(0)==R::size(1))> > = 0> |
| static constexpr auto | cholesky (X &&a) |
| |
| template<class T , Size M, Size N> |
| | JacobiRotation (Tensor< T, M, N > const &a, Index const p, Index const q) -> JacobiRotation< T > |
| |
| template<class V , class T , Size M, Size N> |
| | JacobiRotation (TensorViews::View< T, Sizes< M, N >, V > const &a, Index const p, Index const q) -> JacobiRotation< T > |
| |
| template<class T , Size N> |
| | JacobiRotation (Tensor< T, N > const &a, Index const p, Index const q) -> JacobiRotation< T > |
| |
| template<class V , class T , Size N> |
| | JacobiRotation (TensorViews::View< T, Sizes< N >, V > const &a, Index const p, Index const q) -> JacobiRotation< T > |
| |
| template<class TA , class TB > |
| static constexpr auto | operator== (JacobiRotation< TA > const &a, JacobiRotation< TB > const &b) |
| |
| template<class TA , class TB > |
| static constexpr auto | operator!= (JacobiRotation< TA > const &a, JacobiRotation< TB > const &b) |
| |
| template<class TA , class TB > |
| static constexpr auto | operator* (JacobiRotation< TA > const &a, JacobiRotation< TB > const &b) |
| |
| template<class T > |
| static constexpr auto | transpose (JacobiRotation< T > const &a) |
| |
| template<class T > |
| static constexpr auto | adjoint (JacobiRotation< T > const &a) |
| |
| template<class T , class X , class R = RemoveReference<X>, If< Any< All< IsTensor< R >, Not< IsReference< X > > >, All< IsTensorish< R >, IsAssignable< X > > > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr decltype(auto) | apply (JacobiRotation< T > const &r, X &&m, Index const p, Index const q) |
| |
| template<class T , class X , class R = RemoveReference<X>, If< Any< All< IsTensor< R >, Not< IsReference< X > > >, All< IsTensorish< R >, IsAssignable< X > > > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr decltype(auto) | apply (X &&m, JacobiRotation< T > const &r, Index const p, Index const q) |
| |
| template<Size B = 32, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsFloat< typename R::Value > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | lq (X &&input) |
| |
| template<class Optimizer , class XX , class RX = RemoveReference<XX>, class TX = typename RX::Type, class VX = typename TX::Value, If< IsTensorish< RX > > = 0, class RXE = RemoveConstReference<ResultOf<Eval, XX>>, class FF , If< IsInvocable< FF, RXE const &, RXE & > > = 0, If< IsFloat< ResultOf< FF, RXE const &, RXE & > > > = 0, class FC , If< IsInvocable< FC, RXE & > > = 0, class VT = VX, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsInvocable< Optimizer, XX, FF, FC, VT > > = 0> |
| static constexpr auto | optimize (Optimizer &&optimizer, XX &&x, FF &&function, FC &&callback, VT const &tolerance=NumericLimits< VT >::tolerance()) |
| |
| template<class Optimizer , class XX , class RX = RemoveReference<XX>, class TX = typename RX::Type, class VX = typename TX::Value, If< IsTensorish< RX > > = 0, class RXE = RemoveConstReference<ResultOf<Eval, XX>>, class FF , If< IsInvocable< FF, RXE const &, RXE & > > = 0, If< IsFloat< ResultOf< FF, RXE const &, RXE & > > > = 0, class VT = VX, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsInvocable< Optimizer, XX, FF, void(RXE const), VT > > = 0> |
| static constexpr auto | optimize (Optimizer &&optimizer, XX &&x, FF &&function, VT const &tolerance=NumericLimits< VT >::tolerance()) |
| |
| template<class Optimizer , class XX , class RX = RemoveReference<XX>, class TX = typename RX::Type, class VX = typename TX::Value, If< IsTensorish< RX > > = 0, class RXE = RemoveConstReference<ResultOf<Eval, XX>>, class FF , If< IsInvocable< FF, RXE const &, RXE & > > = 0, If< IsFloat< ResultOf< FF, RXE const &, RXE & > > > = 0, class FC , If< IsInvocable< FC, RXE & > > = 0, class VT = VX, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsInvocable< Optimizer, XX, FF, FC, VT > > = 0> |
| static constexpr auto | optimize (XX &&x, FF &&function, FC &&callback, VT const &tolerance=NumericLimits< VT >::tolerance()) |
| |
| template<class Optimizer , class XX , class RX = RemoveReference<XX>, class TX = typename RX::Type, class VX = typename TX::Value, If< IsTensorish< RX > > = 0, class RXE = RemoveConstReference<ResultOf<Eval, XX>>, class FF , If< IsInvocable< FF, RXE const &, RXE & > > = 0, If< IsFloat< ResultOf< FF, RXE const &, RXE & > > > = 0, class VT = VX, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsInvocable< Optimizer, XX, FF, void(RXE const), VT > > = 0> |
| static constexpr auto | optimize (XX &&x, FF &&function, VT const &tolerance=NumericLimits< VT >::tolerance()) |
| |
| template<Size B = 32, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsFloat< typename R::Value > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | qr (X &&input) |
| |
| template<Operator::Transform T = Operator::Transform::None, Operator::Restrict R = Operator::Restrict::None, Operator::Hint H = Operator::Hint::None, class Solver , class XA , class XB , If< IsInvocable< Solver, XA, XB > > = 0> |
| static constexpr decltype(auto) | solve (Solver &&solver, XA &&A, XB &&b) |
| |
| template<Operator::Transform T = Operator::Transform::None, Operator::Restrict R = Operator::Restrict::None, Operator::Hint H = Operator::Hint::None, class Solver , class XA , class XB , class XX , If< IsInvocable< Solver, XA, XB, XX > > = 0> |
| static constexpr decltype(auto) | solve (Solver &&solver, XA &&A, XB &&b, XX &&x0) |
| |
| template<Operator::Transform T = Operator::Transform::None, Operator::Restrict R = Operator::Restrict::None, Operator::Hint H = Operator::Hint::None, class Solver , class XA , class XB , class VT , If< IsInvocable< Solver, XA, XB, VT > > = 0> |
| static constexpr decltype(auto) | solve (Solver &&solver, XA &&A, XB &&b, VT const &tolerance) |
| |
| template<Operator::Transform T = Operator::Transform::None, Operator::Restrict R = Operator::Restrict::None, Operator::Hint H = Operator::Hint::None, class Solver , class XA , class XB , class XX , class VT , If< IsInvocable< Solver, XA, XB, XX, VT > > = 0> |
| static constexpr decltype(auto) | solve (Solver &&solver, XA &&A, XB &&b, XX &&x0, VT const &tolerance) |
| |
| template<class Solver , Operator::Transform T = Operator::Transform::None, Operator::Restrict R = Operator::Restrict::None, Operator::Hint H = Operator::Hint::None, class XA , class XB , If< IsInvocable< Solver, XA, XB > > = 0> |
| static constexpr decltype(auto) | solve (XA &&A, XB &&b) |
| |
| template<class Solver , Operator::Transform T = Operator::Transform::None, Operator::Restrict R = Operator::Restrict::None, Operator::Hint H = Operator::Hint::None, class XA , class XB , class XX , If< IsInvocable< Solver, XA, XB, XX > > = 0> |
| static constexpr decltype(auto) | solve (XA &&A, XB &&b, XX &&x0) |
| |
| template<class Solver , Operator::Transform T = Operator::Transform::None, Operator::Restrict R = Operator::Restrict::None, Operator::Hint H = Operator::Hint::None, class XA , class XB , class VT , If< IsInvocable< Solver, XA, XB, VT > > = 0> |
| static constexpr decltype(auto) | solve (XA &&A, XB &&b, VT const &tolerance) |
| |
| template<class Solver , Operator::Transform T = Operator::Transform::None, Operator::Restrict R = Operator::Restrict::None, Operator::Hint H = Operator::Hint::None, class XA , class XB , class XX , class VT , If< IsInvocable< Solver, XA, XB, XX, VT > > = 0> |
| static constexpr decltype(auto) | solve (XA &&A, XB &&b, XX &&x0, VT const &tolerance) |
| |
| template<class C , class T , If< IsSubscriptable< T > > = 0, class S = ResultOf<Subscript, T &, Index>, If< IsInvocable< C, S, S > > = 0, If< IsAssignable< S > > = 0> |
| static constexpr void | sort (C const &compare, T &a, Size const k=T::size(), Size const d=0) |
| |
| template<class C = Less, class T , If< IsSubscriptable< T > > = 0, class S = ResultOf<Subscript, T &, Index>, If< IsInvocable< C, S, S > > = 0, If< IsAssignable< S > > = 0> |
| static constexpr void | sort (T &a, Size const k=T::size(), Size const d=0) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsFloat< typename R::Value > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | svd (X &&input) |
| |
| template<Size C, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, class V = typename R::Value, class VT = V, If< All< IsFloat< V >, IsFloat< VT > > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0, If< IsSatisfied<(C< min(R::size(0), R::size(1)))> > = 0> |
| static constexpr auto | svd (X &&input, VT const &tolerance=NumericLimits< VT >::tolerance()) |
| |
| static constexpr auto | reverse (Direction const D) |
| |
| template<class TA , class TB , If< IsUnsignedIntegral< TA > > = 0, If< IsUnsignedIntegral< TB > > = 0> |
| static constexpr auto | bitRotateLeft (TA const value, TB count) |
| |
| template<class TA , class TB , If< IsUnsignedIntegral< TA > > = 0, If< IsUnsignedIntegral< TB > > = 0> |
| static constexpr auto | bitRotateRight (TA const value, TB count) |
| |
| template<class TA , class TB , If< IsUnsignedIntegral< TA > > = 0, If< IsUnsignedIntegral< TB > > = 0> |
| static constexpr auto | ceilDiv (TA const a, TB const b) |
| |
| template<Bool C = true, class X > |
| static constexpr Conditional< IsSatisfied< C >, RemoveConstReference< X >, X > | copy (X &&a) |
| |
| template<class X > |
| static constexpr auto | operator== (X &&a, Zero<> const) |
| |
| template<class X > |
| static constexpr auto | operator== (Zero<> const, X &&b) |
| |
| static constexpr auto | operator== (Zero<> const, Zero<> const) |
| |
| template<class X > |
| static constexpr auto | operator> (X &&a, Zero<> const) |
| |
| template<class X > |
| static constexpr auto | operator> (Zero<> const, X &&b) |
| |
| static constexpr auto | operator> (Zero<> const, Zero<> const) |
| |
| template<class X > |
| static constexpr auto | operator>= (X &&a, Zero<> const) |
| |
| template<class X > |
| static constexpr auto | operator>= (Zero<> const, X &&b) |
| |
| static constexpr auto | operator>= (Zero<> const, Zero<> const) |
| |
| template<class T , If< IsDefined< Identity< T > > > = 0, If< IsConstructible< Identity< T > > > = 0> |
| static constexpr auto | identity () |
| |
| static constexpr auto | identity () |
| |
| template<class T , class X , If< IsDefined< Identity< T > > > = 0, If< IsConstructible< Identity< T > > > = 0, If< IsInvocable< Identity< T >, X > > = 0> |
| static constexpr auto | identity (X &&value) |
| |
| template<Size B, class T , If< IsUnsignedIntegral< T > > = 0> |
| static constexpr T | iLog (T const a) |
| |
| template<class B , class N , If< IsIntegral< B > > = 0, If< IsUnsignedIntegral< N > > = 0> |
| static constexpr B | iPow (B const base, N const exp) |
| |
| template<class T , If< IsIntegral< T > > = 0> |
| static constexpr auto | isEven (T const a) |
| |
| template<class T , T V, If< IsIntegral< T > > = 0> |
| static constexpr auto | isEven (Constant< T, V > const) |
| |
| template<class T , If< IsIntegral< T > > = 0> |
| static constexpr auto | isIdentity (T const a) |
| |
| template<class T , T V, If< IsIntegral< T > > = 0> |
| static constexpr auto | isIdentity (Constant< T, V > const) |
| |
| template<class T , If< IsIntegral< T > > = 0> |
| static constexpr auto | isOdd (T const a) |
| |
| template<class T , T V, If< IsIntegral< T > > = 0> |
| static constexpr auto | isOdd (Constant< T, V > const) |
| |
| template<class T , If< IsIntegral< T > > = 0> |
| static constexpr auto | isPowerOfTwo (T const v) |
| |
| template<class T , If< IsIntegral< T > > = 0> |
| static constexpr auto | isUnit (T const a) |
| |
| template<class T , T V, If< IsIntegral< T > > = 0> |
| static constexpr auto | isUnit (Constant< T, V > const) |
| |
| template<class T , If< IsIntegral< T > > = 0> |
| static constexpr auto | isZero (T const a) |
| |
| template<class T , T V, If< IsIntegral< T > > = 0> |
| static constexpr auto | isZero (Constant< T, V > const) |
| |
| template<class T , If< IsUnsignedIntegral< T > > = 0> |
| static constexpr T | iSqrt (T const a) |
| |
| template<class X > |
| static constexpr auto | operator< (X &&a, Zero<> const) |
| |
| template<class X > |
| static constexpr auto | operator< (Zero<> const, X &&b) |
| |
| static constexpr auto | operator< (Zero<> const, Zero<> const) |
| |
| template<class X > |
| static constexpr auto | operator<= (X &&a, Zero<> const) |
| |
| template<class X > |
| static constexpr auto | operator<= (Zero<> const, X &&b) |
| |
| static constexpr auto | operator<= (Zero<> const, Zero<> const) |
| |
| template<class X > |
| static constexpr X | max (X &&a) |
| |
| template<class XA , class XB , If< IsInvocable< Greater, XA, XB > > = 0> |
| static constexpr auto | max (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class... Xs, If< IsInvocable< Greater, XA, XB > > = 0, If< All< IsInvocable< Greater, ResultOf< Where, ResultOf< Greater, XA, XB >, XA, XB >, Xs >... > > = 0> |
| static constexpr auto | max (XA &&a, XB &&b, Xs &&...args) |
| |
| template<class X > |
| static constexpr X | min (X &&a) |
| |
| template<class XA , class XB , If< IsInvocable< Less, XA, XB > > = 0> |
| static constexpr auto | min (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class... Xs, If< IsInvocable< Less, XA, XB > > = 0, If< All< IsInvocable< Less, ResultOf< Where, ResultOf< Less, XA, XB >, XA, XB >, Xs >... > > = 0> |
| static constexpr auto | min (XA &&a, XB &&b, Xs &&...args) |
| |
| template<class X > |
| static constexpr auto | operator!= (X &&a, Zero<> const) |
| |
| template<class X > |
| static constexpr auto | operator!= (Zero<> const, X &&b) |
| |
| static constexpr auto | operator!= (Zero<> const, Zero<> const) |
| |
| template<Size N> |
| static auto | print (String< N > const &string, std::FILE *stream) |
| |
| template<class T , T... Is, class S > |
| static auto | print (Sequence< T, Is... > const, S &&stream) |
| |
| template<Size... Ns, class S > |
| static auto | print (Sizes< Ns... > const, S &&stream) |
| |
| template<class S > |
| static auto | print (Direction const direction, S &&stream) |
| |
| template<class S > |
| static auto | print (Context const context, S &&stream) |
| |
| template<class T , class D , If< IsConstructible< Random< T, D >, RandomEngine &, D & > > = 0> |
| static constexpr auto | random (RandomEngine &rng, D &distribution) |
| |
| template<class T , If< IsDefined< Unit< T > > > = 0, If< IsConstructible< Unit< T > > > = 0, If< IsInvocable< Unit< T > > > = 0> |
| static constexpr auto | unit () |
| |
| static constexpr auto | unit () |
| |
| template<class T , class X , If< IsDefined< Unit< T > > > = 0, If< IsConstructible< Unit< T > > > = 0, If< IsInvocable< Unit< T >, X > > = 0> |
| static constexpr auto | unit (X &&value) |
| |
| template<class TE , class T , If< IsBool< TE > > = 0> |
| static constexpr T | where (TE const e, T &&a, T &&b) |
| |
| template<class TE , class T , If< IsBool< TE > > = 0> |
| static constexpr T const & | where (TE const e, T const &a, T &b) |
| |
| template<class TE , class T , If< IsBool< TE > > = 0> |
| static constexpr T const & | where (TE const e, T &a, T const &b) |
| |
| template<class TE , class XA , class XB , If< IsBool< TE > > = 0> |
| static constexpr auto | where (TE const e, XA &&a, XB &&b) |
| |
| template<class T , If< IsDefined< Zero< T > > > = 0, If< IsConstructible< Zero< T > > > = 0, If< IsInvocable< Zero< T > > > = 0> |
| static constexpr auto | zero () |
| |
| static constexpr auto | zero () |
| |
| static constexpr auto | operator! (Position const P) |
| |
| template<Context C, Size I, Size L, Direction D = Direction::Forwards, Size S = 1, class F , class... Xs> |
| static constexpr auto | range (F &&f, Xs &&...args) |
| |
| template<Size I, Size L, Direction D = Direction::Forwards, Size S = 1, class F , class... Xs> |
| static constexpr auto | range (F &&f, Xs &&...args) |
| |
| template<Size L, Direction D = Direction::Forwards, Size S = 1, class F , class... Xs> |
| static constexpr auto | range (F &&f, Xs &&...args) |
| |
| template<Context C, class I , class L , Direction O, class D , class S = decltype(makeConstantSequence<Size, typename I::Dimension{}, 1>()), class F , class... Xs, If< IsSizes< I > > = 0, If< IsSizes< L > > = 0, If< IsSequence< D > > = 0, If< IsSizes< S > > = 0, If< IsSame< Direction, typename D::Type > > = 0, If< IsSame< typename I::Dimension, typename L::Dimension, typename D::Dimension, typename S::Dimension > > = 0, If< IsSatisfied<((L() - I()) % S()==Constant< Size, 0 >())> , If< IsSatisfied<(O==Direction::LeftToRight||O==Direction::RightToLeft)> > = 0> |
| static constexpr auto | range (F &&f, Xs &&...args) |
| |
| template<Context C, class L , Direction O, class D , class S = decltype(makeConstantSequence<Size, typename L::Dimension{}, 1>()), class F , class... Xs, If< IsSizes< L > > = 0, If< IsSequence< D > > = 0, If< IsSizes< S > > = 0, If< IsSame< Direction, typename D::Type > > = 0, If< IsSame< typename L::Dimension, typename D::Dimension, typename S::Dimension > > = 0, If< IsSatisfied<(L() % S()==Constant< Size, 0 >())> , If< IsSatisfied<(O==Direction::LeftToRight||O==Direction::RightToLeft)> > = 0> |
| static constexpr auto | range (F &&f, Xs &&...args) |
| |
| template<class I , class L , Direction O, class D , class S = decltype(makeConstantSequence<Size, typename I::Dimension{}, 1>()), class F , class... Xs, If< IsSizes< I > > = 0, If< IsSizes< L > > = 0, If< IsSequence< D > > = 0, If< IsSizes< S > > = 0, If< IsSame< Direction, typename D::Type > > = 0, If< IsSame< typename I::Dimension, typename L::Dimension, typename D::Dimension, typename S::Dimension > > = 0, If< IsSatisfied<((L() - I()) % S()==Constant< Size, 0 >())> , If< IsSatisfied<(O==Direction::LeftToRight||O==Direction::RightToLeft)> > = 0> |
| static constexpr auto | range (F &&f, Xs &&...args) |
| |
| template<class L , Direction O, class D , class S = decltype(makeConstantSequence<Size, typename L::Dimension{}, 1>()), class F , class... Xs, If< IsSizes< L > > = 0, If< IsSequence< D > > = 0, If< IsSizes< S > > = 0, If< IsSame< Direction, typename D::Type > > = 0, If< IsSame< typename L::Dimension, typename D::Dimension, typename S::Dimension > > = 0, If< IsSatisfied<(L() % S()==Constant< Size, 0 >())> , If< IsSatisfied<(O==Direction::LeftToRight||O==Direction::RightToLeft)> > = 0> |
| static constexpr auto | range (F &&f, Xs &&...args) |
| |
| template<class X > |
| | RecursiveLambda (X &&) -> RecursiveLambda< RemoveReference< X > > |
| |
| template<class T , T... Seq> |
| | Sequence (std::integer_sequence< T, Seq... > const) -> Sequence< T, Seq... > |
| |
| template<Size... Ns> |
| | Sequence (Sizes< Ns... > const) -> Sequence< Size, Ns... > |
| |
| template<class T , T... As, T... Bs, If< IsInvocable< Add, T, T > > = 0, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator+ (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B, If< IsInvocable< Add, T, T > > = 0> |
| static constexpr auto | operator+ (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T A, T... Bs, If< IsInvocable< Add, T, T > > = 0> |
| static constexpr auto | operator+ (Constant< T, A > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T... Bs, If< IsInvocable< Sub, T, T > > = 0, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator- (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B, If< IsInvocable< Sub, T, T > > = 0> |
| static constexpr auto | operator- (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T... As, T... Bs, If< IsInvocable< Mul, T, T > > = 0, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator* (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B, If< IsInvocable< Mul, T, T > > = 0> |
| static constexpr auto | operator* (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T A, T... Bs, If< IsInvocable< Mul, T, T > > = 0> |
| static constexpr auto | operator* (Constant< T, A > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T... Bs, If< IsInvocable< Div, T, T > > = 0, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator/ (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B, If< IsInvocable< Div, T, T > > = 0> |
| static constexpr auto | operator/ (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T... As, T... Bs, If< IsInvocable< Mod, T, T > > = 0, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator% (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B, If< IsInvocable< Mod, T, T > > = 0> |
| static constexpr auto | operator% (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T... Is, If< IsInvocable< Minus, T > > = 0> |
| static constexpr auto | operator- (Sequence< T, Is... > const) |
| |
| template<class T , T... As, T... Bs> |
| static constexpr auto | operator, (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T... Bs, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator== (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B> |
| static constexpr auto | operator== (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T A, T... Bs> |
| static constexpr auto | operator== (Constant< T, A > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T... Bs, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator!= (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B> |
| static constexpr auto | operator!= (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T A, T... Bs> |
| static constexpr auto | operator!= (Constant< T, A > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T... Bs, If< IsInvocable< LessEqual, T, T > > = 0, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator<= (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B, If< IsInvocable< LessEqual, T, T > > = 0> |
| static constexpr auto | operator<= (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T A, T... Bs, If< IsInvocable< LessEqual, T, T > > = 0> |
| static constexpr auto | operator<= (Constant< T, A > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T... Bs, If< IsInvocable< GreaterEqual, T, T > > = 0, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator>= (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B, If< IsInvocable< GreaterEqual, T, T > > = 0> |
| static constexpr auto | operator>= (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T A, T... Bs, If< IsInvocable< GreaterEqual, T, T > > = 0> |
| static constexpr auto | operator>= (Constant< T, A > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T... Bs, If< IsInvocable< Equal, T, T > > = 0, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator< (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B, If< IsInvocable< Equal, T, T > > = 0> |
| static constexpr auto | operator< (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T A, T... Bs, If< IsInvocable< Equal, T, T > > = 0> |
| static constexpr auto | operator< (Constant< T, A > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T... Bs, If< IsInvocable< Equal, T, T > > = 0, If< IsSatisfied<(sizeof...(As)==sizeof...(Bs))> > = 0> |
| static constexpr auto | operator> (Sequence< T, As... > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... As, T B, If< IsInvocable< Equal, T, T > > = 0> |
| static constexpr auto | operator> (Sequence< T, As... > const, Constant< T, B > const) |
| |
| template<class T , T A, T... Bs, If< IsInvocable< Equal, T, T > > = 0> |
| static constexpr auto | operator> (Constant< T, A > const, Sequence< T, Bs... > const) |
| |
| template<class T , T... Seq, class F , class... Xs, If< IsInvocable< F, Xs..., Constant< T, Seq >... > > = 0> |
| static constexpr decltype(auto) | expand (Sequence< T, Seq... > const, F &&f, Xs &&...args) |
| |
| template<class T , T N> |
| static constexpr auto | makeSeries () |
| |
| template<class T > |
| static constexpr auto | makeSeriesFor () |
| |
| template<class T , class... Ts, If< IsSatisfied<(sizeof...(Ts) > 0)> > |
| static constexpr auto | makeSeriesFor () |
| |
| template<class T , T First, T Last, Direction D = Direction::Forwards, T Step = T(1), If< IsSatisfied<(D==Direction::Forwards||D==Direction::Backwards)> > = 0, If< IsSatisfied<((Last - First) % Step==0)> > = 0> |
| static constexpr auto | makeRange () |
| |
| template<class T , Size N, T V> |
| static constexpr auto | makeConstantSequence () |
| |
| template<class F , class T , T I1, T I2, T... Is, If< IsInvocable< F, T, T > > = 0> |
| static constexpr auto | reduce (Sequence< T, I1, I2, Is... > const) |
| |
| template<class F , class T , T I> |
| static constexpr auto | reduce (Sequence< T, I > const) |
| |
| template<Index... Ps, class T , T... Is, If< IsSatisfied<(sizeof...(Is)==sizeof...(Ps))> > = 0, If< IsSatisfied<((Ps< sizeof...(Is)) &&...)> > = 0, If< IsUnique< Constant< Index, Ps >... > > = 0> |
| static constexpr auto | permute (Sequence< T, Is... > const) |
| |
| template<class T , T... Is> |
| static constexpr auto | reverse (Sequence< T, Is... > const) |
| |
| template<Direction D, Size Step, class T , T First, T... Is, If< IsSatisfied<(D==Direction::Leftwards||D==Direction::Rightwards)> > = 0> |
| static constexpr auto | rotate (Sequence< T, First, Is... > const) |
| |
| template<Direction D, Size Step, class T , If< IsSatisfied<(D==Direction::Leftwards||D==Direction::Rightwards)> > = 0> |
| static constexpr auto | rotate (Sequence< T > const) |
| |
| template<Index O = 0, class T , T... Is, class... Seqs, If< IsSatisfied<((Sequence< T, Is... >::size()==Seqs::size()) &&...)> > |
| static constexpr auto | zip (Sequence< T, Is... > const, Seqs const ...) |
| |
| template<class F , class T , T... Is> |
| static constexpr auto | filter (Sequence< T, Is... > const) |
| |
| template<class F , class T , T... As, T... Bs, class... Seqs, If< IsInvocable< F, T, T > > = 0, If< IsSatisfied<((Sequence< T, As... >::size()==Seqs::size()) &&... &&(Sequence< T, As... >::size()==Sequence< T, Bs... >::size()))> > |
| static constexpr auto | pick (Sequence< T, As... > const, Sequence< T, Bs... > const, Seqs const ...) |
| |
| template<Index D, Index... Ds, class T , T... Is, If< IsSatisfied<(sizeof...(Ds)< sizeof...(Is))> > = 0, If< IsSatisfied<(max(D, Ds...)< sizeof...(Is))> > = 0, If< IsUnique< Constant< Index, D >, Constant< Index, Ds >... > > = 0> |
| static constexpr auto | chip (Sequence< T, Is... > const) |
| |
| template<class T , T... Is> |
| static constexpr auto | chip (Sequence< T, Is... > const) |
| |
| template<Index S, Index... Ss, class T , T... Is, If< IsSatisfied<(sizeof...(Ss)< sizeof...(Is))> > = 0, If< IsSatisfied<(max(S, Ss...)< sizeof...(Is))> > = 0, If< IsUnique< Constant< Index, S >, Constant< Index, Ss >... > > = 0> |
| static constexpr auto | select (Sequence< T, Is... > const) |
| |
| template<class T , T... Is> |
| static constexpr auto | select (Sequence< T, Is... > const) |
| |
| template<Index B, Index P, class T , T... Is, If< IsSatisfied<(sizeof...(Is) % B==0)> > = 0, If< IsSatisfied<(P< B)> > = 0> |
| static constexpr auto | cut (Sequence< T, Is... > const) |
| |
| template<Index I, Index L, class T , T... Is, If< IsSatisfied<(L<=sizeof...(Is))> > = 0, If< IsSatisfied<(I< L)> > = 0> |
| static constexpr auto | trim (Sequence< T, Is... > const) |
| |
| template<class F = Less, class T , T I, T... Is, If< IsInvocableResult< Bool, F, T, T > > = 0> |
| static constexpr auto | sort (Sequence< T, I, Is... > const) |
| |
| template<class T , T From, T... Froms, T To, T... Tos, T P, T... Ps, If< IsSatisfied<(sizeof...(Froms)==sizeof...(Tos) &&sizeof...(Froms)==sizeof...(Ps))> > = 0> |
| static constexpr auto | getPermutation (Sequence< T, From, Froms... > const, Sequence< T, To, Tos... > const, Sequence< T, P, Ps... > const) |
| |
| template<class T , T... Froms, T... Tos, If< IsSatisfied<(sizeof...(Froms)==sizeof...(Tos))> > = 0> |
| static constexpr auto | getPermutation (Sequence< T, Froms... > const, Sequence< T, Tos... > const) |
| |
| template<class T , T... Froms> |
| static constexpr auto | getPermutation (Sequence< T, Froms... > const) |
| |
| template<class T , T N, T... Ps> |
| static constexpr auto | integerFactorization (Constant< T, N > const, Sequence< T, Ps... > const =Sequence< T >()) |
| |
| | String (char const &) -> String< 1 > |
| |
| template<Size N> |
| | String (char const (&)[N]) -> String< N - 1 > |
| |
| template<Size M, Size N> |
| static constexpr auto | operator+ (String< M > const &lhs, String< N > const &rhs) |
| |
| template<Size M, Size N> |
| static constexpr auto | operator+ (String< M > const &lhs, char const (&rhs)[N]) |
| |
| template<Size M, Size N> |
| static constexpr auto | operator+ (char const (&lhs)[M], String< N > const &rhs) |
| |
| template<class T > |
| static constexpr auto | name () |
| |
| template<class T , auto = sizeof(T)> |
| True | isDefined (T *) |
| |
| template<class T , auto = sizeof(T), If< Not< IsPointer< T > > > = 0> |
| True | isDefined (T &&) |
| |
| template<class... Xs> |
| static constexpr auto | forwardAsTuple (Xs &&...args) |
| |
| template<class T > |
| AddConst< T > & | asConst (T &a) |
| |
| template<class T > |
| AddConst< T > | asConst (T &&a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| | Complex (T const &) -> Complex< T > |
| |
| template<class TA , class TB , If< All< IsFloat< TA >, IsFloat< TB > > > = 0> |
| | Complex (TA const &, TB const &) -> Complex< Common< TA, TB > > |
| |
| template<class T , If< IsInvocable< Norm<>, Complex< T > > > = 0> |
| static constexpr auto | abs (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | acos (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | acosh (Complex< T > const &a) |
| |
| template<class TA , class TB , If< IsInvocable< Add, TA, TB > > = 0> |
| static constexpr auto | operator+ (Complex< TA > const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsValue< TB > > = 0, If< IsInvocable< Add, TA, TB > > = 0> |
| static constexpr auto | operator+ (Complex< TA > const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsInvocable< Add, TA, TB > > = 0> |
| static constexpr auto | operator+ (TA const &a, Complex< TB > const &b) |
| |
| template<class T , If< IsInvocable< Atan2, T, T > > = 0> |
| static constexpr auto | arg (Complex< T > const &a) |
| |
| template<class T , If< IsInvocable< Asinh, Complex< T > > > = 0> |
| static constexpr auto | asin (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | asinh (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | atan (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | atanh (Complex< T > const &a) |
| |
| template<class C , If< IsValue< C > > = 0, class T , If< IsInvocable< Cast< C >, T > > = 0> |
| static constexpr auto | cast (Complex< T > const &a) |
| |
| template<class X , If< IsComplex< RemoveReference< X > > > = 0> |
| static constexpr X | complexify (X &&a) |
| |
| template<class T > |
| static constexpr auto | conj (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | cos (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | cosh (Complex< T > const &a) |
| |
| template<class TA , class TB , If< IsInvocable< Sub, TA, TB > > = 0> |
| static constexpr auto | delta (Complex< TA > const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsValue< TB > > = 0, If< IsInvocable< Sub, TA, TB > > = 0> |
| static constexpr auto | delta (Complex< TA > const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsInvocable< Sub, TA, TB > > = 0> |
| static constexpr auto | delta (TA const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB > |
| static constexpr auto | operator/ (Complex< TA > const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsValue< TB > > = 0, If< IsInvocable< Div, TA, TB > > = 0> |
| static constexpr auto | operator/ (Complex< TA > const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0> |
| static constexpr auto | operator/ (TA const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsInvocable< Equal, TA, TB > > = 0> |
| static constexpr auto | operator== (Complex< TA > const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsValue< TB > > = 0, If< IsInvocable< Equal, TA, TB > > = 0> |
| static constexpr auto | operator== (Complex< TA > const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsInvocable< Equal, TA, TB > > = 0> |
| static constexpr auto | operator== (TA const &a, Complex< TB > const &b) |
| |
| template<class X , If< IsComplex< RemoveReference< X > > > = 0> |
| static constexpr X | eval (X &&a) |
| |
| template<class T > |
| static constexpr auto | exp (Complex< T > const &a) |
| |
| template<class X , If< IsComplex< RemoveReference< X > > > = 0> |
| static constexpr decltype(auto) | imag (X &&a) |
| |
| template<class TA , class TB , If< IsInvocable< Conj, Complex< TA > > > = 0, If< IsInvocable< ScalarProduct, Complex< TA >, Complex< TB > > > = 0> |
| static constexpr auto | innerProduct (Complex< TA > const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsValue< TB > > = 0, If< IsInvocable< Conj, Complex< TA > > > = 0, If< IsInvocable< ScalarProduct, Complex< TA >, TB > > = 0> |
| static constexpr auto | innerProduct (Complex< TA > const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsInvocable< ScalarProduct, TA, Complex< TB > > > = 0> |
| static constexpr auto | innerProduct (TA const &a, Complex< TB > const &b) |
| |
| template<class T > |
| static constexpr auto | log (Complex< T > const &a) |
| |
| template<class T , If< IsInvocable< Log, Complex< T > > > = 0> |
| static constexpr auto | log10 (Complex< T > const &a) |
| |
| template<class T , If< IsInvocable< Log, Complex< T > > > = 0> |
| static constexpr auto | log2 (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | operator- (Complex< T > const &a) |
| |
| template<class TA , class TB , If< IsInvocable< Mul, TA, TB > > = 0, If< IsInvocable< Add, TA, TB > > = 0, If< IsInvocable< Sub, TA, TB > > = 0> |
| static constexpr auto | operator* (Complex< TA > const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsValue< TB > > = 0, If< IsInvocable< Mul, TA, TB > > = 0> |
| static constexpr auto | operator* (Complex< TA > const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsInvocable< Mul, TA, TB > > = 0> |
| static constexpr auto | operator* (TA const &a, Complex< TB > const &b) |
| |
| template<Index P = 2, Index Q = P, class T > |
| static constexpr auto | norm (Complex< T > const &a) |
| |
| template<class TA , class TB , If< IsInvocable< NotEqual, TA, TB > > = 0> |
| static constexpr auto | operator!= (Complex< TA > const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsValue< TB > > = 0, If< IsInvocable< NotEqual, TA, TB > > = 0> |
| static constexpr auto | operator!= (Complex< TA > const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsInvocable< NotEqual, TA, TB > > = 0> |
| static constexpr auto | operator!= (TA const &a, Complex< TB > const &b) |
| |
| template<class T > |
| static constexpr auto | operator+ (Complex< T > const &a) |
| |
| template<class TA , class TB , If< All< IsValue< TA >, IsValue< TB > > > = 0, If< IsInvocable< Cos, TB > > = 0, If< IsInvocable< Sin, TB > > = 0, If< IsInvocable< Mul, TA, TB > > = 0> |
| static constexpr auto | polar (TA const &rho, TB const &theta) |
| |
| template<class X , class Y > |
| static constexpr auto | pow (Complex< X > const &x, Complex< Y > const &y) |
| |
| template<class X , class Y , If< IsValue< Y > > = 0> |
| static constexpr auto | pow (Complex< X > const &x, Y const &y) |
| |
| template<class X , class Y , If< IsValue< X > > = 0> |
| static constexpr auto | pow (X const &x, Complex< Y > const &y) |
| |
| template<class T , class S , If< IsComplex< T > > = 0> |
| static auto | print (T const &value, S &&stream) |
| |
| template<class T > |
| static constexpr auto | rcp (Complex< T > const &b) |
| |
| template<class X , If< IsComplex< RemoveReference< X > > > = 0> |
| static constexpr decltype(auto) | real (X &&a) |
| |
| template<std::int64_t D = 0, class T , If< IsInvocable< Round< D >, T > > = 0> |
| static constexpr auto | round (Complex< T > const &a) |
| |
| template<class TA , class TB , If< IsInvocable< Mul, Complex< TA >, Complex< TB > > > = 0> |
| static constexpr auto | scalarProduct (Complex< TA > const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsValue< TB > > = 0, If< IsInvocable< Mul, Complex< TA >, TB > > = 0> |
| static constexpr auto | scalarProduct (Complex< TA > const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsInvocable< Mul, TA, Complex< TB > > > = 0> |
| static constexpr auto | scalarProduct (TA const &a, Complex< TB > const &b) |
| |
| template<class T , If< IsInvocable< Sign, T > > = 0> |
| static constexpr auto | sign (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | sin (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | sinh (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | sqrt (Complex< T > const &a) |
| |
| template<class T , If< IsInvocable< Mul, T, T > > = 0, If< IsInvocable< Sub, T, T > > = 0> |
| static constexpr auto | square (Complex< T > const &a) |
| |
| template<class TA , class TB , If< IsInvocable< Sub, TA, TB > > = 0> |
| static constexpr auto | operator- (Complex< TA > const &a, Complex< TB > const &b) |
| |
| template<class TA , class TB , If< IsValue< TB > > = 0, If< IsInvocable< Sub, TA, TB > > = 0> |
| static constexpr auto | operator- (Complex< TA > const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsInvocable< Sub, TA, TB > > = 0> |
| static constexpr auto | operator- (TA const &a, Complex< TB > const &b) |
| |
| template<class T > |
| static constexpr auto | tan (Complex< T > const &a) |
| |
| template<class T > |
| static constexpr auto | tanh (Complex< T > const &a) |
| |
| template<class T , If< IsInvocable< Trunc, T > > = 0> |
| static constexpr auto | trunc (Complex< T > const &a) |
| |
| static constexpr auto | isProperAlignment (Size const alignment) |
| |
| template<Size S, Size P = alignof(std::max_align_t)> |
| static constexpr auto | alignment () |
| |
| static auto | alloc (Size size, Size const alignment=alignof(std::max_align_t)) |
| |
| static auto | dealloc (void *ptr) |
| |
| template<class T , Size N> |
| | CommonArray (T const (&)[N]) -> CommonArray< Allocation::Stack, T, N > |
| |
| template<Allocation A1, Allocation A2, class TA , class TB , Size... Ns, If< IsInvocable< Equal, TA, TB > > = 0> |
| static constexpr auto | operator== (CommonArray< A1, TA, Ns... > const &lhs, CommonArray< A2, TB, Ns... > const &rhs) |
| |
| template<Allocation A1, Allocation A2, class TA , class TB , Size... Ns> |
| static constexpr auto | operator!= (CommonArray< A1, TA, Ns... > const &lhs, CommonArray< A2, TB, Ns... > const &rhs) |
| |
| template<class S > |
| static auto | print (Allocation const alloc, S &&stream) |
| |
| template<Size... Ns, class S > |
| static auto | print (Subscripts< Ns... > const &a, S &&stream) |
| |
| template<Size N, class S > |
| static auto | print (Indices< N > const &a, S &&stream) |
| |
| template<Allocation A, class T , Size... Ns, class S > |
| static auto | print (CommonArray< A, T, Ns... > const &arg, S &&stream) |
| |
| template<class... Is, If< All< IsConvertible< Is, Index >... > > = 0> |
| | Indices (Is const ...) -> Indices< sizeof...(Is)> |
| |
| template<Size... Ns> |
| static constexpr auto | operator+ (Subscripts< Ns... > const &lhs, Subscripts< Ns... > const &rhs) |
| |
| template<Size... Ns> |
| static constexpr auto | operator- (Subscripts< Ns... > const &lhs, Subscripts< Ns... > const &rhs) |
| |
| template<Size... Ns, Size... Ss, If< IsSatisfied<(sizeof...(Ns)==sizeof...(Ss))> > = 0> |
| static constexpr auto | operator* (Subscripts< Ns... > const &lhs, Sizes< Ss... > const) |
| |
| template<Size... Ns, Size... Ss, If< IsSatisfied<(sizeof...(Ns)==sizeof...(Ss))> > = 0> |
| static constexpr auto | operator* (Sizes< Ss... > const, Subscripts< Ns... > const &rhs) |
| |
| template<Size... Ns, Size... Ss, If< IsSatisfied<(sizeof...(Ns)==sizeof...(Ss))> > = 0> |
| static constexpr auto | operator/ (Subscripts< Ns... > const &lhs, Sizes< Ss... > const) |
| |
| template<Size... Ns, Size... Ss, If< IsSatisfied<(sizeof...(Ns)==sizeof...(Ss))> > = 0> |
| static constexpr auto | operator% (Subscripts< Ns... > const &lhs, Sizes< Ss... > const) |
| |
| template<Size... Ns> |
| static constexpr auto | operator== (Subscripts< Ns... > const &lhs, Subscripts< Ns... > const &rhs) |
| |
| template<Size... Ns> |
| static constexpr auto | operator!= (Subscripts< Ns... > const &lhs, Subscripts< Ns... > const &rhs) |
| |
| template<Index... Ps, Size... Ns, If< IsSatisfied<(sizeof...(Ps)==sizeof...(Ns))> > = 0, If< IsSatisfied<(max(Ps...)< sizeof...(Ns))> > = 0, If< IsUnique< Constant< Index, Ps >... > > = 0> |
| static constexpr auto | permute (Subscripts< Ns... > const &arg) |
| |
| template<Size... Ns> |
| static constexpr auto | reverse (Subscripts< Ns... > const &arg) |
| |
| template<Direction D, Size Step, Size... Ns, If< True< decltype(rotate< D, Step >(makeSeriesFor< Index, Ns... >()))> > |
| static constexpr auto | rotate (Subscripts< Ns... > const &arg) |
| |
| template<Index... Ds, Size... Ns, If< True< decltype(chip< Ds... >(Sequence< Index, Ns... >()))> > |
| static constexpr auto | chip (Subscripts< Ns... > const &arg) |
| |
| template<class T > |
| static constexpr auto | name () |
| |
| template<class T , T V, class S > |
| static auto | print (Constant< T, V > const, S &&stream) |
| |
| template<class T , If< IsSame< T, Bool > > = 0> |
| static auto | print (T const value, std::FILE *stream) |
| |
| static auto | print (char const *const string, std::FILE *stream) |
| |
| static auto | print (std::string const &string, std::FILE *stream) |
| |
| template<class... Ps> |
| static constexpr auto | help (Ps &&...parameters) |
| |
| template<Context C, class T , class A , class N , class D , If< True< decltype(String(declval< A >()))> , If< True< decltype(String(declval< N >()))> , If< True< decltype(String(declval< D >()))> , If< IsSatisfied<(C==Context::CompileTime||C==Context::RunTime)> > = 0> |
| static constexpr auto | parameter (A &&argument, N &&name, D &&description, T const &defaultValue) |
| |
| template<Context C, class T , class A , class N , class D , If< True< decltype(String(declval< A >()))> , If< True< decltype(String(declval< N >()))> , If< True< decltype(String(declval< D >()))> , If< IsSatisfied<(C==Context::RunTime)> > = 0> |
| static constexpr auto | parameter (A &&argument, N &&name, D &&description) |
| |
| template<Context C, class T , class A , class N , class D , If< True< decltype(String(declval< A >()))> , If< True< decltype(String(declval< N >()))> , If< True< decltype(String(declval< D >()))> , If< IsSatisfied<(C==Context::RunTime)> > = 0> |
| static constexpr auto | parameter (A &&argument, N &&name, D &&description, T(*convert)(char const *const)) |
| |
| template<Context C, class T , class A , class N , class D , If< True< decltype(String(declval< A >()))> , If< True< decltype(String(declval< N >()))> , If< True< decltype(String(declval< D >()))> , If< IsSatisfied<(C==Context::RunTime)> > = 0> |
| static constexpr auto | parameter (A &&argument, N &&name, D &&description, T(*convert)(char const *const), T const &defaultValue) |
| |
| template<class N , class D , class... Ps, If< True< decltype(String(declval< N >()))> , If< True< decltype(String(declval< D >()))> > |
| static constexpr auto | parse (int const argc, char const *const *const argv, N &&appName, D &&appDescription, Ps &...parameters) |
| |
| template<class... Ps> |
| static constexpr auto | report (Ps &&...parameters) |
| |
| template<class T , class... Ts> |
| static auto | optimizationBarrier (const T &basic, Ts &...basics) |
| |
| static Float< 64 > | getTimeInSeconds () |
| |
| template<class T , class RNG , If< IsRandomEngine< RNG > > = 0, If< IsFloat< T > > = 0> |
| static constexpr T | generateCanonical (RNG &rng) |
| |
| template<class T > |
| constexpr auto | operator== (GaussianDistribution< T > const &lhs, GaussianDistribution< T > const &rhs) |
| |
| template<class T > |
| constexpr auto | operator!= (GaussianDistribution< T > const &lhs, GaussianDistribution< T > const &rhs) |
| |
| template<class T > |
| constexpr auto | operator== (LaplaceDistribution< T > const &lhs, LaplaceDistribution< T > const &rhs) |
| |
| template<class T > |
| constexpr auto | operator!= (LaplaceDistribution< T > const &lhs, LaplaceDistribution< T > const &rhs) |
| |
| template<Size N, class S > |
| static auto | print (SeedSequence< N > const &seq, S &&stream) |
| |
| template<class... Ts> |
| | SeedSequence (Ts &&...) -> SeedSequence< sizeof...(Ts)> |
| |
| template<class T > |
| constexpr auto | operator== (UniformDistribution< T > const &lhs, UniformDistribution< T > const &rhs) |
| |
| template<class T > |
| constexpr auto | operator!= (UniformDistribution< T > const &lhs, UniformDistribution< T > const &rhs) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Abs >, X > > = 0> |
| static constexpr auto | abs (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Acos >, X > > = 0> |
| static constexpr auto | acos (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Acosh >, X > > = 0> |
| static constexpr auto | acosh (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Add >, XA, XB > > = 0> |
| static constexpr auto | operator+ (XA &&a, XB &&b) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Arg >, X > > = 0> |
| static constexpr auto | arg (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Asin >, X > > = 0> |
| static constexpr auto | asin (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Asinh >, X > > = 0> |
| static constexpr auto | asinh (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Atan >, X > > = 0> |
| static constexpr auto | atan (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Atan2 >, XA, XB > > = 0> |
| static constexpr auto | atan2 (XA &&a, XB &&b) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Atanh >, X > > = 0> |
| static constexpr auto | atanh (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0> |
| static constexpr auto | backwards (X &&a) |
| |
| template<Size... Bs, class X , class... Os, class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< All< IsConvertible< Os, Index >... > > = 0, If< IsSatisfied<(sizeof...(Bs)==typename R::Dimension())> > = 0, If< IsSatisfied<(sizeof...(Os)==typename R::Dimension())> > = 0, If< IsSatisfied<(typename R::Sizes() % Sizes< Bs... >()==Constant< Size, 0 >())> > |
| static constexpr auto | block (X &&a, Os const ... offsets) |
| |
| template<Size... Bs, class X , class... Os, class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Block< Bs... >, X &, Os... > > = 0> |
| static constexpr auto | block (X &&a, Os const ... offsets) |
| |
| template<Size... Bs, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(sizeof...(Bs)==typename R::Dimension())> > = 0> |
| static constexpr auto | broadcast (X &&a) |
| |
| template<class C , class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Cast< C > >, X > > = 0> |
| static constexpr auto | cast (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Ceil >, X > > = 0> |
| static constexpr auto | ceil (X &&a) |
| |
| template<Index... Ds, class X , class... Is, class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< All< IsConvertible< Is, Index >... > > = 0, If< IsSatisfied<(sizeof...(Is)==sizeof...(Ds))> > = 0, If< True< decltype(chip< Ds... >(makeSeries< Index, typename R::Dimension{}>()))> > |
| static constexpr auto | chip (X &&a, Is const ... indices) |
| |
| template<Index... Ds, class X , class... Is, class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Chip< Ds... >, X &, Is... > > = 0> |
| static constexpr auto | chip (X &&a, Is const ... indices) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Complexify >, X > > = 0> |
| static constexpr auto | complexify (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Conj >, X > > = 0> |
| static constexpr auto | conj (X &&a) |
| |
| template<Index... Is, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(isEven(sizeof...(Is)))> > = 0, If< IsSatisfied<(sizeof...(Is)<=typename R::Dimension())> > = 0> |
| static constexpr auto | contract (X &&a) |
| |
| template<Index... Is, class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< View, XB > > = 0, If< IsSatisfied<(isEven(sizeof...(Is)))> > = 0, If< IsSatisfied<(sizeof...(Is)/2<=min(typename RA::Dimension(), typename RB::Dimension()))> > = 0> |
| static constexpr auto | contract (XA &&a, XB &&b) |
| |
| template<Index... Is, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Contract< Is... >, X & > > = 0> |
| static constexpr auto | contract (X &&a) |
| |
| template<Index... Is, class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< Contract< Is... >, XA &, XB & > > = 0> |
| static constexpr auto | contract (XA &&a, XB &&b) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Cos >, X > > = 0> |
| static constexpr auto | cos (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Cosh >, X > > = 0> |
| static constexpr auto | cosh (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Delta >, XA, XB > > = 0> |
| static constexpr auto | delta (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< View, XB > > = 0, If< IsSame< typename RA::Dimension, typename RB::Dimension > > = 0, If< HasCommon< typename RA::Type, typename RB::Type > > = 0> |
| static constexpr auto | directSum (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< DirectSum, XA &, XB & > > = 0> |
| static constexpr auto | directSum (XA &&a, XB &&b) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Div >, XA, XB > > = 0> |
| static constexpr auto | operator/ (XA &&a, XB &&b) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Equal >, XA, XB > > = 0> |
| static constexpr auto | operator== (XA &&a, XB &&b) |
| |
| template<class X , If< IsTensor< RemoveReference< X > > > = 0> |
| static constexpr X | eval (X &&a) |
| |
| template<class X , If< IsTensorView< RemoveReference< X > > > = 0> |
| static constexpr auto | eval (X &&a) |
| |
| template<Index... Es, class F , class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< All< IsInvocable< View, Xs >... > > = 0, If< IsSame< decltype(select< Es... >(typename RemoveReference< Xs >::Sizes()))... > , If< IsInvocable< F, ResultOf< pRC::Chip< Es... >, Xs, decltype(Es)... >... > > = 0, If< True< decltype(select< Es... >(makeSeries< Index, typename RemoveReference< Xs >::Dimension{}>()))... > > |
| static constexpr auto | exclude (F &&f, Xs &&...args) |
| |
| template<class F , Index... Es, class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< All< IsInvocable< View, Xs >... > > = 0, If< IsSame< decltype(select< Es... >(typename RemoveReference< Xs >::Sizes()))... > , If< IsInvocable< F, ResultOf< pRC::Chip< Es... >, Xs, decltype(Es)... >... > > = 0, If< True< decltype(select< Es... >(makeSeries< Index, typename RemoveReference< Xs >::Dimension{}>()))... > > |
| static constexpr auto | exclude (Xs &&...args) |
| |
| template<Index... Es, class F , class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< Not< All< IsInvocable< View, Xs >... > > > = 0, If< IsInvocable< Exclude< F, Es... >, Xs &... > > = 0> |
| static constexpr auto | exclude (F &&f, Xs &&...args) |
| |
| template<class F , Index... Es, class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< Not< All< IsInvocable< View, Xs >... > > > = 0, If< IsInvocable< Exclude< F, Es... >, Xs &... > > = 0> |
| static constexpr auto | exclude (Xs &&...args) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Exp >, X > > = 0> |
| static constexpr auto | exp (X &&a) |
| |
| template<Index K, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(typename R::Dimension{} > 1)> , If< IsSatisfied<(K< typename R::Dimension{})> > = 0> |
| static constexpr auto | flatten (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Floor >, X > > = 0> |
| static constexpr auto | floor (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< FMod >, XA, XB > > = 0> |
| static constexpr auto | fmod (XA &&a, XB &&b) |
| |
| template<Position P, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsSatisfied<(typename R::Dimension{} > 1)> , If< IsSatisfied<(P==Position::Left||P==Position::Right)> > = 0, If< All< IsInvocable< Unfolding< typename R::Dimension() - 2 >, X >, IsInvocable< Unfolding< 0 >, X > > > = 0> |
| static constexpr auto | folding (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Greater >, XA, XB > > = 0> |
| static constexpr auto | operator> (XA &&a, XB &&b) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< GreaterEqual >, XA, XB > > = 0> |
| static constexpr auto | operator>= (XA &&a, XB &&b) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Mul >, XA, XB > > = 0> |
| static constexpr auto | hadamardProduct (XA &&a, XB &&b) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Imag >, X > > = 0> |
| static constexpr auto | imag (X &&a) |
| |
| template<Size... Is, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(sizeof...(Is)==typename R::Dimension())> > = 0> |
| static constexpr auto | inflate (X &&a) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< Conj, XA > > = 0, If< IsInvocable< ScalarProduct, ResultOf< Conj, XA >, XB > > = 0> |
| static constexpr auto | innerProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< InnerProduct, XA &, XB & > > = 0> |
| static constexpr auto | innerProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< View, XB > > = 0, If< IsSame< typename RA::Dimension, typename RB::Dimension > > = 0, class EA = ResultOf<XA, typename RA::Subscripts>, class EB = ResultOf<XB, typename RB::Subscripts>, If< IsInvocable< Mul, EA, EB > > = 0> |
| static constexpr auto | kroneckerProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< KroneckerProduct, XA &, XB & > > = 0> |
| static constexpr auto | kroneckerProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Less >, XA, XB > > = 0> |
| static constexpr auto | operator< (XA &&a, XB &&b) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< LessEqual >, XA, XB > > = 0> |
| static constexpr auto | operator<= (XA &&a, XB &&b) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsSatisfied<(typename R::Dimension{} > 0)> , If< IsInvocable< Reshape< R::Sizes::size()>, X > > = 0> |
| static constexpr auto | linearize (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Log >, X > > = 0> |
| static constexpr auto | log (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Log10 >, X > > = 0> |
| static constexpr auto | log10 (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Log2 >, X > > = 0> |
| static constexpr auto | log2 (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< LogicalAnd >, XA, XB > > = 0> |
| static constexpr auto | operator&& (XA &&a, XB &&b) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< LogicalNot >, X > > = 0> |
| static constexpr auto | operator! (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< LogicalOr >, XA, XB > > = 0> |
| static constexpr auto | operator|| (XA &&a, XB &&b) |
| |
| template<class F , class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< All< IsInvocable< View, Xs >... > > = 0, If< IsSame< typename RemoveReference< Xs >::Sizes... > > = 0, If< IsInvocable< F, ResultOf< Xs, typename RemoveReference< Xs >::Subscripts >... > > = 0> |
| static constexpr auto | loop (F &&f, Xs &&...args) |
| |
| template<class F , class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< All< IsInvocable< View, Xs >... > > = 0, If< IsSame< typename RemoveReference< Xs >::Sizes... > > = 0, If< IsInvocable< F, ResultOf< Xs, typename RemoveReference< Xs >::Subscripts >... > > = 0> |
| static constexpr auto | loop (Xs &&...args) |
| |
| template<class F , class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< Not< All< IsInvocable< View, Xs >... > > > = 0, If< IsInvocable< Loop< F >, F, Xs &... > > = 0> |
| static constexpr auto | loop (F &&f, Xs &&...args) |
| |
| template<class F , class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< Not< All< IsInvocable< View, Xs >... > > > = 0, If< IsInvocable< Loop< F >, Xs &... > > = 0> |
| static constexpr auto | loop (Xs &&...args) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Minus >, X > > = 0> |
| static constexpr auto | operator- (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Mod >, XA, XB > > = 0> |
| static constexpr auto | operator% (XA &&a, XB &&b) |
| |
| template<Index... Ns, class F , class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< IsSame< decltype(chip< Ns... >(typename RemoveReference< Xs >::Sizes()))... > , If< True< decltype(chip< Ns... >(makeSeries< Index, Common< typename RemoveReference< Xs >::Dimension... >{}>()))> > |
| static constexpr auto | narrow (F &&f, Xs &&...args) |
| |
| template<class F , Index... Ns, class... Xs, If< All< IsTensorish< RemoveReference< Xs > >... > > = 0, If< IsSame< decltype(chip< Ns... >(typename RemoveReference< Xs >::Sizes()))... > , If< True< decltype(chip< Ns... >(makeSeries< Index, Common< typename RemoveReference< Xs >::Dimension... >{}>()))> > |
| static constexpr auto | narrow (Xs &&...args) |
| |
| template<Index P = 2, Index Q = P, class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< View, X > > = 0, If< Any< All< IsSatisfied<(P==1 &&Q==1)>, IsInvocable< Loop< Norm< 1, 1 > >, X >, IsInvocable< Reduce< Add >, ResultOf< Loop< Norm< 1, 1 > >, X > > >, All< IsSatisfied<(P==2 &&Q==1)>, IsInvocable< Loop< Norm< 2, 1 > >, X >, IsInvocable< Reduce< Add >, ResultOf< Loop< Norm< 2, 1 > >, X > > >, All< IsSatisfied<(P==2 &&Q==2)>, IsInvocable< Loop< Norm< 2, 1 > >, X >, IsInvocable< Reduce< Add >, ResultOf< Loop< Norm< 2, 1 > >, X > >, IsInvocable< Sqrt, ResultOf< Reduce< Add >, ResultOf< Loop< Norm< 2, 1 > >, X > > > >, All< IsSatisfied<(P !=Q &&Q==0)>, IsInvocable< Loop< Norm< P, P > >, X >, IsInvocable< Reduce< Max >, ResultOf< Loop< Norm< P, P > >, X > > > > > = 0> |
| static constexpr auto | norm (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< NotEqual >, XA, XB > > = 0> |
| static constexpr auto | operator!= (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< View, XB > > = 0, If< IsInvocable< Conj, XA > > = 0, If< IsInvocable< TensorProduct, XA, ResultOf< Conj, XB > > > = 0> |
| static constexpr auto | outerProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< OuterProduct, XA &, XB & > > = 0> |
| static constexpr auto | outerProduct (XA &&a, XB &&b) |
| |
| template<Index... Ps, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(sizeof...(Ps)==typename R::Dimension())> > = 0, If< IsSatisfied<(max(Ps...)< typename R::Dimension())> > = 0, If< IsUnique< Constant< Index, Ps >... > > = 0> |
| static constexpr auto | permute (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(0==typename R::Dimension())> > = 0> |
| static constexpr auto | permute (X &&a) |
| |
| template<Index... Ps, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Permute< Ps... >, X & > > = 0> |
| static constexpr auto | permute (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Plus >, X > > = 0> |
| static constexpr auto | operator+ (X &&a) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Pow >, XA, XB > > = 0> |
| static constexpr auto | pow (XA &&a, XB &&b) |
| |
| template<class X , class S , class R = RemoveReference<X>, If< IsTensorish< R > > = 0> |
| static void | print (X &&arg, S &&stream) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Rcp >, X > > = 0> |
| static constexpr auto | rcp (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Real >, X > > = 0> |
| static constexpr auto | real (X &&a) |
| |
| template<class F , Index... Is, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(sizeof...(Is)<=typename R::Dimension())> > = 0, If< IsUnique< Constant< Index, Is >... > > = 0, If< IsSatisfied<(max(Is...)< typename R::Dimension())> > = 0, class E = ResultOf<X, typename R::Subscripts>, If< IsInvocable< F, E, E > > = 0, If< IsInvocable< F, decltype(F::template Identity< typename R::Type >()), E > > |
| static constexpr auto | reduce (X &&a) |
| |
| template<class F , class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, class E = ResultOf<X, typename R::Subscripts>, If< IsInvocable< F, E, E > > = 0, If< IsInvocable< F, decltype(F::template Identity< typename R::Type >()), E > > |
| static constexpr auto | reduce (X &&a) |
| |
| template<class F , Index... Is, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Reduce< F, Is... >, X & > > = 0> |
| static constexpr auto | reduce (X &&a) |
| |
| template<Size... Ns, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(Sizes< Ns... >::size()==R::size())> > |
| static constexpr auto | reshape (X &&a) |
| |
| template<Bool... Rs, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(sizeof...(Rs)==typename R::Dimension())> > = 0> |
| static constexpr auto | reverse (X &&a) |
| |
| template<Direction D, Size S = 1, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsSatisfied<(D==Direction::Leftwards||D==Direction::Rightwards)> > = 0> |
| static constexpr auto | rotate (X &&a) |
| |
| template<std::int64_t D = 0, class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Round< D > >, X > > = 0> |
| static constexpr auto | round (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsSatisfied<(R::Sizes::size()==1)> > = 0, If< IsInvocable< Reshape<>, X > > = 0> |
| static constexpr auto | scalar (X &&a) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< View, XB > > = 0, If< IsSame< typename RA::Sizes, typename RB::Sizes > > = 0, If< IsInvocable< HadamardProduct, XA, XB > > = 0, If< IsInvocable< Reduce< Add >, ResultOf< HadamardProduct, XA, XB > > > = 0> |
| static constexpr auto | scalarProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< ScalarProduct, XA &, XB & > > = 0> |
| static constexpr auto | scalarProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, class DA = typename RA::Dimension, class DB = typename RB::Dimension, If< IsSatisfied<(DA()==0||DB()==0)> > = 0, If< IsInvocable< TensorProduct, XA, XB > > = 0> |
| static constexpr auto | operator* (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, class DA = typename RA::Dimension, class DB = typename RB::Dimension, If< IsSatisfied<(DA()==0 &&DB() !=0)> > = 0, If< IsInvocable< Div, decltype(unit< typename RB::template ChangeType< typename RA::Type > >(declval< XA >()())), XB > > |
| static constexpr auto | operator/ (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< Any< IsValue< RB >, IsComplex< RB > > > = 0, If< IsInvocable< Mul, XA, decltype(unit< Tensor< RB > >(declval< XB >()))> > |
| static constexpr auto | operator* (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< Any< IsValue< RB >, IsComplex< RB > > > = 0, If< IsInvocable< Div, XA, decltype(unit< Tensor< RB > >(declval< XB >()))> > |
| static constexpr auto | operator/ (XA &&a, XB &&b) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Sign >, X > > = 0> |
| static constexpr auto | sign (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Sin >, X > > = 0> |
| static constexpr auto | sin (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Sinh >, X > > = 0> |
| static constexpr auto | sinh (X &&a) |
| |
| template<Size... Es, class X , class... Os, class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< All< IsConvertible< Os, Index >... > > = 0, If< IsSatisfied<(sizeof...(Es)==typename R::Dimension())> > = 0, If< IsSatisfied<(sizeof...(Os)==typename R::Dimension())> > = 0, If< IsSatisfied<(Sizes< Es... >()<=typename R::Sizes())> > |
| static constexpr auto | slice (X &&a, Os const ... offsets) |
| |
| template<Size... Es, class X , class... Os, class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Slice< Es... >, X &, Os... > > = 0> |
| static constexpr auto | slice (X &&a, Os const ... offsets) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Sqrt >, X > > = 0> |
| static constexpr auto | sqrt (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Square >, X > > = 0> |
| static constexpr auto | square (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0> |
| static constexpr auto | squeeze (X &&a) |
| |
| template<Size... Ss, class X , class... Os, class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< All< IsConvertible< Os, Index >... > > = 0, If< IsSatisfied<(sizeof...(Ss)==typename R::Dimension())> > = 0, If< IsSatisfied<(sizeof...(Os)==typename R::Dimension())> > = 0, If< IsSatisfied<(typename R::Sizes() % Sizes< Ss... >()==Constant< Size, 0 >())> > |
| static constexpr auto | stride (X &&a, Os const ... offsets) |
| |
| template<Size... Ss, class X , class... Os, class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Stride< Ss... >, X &, Os... > > = 0> |
| static constexpr auto | stride (X &&a, Os const ... offsets) |
| |
| template<class XA , class XB , If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Sub >, XA, XB > > = 0> |
| static constexpr auto | operator- (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< View, XB > > = 0, If< IsSame< typename RA::Sizes, typename RB::Sizes > > = 0, class EA = ResultOf<XA, typename RA::Subscripts>, class EB = ResultOf<XB, typename RB::Subscripts>, If< IsInvocable< Swap, EA, EB > > = 0> |
| static constexpr auto | swap (XA &&a, XB &&b) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Tan >, X > > = 0> |
| static constexpr auto | tan (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Tanh >, X > > = 0> |
| static constexpr auto | tanh (X &&a) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< View, XB > > = 0, class EA = ResultOf<XA, typename RA::Subscripts>, class EB = ResultOf<XB, typename RB::Subscripts>, If< IsInvocable< Mul, EA, EB > > = 0> |
| static constexpr auto | tensorProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< TensorProduct, XA &, XB & > > = 0> |
| static constexpr auto | tensorProduct (XA &&a, XB &&b) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< Loop< Trunc >, X > > = 0> |
| static constexpr auto | trunc (X &&a) |
| |
| template<Index K, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsSatisfied<(typename R::Dimension{} > 1)> , If< IsSatisfied<(K+1< typename R::Dimension{})> > = 0, If< IsInvocable< Reshape< R::size(K), R::Sizes::size()/R::size(K)>, X > > = 0> |
| static constexpr auto | unfolding (X &&a) |
| |
| template<class X , If< IsTensorView< RemoveReference< X > > > = 0> |
| static constexpr X | view (X &&a) |
| |
| template<class T , Size... Ns> |
| static constexpr auto | view (Tensor< T, Ns... > const &a) |
| |
| template<class T , Size... Ns> |
| static constexpr auto | view (Tensor< T, Ns... > &a) |
| |
| template<class T , Size... Ns> |
| static constexpr auto | view (Tensor< T, Ns... > const &&)=delete |
| |
| template<class XE , class XA , class XB , If< IsTensorish< RemoveReference< XE > > > = 0, If< IsTensorish< RemoveReference< XA > > > = 0, If< IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< Loop< Where >, XE, XA, XB > > = 0> |
| static constexpr auto | where (XE &&e, XA &&a, XB &&b) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsInvocable< Transpose, X > > = 0, If< IsInvocable< Conj, ResultOf< Transpose, X > > > = 0> |
| static constexpr auto | adjoint (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Adjoint, X & > > = 0> |
| static constexpr auto | adjoint (X &&a) |
| |
| template<Operator::Transform OT = Operator::Transform::None, Operator::Restrict OR = Operator::Restrict::None, Operator::Hint OH = Operator::Hint::None, class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< View, XB > > = 0, class DA = typename RA::Dimension, class DB = typename RB::Dimension, If< IsSatisfied<(isEven(DA()) &&(DA()/2==DB()||DA()==DB()))> > = 0, If< IsInvocable< Transform< OT >, XA > > = 0, If< IsInvocable< Mul, ResultOf< Restrict< OR >, ResultOf< Transform< OT >, XA > >, XB > > = 0> |
| static constexpr auto | apply (XA &&a, XB &&b) |
| |
| template<Operator::Transform OT = Operator::Transform::None, Operator::Restrict OR = Operator::Restrict::None, Operator::Hint OH = Operator::Hint::None, class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< Apply< OT, OR, OH >, XA &, XB & > > = 0> |
| static constexpr auto | apply (XA &&a, XB &&b) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(isEven(typename R::Dimension()))> > = 0> |
| static constexpr auto | diagonal (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(isEven(typename R::Dimension()))> > = 0> |
| static constexpr auto | extractDiagonal (X &&a) |
| |
| template<Size... Ds, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(isEven(sizeof...(Ds)))> > = 0, If< IsSatisfied<(sizeof...(Ds)/2==typename R::Dimension())> > = 0, If< IsSatisfied<(cut< 2, 0 >(Sizes< Ds... >()) >=typename R::Sizes())> , If< IsSatisfied<(cut< 2, 1 >(Sizes< Ds... >()) >=typename R::Sizes())> > |
| static constexpr auto | fromDiagonal (X &&a) |
| |
| template<Size... Ds, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< FromDiagonal< Ds... >, X & > > = 0> |
| static constexpr auto | fromDiagonal (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0> |
| static constexpr auto | fromDiagonal (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< Diagonal, X > > = 0, If< IsInvocable< IsApprox, ResultOf< Diagonal, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isDiagonal (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< LowerTriangular, X > > = 0, If< IsInvocable< IsApprox, ResultOf< LowerTriangular, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isLowerTriangular (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< OffDiagonal, X > > = 0, If< IsInvocable< IsApprox, ResultOf< OffDiagonal, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isOffDiagonal (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< Adjoint, X > > = 0, If< IsInvocable< IsApprox, ResultOf< Adjoint, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isSelfAdjoint (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< StrictlyLowerTriangular, X > > = 0, If< IsInvocable< IsApprox, ResultOf< StrictlyLowerTriangular, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isStrictlyLowerTriangular (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< StrictlyUpperTriangular, X > > = 0, If< IsInvocable< IsApprox, ResultOf< StrictlyUpperTriangular, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isStrictlyUpperTriangular (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< Transpose, X > > = 0, If< IsInvocable< IsApprox, ResultOf< Transpose, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isSymmetric (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< UnitLowerTriangular, X > > = 0, If< IsInvocable< IsApprox, ResultOf< UnitLowerTriangular, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isUnitLowerTriangular (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< UnitUpperTriangular, X > > = 0, If< IsInvocable< IsApprox, ResultOf< UnitUpperTriangular, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isUnitUpperTriangular (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< Adjoint, X > > = 0, If< IsInvocable< IsApprox, ResultOf< Mul, ResultOf< Adjoint, X >, X >, ResultOf< Mul, ResultOf< Adjoint, X >, X > > > = 0, class TT = typename R::Value> |
| static constexpr auto | isUnitary (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< UpperTriangular, X > > = 0, If< IsInvocable< IsApprox, ResultOf< UpperTriangular, X >, X > > = 0, class TT = typename R::Value> |
| static constexpr auto | isUpperTriangular (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | lowerTriangular (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsSatisfied<(typename R::Dimension{} > 0)> , If< IsSatisfied<(isEven(typename R::Dimension()))> > = 0> |
| static constexpr auto | matricize (X &&a) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsTensorish< RA > > = 0, If< IsTensorish< RB > > = 0, class DA = typename RA::Dimension, class DB = typename RB::Dimension, class SA = typename RA::Sizes, class SB = typename RB::Sizes, If< IsSatisfied<(isEven(DA()) &&DA()/2==DB())> > = 0, If< IsSame< decltype(cut< 2, 1 >(SA())), SB > , If< IsInvocable< Contract< DB{}, 0 >, XA, XB > > = 0> |
| static constexpr auto | operator* (XA &&a, XB &&b) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | offDiagonal (X &&a) |
| |
| template<Operator::Restrict OR = Operator::Restrict::None, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0> |
| static constexpr decltype(auto) | restrict (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | strictlyLowerTriangular (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | strictlyUpperTriangular (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< IsInvocable< View, X > > = 0, If< IsInvocable< ExtractDiagonal, X > > = 0, If< IsInvocable< Reduce< Add >, ResultOf< ExtractDiagonal, X > > > = 0> |
| static constexpr auto | trace (X &&a) |
| |
| template<class X , If< IsTensorish< RemoveReference< X > > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Trace, X & > > = 0> |
| static constexpr auto | trace (X &&a) |
| |
| template<Operator::Transform OT = Operator::Transform::None, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0> |
| static constexpr decltype(auto) | transform (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsSatisfied<(isEven(typename R::Dimension()))> > = 0> |
| static constexpr auto | transpose (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | unitLowerTriangular (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | unitUpperTriangular (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0, If< IsSatisfied<(typename R::Dimension()==2)> > = 0> |
| static constexpr auto | upperTriangular (X &&a) |
| |
| template<class F , class T , Size... Ns> |
| | Tensor (TensorViews::View< T, Sizes< Ns... >, F > const &) -> Tensor< T, Ns... > |
| |
| template<class X , class T , class N , class F > |
| static constexpr auto | isTensorView (TensorViews::View< T, N, F > const &&) |
| |
| template<class > |
| static constexpr auto | isTensorView (...) |
| |
| static constexpr auto | isnan (BFloat16 const a) |
| |
| | Float (Float< 16 >::Fundamental const) -> Float< 16 > |
| |
| | Float (Float< 32 >::Fundamental const) -> Float< 32 > |
| |
| | Float (Float< 64 >::Fundamental const) -> Float< 64 > |
| |
| template<class T , If< IsValue< T > > = 0, If< IsSatisfied<(typename T::Signed()==true)> > = 0> |
| static constexpr auto | abs (T const &a) |
| |
| template<class XA , class XB , If< IsInvocable< Sub, XA, XB > > = 0, If< IsInvocable< Norm<>, ResultOf< Sub, XA, XB > > > = 0, If< IsInvocable< Eval, ResultOf< Norm<>, ResultOf< Sub, XA, XB > > > > = 0> |
| static constexpr auto | absoluteError (XA &&a, XB &&b) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | acos (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | acosh (T const a) |
| |
| template<class TA , class TB , If< IsFloat< TA > > = 0, If< IsFloat< TB > > = 0> |
| static constexpr auto | operator+ (TA const &a, TB const &b) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | arg (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | asin (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | asinh (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | atan (T const &a) |
| |
| template<class Y , class X , If< IsFloat< Y > > = 0, If< IsFloat< X > > = 0> |
| static constexpr auto | atan2 (Y const &y, X const &x) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | atanh (T const &a) |
| |
| template<class C , If< IsValue< C > > = 0, class T , If< IsValue< T > > = 0, If< IsConstructible< C, typename T::Fundamental > > = 0> |
| static constexpr auto | cast (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | ceil (T const a) |
| |
| template<class T , If< IsValue< T > > = 0, If< IsConstructible< Complex< T >, T > > = 0> |
| static constexpr auto | complexify (T const &a) |
| |
| template<class T , If< IsValue< T > > = 0> |
| static constexpr auto | conj (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | cos (T const a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | cosh (T const &a) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsValue< TB > > = 0, If< None< IsUnsignedInteger< TA >, IsUnsignedInteger< TB > > > = 0> |
| static constexpr auto | delta (TA const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsFloat< TA > > = 0, If< IsFloat< TB > > = 0> |
| static constexpr auto | operator/ (TA const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsValue< TB > > = 0, If< Any< IsFloat< TA >, IsFloat< TB > > > = 0> |
| static constexpr auto | operator== (TA const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsInteger< TA > > = 0, If< IsInteger< TB > > = 0> |
| static constexpr auto | operator== (TA const &a, TB const &b) |
| |
| template<class X , If< IsBool< RemoveReference< X > > > = 0> |
| static constexpr X | eval (X &&a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | exp (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | floor (T const &a) |
| |
| template<class TA , class TB , If< IsFloat< TA > > = 0, If< IsFloat< TB > > = 0> |
| static constexpr auto | fmod (TA const &a, TB const &b) |
| |
| template<class F , Bool E = false, Direction D = Direction::Forwards, If< IsSatisfied<(D==Direction::Forwards||D==Direction::Backwards)> > = 0, class XA , If< IsInvocable< F, XA, XA > > = 0> |
| static constexpr Conditional< IsSatisfied< E >, decltype(eval(declval< XA >())), XA > | fold (XA &&a) |
| |
| template<class F , Bool E = false, Direction D = Direction::Forwards, If< IsSatisfied<(D==Direction::Forwards||D==Direction::Backwards)> > = 0, class XA , class XB , If< IsInvocable< F, XA, XB > > = 0> |
| static constexpr auto | fold (XA &&a, XB &&b) |
| |
| template<class F , Bool E = false, Direction D = Direction::Forwards, class XA , class XB , class... Xs, If< IsSatisfied<(sizeof...(Xs) > 0)> , If< IsSatisfied<(D==Direction::Forwards||D==Direction::Backwards)> > = 0, If< IsInvocable< F, XA, XB > > = 0, If< IsInvocable< Fold< F, E, D >, ResultOf< Fold< F, E, D >, XA, XB > const &, Xs... > > = 0> |
| static constexpr auto | fold (XA &&a, XB &&b, Xs &&...args) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsValue< TB > > = 0> |
| static constexpr auto | operator> (TA const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsValue< TB > > = 0> |
| static constexpr auto | operator>= (TA const &a, TB const &b) |
| |
| template<class T , If< IsValue< T > > = 0> |
| static constexpr auto | imag (T const) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsValue< TB > > = 0> |
| static constexpr auto | innerProduct (TA const &a, TB const &b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, class TT = Common<typename RA::Value, typename RB::Value>, class T = Common<typename RA::Value, typename RB::Value, TT>, If< IsValue< TT > > = 0, If< IsInvocable< AbsoluteError, XA, XB > > = 0, If< IsInvocable< Norm<>, XA > > = 0, If< IsInvocable< Norm<>, XB > > = 0, If< IsConstructible< T, ResultOf< AbsoluteError, XA, XB > > > = 0, If< IsConstructible< T, ResultOf< Norm<>, XA > > > = 0, If< IsConstructible< T, ResultOf< Norm<>, XB > > > = 0> |
| static constexpr auto | isApprox (XA &&a, XB &&b, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | isFinite (T const &a) |
| |
| template<class X , class R = RemoveReference<X>, class TT = typename R::Value, If< IsValue< TT > > = 0, If< IsDefined< Identity< R > > > = 0, If< IsInvocable< Identity< R > > > = 0, If< IsInvocable< AbsoluteError, X, R > > = 0> |
| static constexpr auto | isIdentity (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | isNaN (T const &a) |
| |
| template<class X , class R = RemoveReference<X>, class TT = typename R::Value, If< IsValue< TT > > = 0, If< IsDefined< Unit< R > > > = 0, If< IsInvocable< Unit< R > > > = 0, If< IsInvocable< AbsoluteError, X, R > > = 0> |
| static constexpr auto | isUnit (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class X , class R = RemoveReference<X>, class TT = typename R::Value, If< IsValue< TT > > = 0, If< IsDefined< Zero< R > > > = 0, If< IsInvocable< Zero< R > > > = 0, If< IsInvocable< AbsoluteError, X, R > > = 0> |
| static constexpr auto | isZero (X &&a, TT const &tolerance=NumericLimits< TT >::tolerance()) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsValue< TB > > = 0, If< Any< IsFloat< TA >, IsFloat< TB > > > = 0> |
| static constexpr auto | operator< (TA const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsInteger< TA > > = 0, If< IsInteger< TB > > = 0> |
| static constexpr auto | operator< (TA const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsValue< TB > > = 0> |
| static constexpr auto | operator<= (TA const &a, TB const &b) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | log (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | log10 (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | log2 (T const &a) |
| |
| template<class... Xs, If< IsInvocable< Fold< Add >, Xs... > > = 0> |
| static constexpr auto | mean (Xs &&...args) |
| |
| template<class T , If< IsValue< T > > = 0> |
| static constexpr auto | operator- (T const &a) |
| |
| template<class TA , class TB , If< IsInteger< TA > > = 0, If< IsInteger< TB > > = 0> |
| static constexpr auto | operator% (TA const &a, TB const &b) |
| |
| template<class TA , class TB , If< IsFloat< TA > > = 0, If< IsFloat< TB > > = 0> |
| static constexpr auto | operator* (TA const &a, TB const &b) |
| |
| template<Index P = 2, Index Q = P, class T , If< IsValue< T > > = 0> |
| static constexpr auto | norm (T const &a) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsValue< TB > > = 0> |
| static constexpr auto | operator!= (TA const &a, TB const &b) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr T | pi () |
| |
| template<class T , If< IsInteger< T > > = 0> |
| static constexpr auto | pi () |
| |
| template<class T , If< IsValue< T > > = 0> |
| static constexpr auto | operator+ (T const &a) |
| |
| template<class B , class N , If< IsFloat< B > > = 0, If< IsFloat< N > > = 0> |
| static constexpr auto | pow (B const &base, N const &exp) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static auto | print (T const &value, std::FILE *stream) |
| |
| template<class T , If< IsValue< T > > = 0> |
| static constexpr auto | rcp (T const &a) |
| |
| template<class X , If< IsValue< RemoveReference< X > > > = 0> |
| static constexpr X | real (X &&a) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< IsFloat< typename RA::Value > > = 0, If< IsFloat< typename RB::Value > > = 0, If< IsInvocable< AbsoluteError, XA, XB > > = 0, If< IsInvocable< Norm<>, XA > > = 0, If< IsInvocable< Div, ResultOf< AbsoluteError, XA, XB >, ResultOf< Norm<>, XA > > > = 0> |
| static constexpr auto | relativeError (XA &&a, XB &&b) |
| |
| template<std::int64_t D = 0, class T , If< IsFloat< T > > = 0> |
| static constexpr auto | round (T const &a) |
| |
| template<class TA , class TB , If< IsValue< TA > > = 0, If< IsValue< TB > > = 0> |
| static constexpr auto | scalarProduct (TA const &a, TB const &b) |
| |
| template<class T , If< IsValue< T > > = 0, If< IsSatisfied<(typename T::Signed()==true)> > = 0> |
| static constexpr auto | sign (T const &a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | sin (T const a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | sinh (T const a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | sqrt (T const &a) |
| |
| template<class T , If< IsValue< T > > = 0> |
| static constexpr auto | square (T const &a) |
| |
| template<class TA , class TB , If< IsFloat< TA > > = 0, If< IsFloat< TB > > = 0> |
| static constexpr auto | operator- (TA const &a, TB const &b) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | tan (T const a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | tanh (T const a) |
| |
| template<class T , If< IsFloat< T > > = 0> |
| static constexpr auto | trunc (T const &a) |
| |
| | Integer (Integer< true, 8 >::Fundamental const) -> Integer< true, 8 > |
| |
| | Integer (Integer< true, 16 >::Fundamental const) -> Integer< true, 16 > |
| |
| | Integer (Integer< true, 32 >::Fundamental const) -> Integer< true, 32 > |
| |
| | Integer (Integer< true, 64 >::Fundamental const) -> Integer< true, 64 > |
| |
| | Integer (Integer< false, 8 >::Fundamental const) -> Integer< false, 8 > |
| |
| | Integer (Integer< false, 16 >::Fundamental const) -> Integer< false, 16 > |
| |
| | Integer (Integer< false, 32 >::Fundamental const) -> Integer< false, 32 > |
| |
| | Integer (Integer< false, 64 >::Fundamental const) -> Integer< false, 64 > |
| |
| template<Position P, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, If< IsFloat< typename R::Value > > = 0, If< IsSatisfied<(P==Position::Left||P==Position::Right)> > = 0> |
| static constexpr auto | orthogonalize (X &&a) |
| |
| template<Size C, Position P, class X , class R = RemoveReference<X>, If< IsTensorish< R > > = 0, class V = typename R::Value, class VT = V, If< All< IsFloat< V >, IsFloat< VT > > > = 0, If< IsSatisfied<(P==Position::Left||P==Position::Right)> > = 0> |
| static constexpr auto | truncate (X &&a, VT const &tolerance=NumericLimits< VT >::epsilon()) |
| |
| template<class X , class R = RemoveReference<X>, If< Any< TensorTrain::IsTensorish< R >, TensorTrain::IsOperatorish< R > > > = 0, If< IsInvocable< Loop< Conj >, X > > = 0> |
| static constexpr auto | conj (X &&a) |
| |
| template<class F , class... Xs, If< All< Any< TensorTrain::IsTensorish< RemoveReference< Xs > >, TensorTrain::IsOperatorish< RemoveReference< Xs > > >... > > = 0, If< All< IsInvocable< View, Xs >... > > = 0, If< IsSame< typename RemoveReference< Xs >::Dimension... > > = 0, If< True< decltype(declval< F >().template operator()<0 >(declval< Xs >().template core< 0 >()...))> > |
| static constexpr auto | enumerate (F &&f, Xs &&...args) |
| |
| template<class F , class... Xs, If< All< Any< TensorTrain::IsTensorish< RemoveReference< Xs > >, TensorTrain::IsOperatorish< RemoveReference< Xs > > >... > > = 0, If< All< IsInvocable< View, Xs >... > > = 0, If< IsSame< typename RemoveReference< Xs >::Dimension... > > = 0, If< True< decltype(declval< F >().template operator()<0 >(declval< Xs >().template core< 0 >()...))> > |
| static constexpr auto | enumerate (Xs &&...args) |
| |
| template<class F , class... Xs, If< All< Any< TensorTrain::IsTensorish< RemoveReference< Xs > >, TensorTrain::IsOperatorish< RemoveReference< Xs > > >... > > = 0, If< Not< All< IsInvocable< View, Xs >... > > > = 0, If< IsInvocable< Enumerate< F >, F, Xs &... > > = 0> |
| static constexpr auto | enumerate (F &&f, Xs &&...args) |
| |
| template<class F , class... Xs, If< All< Any< TensorTrain::IsTensorish< RemoveReference< Xs > >, TensorTrain::IsOperatorish< RemoveReference< Xs > > >... > > = 0, If< Not< All< IsInvocable< View, Xs >... > > > = 0, If< IsInvocable< Enumerate< F >, Xs &... > > = 0> |
| static constexpr auto | enumerate (Xs &&...args) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< Any< All< TensorTrain::IsTensorish< RA >, TensorTrain::IsTensorish< RB > >, All< TensorTrain::IsOperatorish< RA >, TensorTrain::IsOperatorish< RB > > > > = 0, If< IsInvocable< Conj, XA > > = 0, If< IsInvocable< ScalarProduct, ResultOf< Conj, XA >, XB > > = 0> |
| static constexpr auto | innerProduct (XA &&a, XB &&b) |
| |
| template<class F , class... Xs, If< All< Any< TensorTrain::IsTensorish< RemoveReference< Xs > >, TensorTrain::IsOperatorish< RemoveReference< Xs > > >... > > = 0, If< All< IsInvocable< View, Xs >... > > = 0, If< IsSame< typename RemoveReference< Xs >::Dimension... > > = 0, If< IsInvocable< F, decltype(declval< Xs >().template core< 0 >())... > > |
| static constexpr auto | loop (F &&f, Xs &&...args) |
| |
| template<class F , class... Xs, If< All< Any< TensorTrain::IsTensorish< RemoveReference< Xs > >, TensorTrain::IsOperatorish< RemoveReference< Xs > > >... > > = 0, If< All< IsInvocable< View, Xs >... > > = 0, If< IsSame< typename RemoveReference< Xs >::Dimension... > > = 0, If< IsInvocable< F, decltype(declval< Xs >().template core< 0 >())... > > |
| static constexpr auto | loop (Xs &&...args) |
| |
| template<class F , class... Xs, If< All< Any< TensorTrain::IsTensorish< RemoveReference< Xs > >, TensorTrain::IsOperatorish< RemoveReference< Xs > > >... > > = 0, If< Not< All< IsInvocable< View, Xs >... > > > = 0, If< IsInvocable< Loop< F >, F, Xs &... > > = 0> |
| static constexpr auto | loop (F &&f, Xs &&...args) |
| |
| template<class F , class... Xs, If< All< Any< TensorTrain::IsTensorish< RemoveReference< Xs > >, TensorTrain::IsOperatorish< RemoveReference< Xs > > >... > > = 0, If< Not< All< IsInvocable< View, Xs >... > > > = 0, If< IsInvocable< Loop< F >, Xs &... > > = 0> |
| static constexpr auto | loop (Xs &&...args) |
| |
| template<class X , class R = RemoveReference<X>, If< Any< TensorTrain::IsTensorish< R >, TensorTrain::IsOperatorish< R > > > = 0> |
| static constexpr auto | operator- (X &&a) |
| |
| template<Index P = 2, Index Q = P, class X , class R = RemoveReference<X>, If< Any< TensorTrain::IsTensorish< R >, TensorTrain::IsOperatorish< R > > > = 0, If< IsSatisfied<(P==2 &&Q==2)> > = 0> |
| static constexpr auto | norm (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< Any< TensorTrain::IsTensorish< R >, TensorTrain::IsOperatorish< R > > > = 0, If< IsInvocable< Loop< Plus >, X > > = 0> |
| static constexpr auto | operator+ (X &&a) |
| |
| template<class X , class S , class R = RemoveReference<X>, If< Any< TensorTrain::IsTensorish< R >, TensorTrain::IsOperatorish< R > > > = 0> |
| static void | print (X &&arg, S &&stream) |
| |
| template<class Ranks , class X , class R = RemoveReference<X>, class V = typename R::Value, class VT = V, If< All< IsFloat< V >, IsFloat< VT > > > = 0, If< Any< TensorTrain::IsTensorish< R >, TensorTrain::IsOperatorish< R > > > = 0, If< IsSizes< Ranks > > = 0, If< IsSatisfied<(typename Ranks::Dimension()==typename R::Dimension() - 1)> > = 0> |
| static constexpr auto | round (X &&a, VT const &tolerance=NumericLimits< VT >::epsilon()) |
| |
| template<class X , class R = RemoveReference<X>, class V = typename R::Value, class VT = V, If< All< IsFloat< V >, IsFloat< VT > > > = 0, If< Any< TensorTrain::IsTensorish< R >, TensorTrain::IsOperatorish< R > > > = 0> |
| static constexpr auto | round (X &&a, VT const &tolerance=NumericLimits< VT >::epsilon()) |
| |
| template<Size C, class X , class R = RemoveReference<X>, class V = typename R::Value, class VT = V, If< All< IsFloat< V >, IsFloat< VT > > > = 0, If< Any< TensorTrain::IsTensorish< R >, TensorTrain::IsOperatorish< R > > > = 0> |
| static constexpr auto | round (X &&a, VT const &tolerance=NumericLimits< VT >::epsilon()) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< Any< TensorTrain::IsTensorish< RA >, TensorTrain::IsOperatorish< RA > > > = 0, If< IsInvocable< View, XA > > = 0, If< Any< IsValue< RB >, IsComplex< RB > > > = 0, If< IsInvocable< Mul, typename RA::Type, RB const & > > = 0> |
| static constexpr auto | operator* (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< Any< TensorTrain::IsTensorish< RA >, TensorTrain::IsOperatorish< RA > > > = 0, If< IsInvocable< View, XA > > = 0, If< Any< IsValue< RB >, IsComplex< RB > > > = 0, If< IsInvocable< Div, typename RA::Type, RB const & > > = 0> |
| static constexpr auto | operator/ (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< Any< TensorTrain::IsTensorish< RA >, TensorTrain::IsOperatorish< RA > > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< Mul, XA, typename RB::Type > > = 0> |
| static constexpr auto | operator* (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< Any< TensorTrain::IsTensorish< RA >, TensorTrain::IsOperatorish< RA > > > = 0, If< IsTensorish< RB > > = 0, If< IsInvocable< Div, XA, typename RB::Type > > = 0> |
| static constexpr auto | operator/ (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< Any< All< TensorTrain::IsTensorish< RA >, TensorTrain::IsTensorish< RB > >, All< TensorTrain::IsOperatorish< RA >, TensorTrain::IsOperatorish< RB > > > > = 0, If< IsInvocable< Minus, XB > > = 0, If< IsInvocable< Add, XA, ResultOf< Minus, XB > > > = 0> |
| static constexpr auto | operator- (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< TensorTrain::IsOperatorish< RA > > = 0, If< TensorTrain::IsOperatorish< RB > > = 0, If< IsSame< typename RA::Sizes, typename RB::Sizes > > = 0, If< HasCommon< typename RA::Type, typename RB::Type > > = 0> |
| static constexpr auto | operator+ (XA &&a, XB &&b) |
| |
| template<class X , If< TensorTrain::IsOperatorish< RemoveReference< X > > > = 0, If< IsInvocable< View, X > > = 0, If< IsInvocable< Transpose, X > > = 0, If< IsInvocable< Conj, ResultOf< Transpose, X > > > = 0> |
| static constexpr auto | adjoint (X &&a) |
| |
| template<class X , If< TensorTrain::IsOperatorish< RemoveReference< X > > > = 0, If< Not< IsInvocable< View, X > > > = 0, If< IsInvocable< Adjoint, X & > > = 0> |
| static constexpr auto | adjoint (X &&a) |
| |
| template<Operator::Transform OT = Operator::Transform::None, Operator::Restrict OR = Operator::Restrict::None, Operator::Hint OH = Operator::Hint::None, class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< TensorTrain::IsOperatorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< Any< TensorTrain::IsOperatorish< RB >, TensorTrain::IsTensorish< RB > > > = 0, If< IsInvocable< View, XB > > = 0, If< IsInvocable< Transform< OT >, XA > > = 0, If< IsInvocable< Mul, ResultOf< Restrict< OR >, ResultOf< Transform< OT >, XA > >, XB > > = 0> |
| static constexpr auto | apply (XA &&a, XB &&b) |
| |
| template<Operator::Transform OT = Operator::Transform::None, Operator::Restrict OR = Operator::Restrict::None, Operator::Hint OH = Operator::Hint::None, class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< TensorTrain::IsOperatorish< RA > > = 0, If< Any< TensorTrain::IsOperatorish< RB >, TensorTrain::IsTensorish< RB > > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< Apply< OT, OR, OH >, XA &, XB & > > = 0> |
| static constexpr auto | apply (XA &&a, XB &&b) |
| |
| template<class X , class R = RemoveReference<X>, If< TensorTrain::IsOperatorish< R > > = 0, If< IsInvocable< View, X > > = 0> |
| static constexpr auto | backwards (X &&a) |
| |
| template<class X , If< TensorTrain::IsOperator< RemoveReference< X > > > = 0> |
| static constexpr X | eval (X &&a) |
| |
| template<class X , If< TensorTrain::IsOperatorView< RemoveReference< X > > > = 0> |
| static constexpr auto | eval (X &&a) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< TensorTrain::IsOperatorish< RA > > = 0, If< TensorTrain::IsOperatorish< RB > > = 0, If< IsSame< typename RA::Sizes, typename RB::Sizes > > = 0, If< IsInvocable< Mul, typename RA::Type, typename RB::Type > > = 0> |
| static constexpr auto | hadamardProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< TensorTrain::IsOperatorish< RA > > = 0, If< IsInvocable< View, XA > > = 0, If< TensorTrain::IsTensorish< RB > > = 0, If< IsInvocable< View, XB > > = 0, If< IsSame< typename RA::N, typename RB::N > > = 0> |
| static constexpr auto | operator* (XA &&a, XB &&b) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< Any< TensorTrain::IsOperatorish< RA >, TensorTrain::IsTensorish< RA > > > = 0, If< Any< TensorTrain::IsOperatorish< RB >, TensorTrain::IsTensorish< RB > > > = 0, If< Not< All< IsInvocable< View, XA >, IsInvocable< View, XB > > > > = 0, If< IsInvocable< Mul, XA &, XB & > > = 0> |
| static constexpr auto | operator* (XA &&a, XB &&b) |
| |
| template<Operator::Restrict OR = Operator::Restrict::None, class X , class R = RemoveReference<X>, If< TensorTrain::IsOperatorish< R > > = 0> |
| static constexpr decltype(auto) | restrict (X &&a) |
| |
| template<class XA , class XB , If< TensorTrain::IsOperatorish< RemoveReference< XA > > > = 0, If< TensorTrain::IsOperatorish< RemoveReference< XB > > > = 0, If< IsInvocable< HadamardProduct, XA, XB > > = 0> |
| static constexpr auto | scalarProduct (XA &&a, XB &&b) |
| |
| template<Operator::Transform OT = Operator::Transform::None, class X , class R = RemoveReference<X>, If< TensorTrain::IsOperatorish< R > > = 0> |
| static constexpr decltype(auto) | transform (X &&a) |
| |
| template<class X , class R = RemoveReference<X>, If< TensorTrain::IsOperatorish< R > > = 0, If< IsInvocable< Loop< Permute< 0, 2, 1, 3 > >, X > > = 0> |
| static constexpr auto | transpose (X &&a) |
| |
| template<class X , If< TensorTrain::IsOperatorView< RemoveReference< X > > > = 0> |
| static constexpr X | view (X &&a) |
| |
| template<class T , class M , class N , class R > |
| static constexpr auto | view (TensorTrain::Operator< T, M, N, R > const &a) |
| |
| template<class T , class M , class N , class R > |
| static constexpr auto | view (TensorTrain::Operator< T, M, N, R > &a) |
| |
| template<class T , class M , class N , class R > |
| static constexpr auto | view (TensorTrain::Operator< T, M, N, R > const &&)=delete |
| |
| template<class T , Size... Ms, Size... Ns, class R > |
| | Tensor (TensorTrain::Operator< T, Sizes< Ms... >, Sizes< Ns... >, R > const &) -> Tensor< T, Ms..., Ns... > |
| |
| template<class T , Size... Ms, Size... Ns, class R , class F > |
| | Tensor (TensorTrain::OperatorViews::View< T, Sizes< Ms... >, Sizes< Ns... >, R, F > const &) -> Tensor< T, Ms..., Ns... > |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< TensorTrain::IsTensorish< RA > > = 0, If< TensorTrain::IsTensorish< RB > > = 0, If< IsSame< typename RA::Sizes, typename RB::Sizes > > = 0, If< HasCommon< typename RA::Type, typename RB::Type > > = 0> |
| static constexpr auto | operator+ (XA &&a, XB &&b) |
| |
| template<class X , class R = RemoveReference<X>, If< TensorTrain::IsTensorish< R > > = 0, If< IsInvocable< View, X > > = 0> |
| static constexpr auto | backwards (X &&a) |
| |
| template<class X , If< TensorTrain::IsTensor< RemoveReference< X > > > = 0> |
| static constexpr X | eval (X &&a) |
| |
| template<class X , If< TensorTrain::IsTensorView< RemoveReference< X > > > = 0> |
| static constexpr auto | eval (X &&a) |
| |
| template<class XA , class XB , class RA = RemoveReference<XA>, class RB = RemoveReference<XB>, If< TensorTrain::IsTensorish< RA > > = 0, If< TensorTrain::IsTensorish< RB > > = 0, If< IsSame< typename RA::Sizes, typename RB::Sizes > > = 0, If< IsInvocable< Mul, typename RA::Type, typename RB::Type > > = 0> |
| static constexpr auto | hadamardProduct (XA &&a, XB &&b) |
| |
| template<class XA , class XB , If< TensorTrain::IsTensorish< RemoveReference< XA > > > = 0, If< TensorTrain::IsTensorish< RemoveReference< XB > > > = 0, If< IsInvocable< HadamardProduct, XA, XB > > = 0> |
| static constexpr auto | scalarProduct (XA &&a, XB &&b) |
| |
| template<class X , If< TensorTrain::IsTensorView< RemoveReference< X > > > = 0> |
| static constexpr X | view (X &&a) |
| |
| template<class T , class N , class R > |
| static constexpr auto | view (TensorTrain::Tensor< T, N, R > const &a) |
| |
| template<class T , class N , class R > |
| static constexpr auto | view (TensorTrain::Tensor< T, N, R > &a) |
| |
| template<class T , class N , class R > |
| static constexpr auto | view (TensorTrain::Tensor< T, N, R > const &&)=delete |
| |
| template<class T , Size... Ns, class R > |
| | Tensor (TensorTrain::Tensor< T, Sizes< Ns... >, R > const &) -> Tensor< T, Ns... > |
| |
| template<class T , Size... Ns, class R , class F > |
| | Tensor (TensorTrain::TensorViews::View< T, Sizes< Ns... >, R, F > const &) -> Tensor< T, Ns... > |
| |