Grid 0.7.0
Tensor_arith_mul.h File Reference

Go to the source code of this file.

Functions

 NAMESPACE_BEGIN (Grid)
template<class rtype, class vtype, class mtype>
accelerator_inline void mult (iScalar< rtype > *__restrict__ ret, const iScalar< mtype > *__restrict__ lhs, const iScalar< vtype > *__restrict__ rhs)
template<class rrtype, class ltype, class rtype, int N>
accelerator_inline void mult (iMatrix< rrtype, N > *__restrict__ ret, const iMatrix< ltype, N > *__restrict__ lhs, const iMatrix< rtype, N > *__restrict__ rhs)
template<class rrtype, class ltype, class rtype, int N>
accelerator_inline void mult (iMatrix< rrtype, N > *__restrict__ ret, const iMatrix< ltype, N > *__restrict__ lhs, const iScalar< rtype > *__restrict__ rhs)
template<class rrtype, class ltype, class rtype, int N>
accelerator_inline void mult (iMatrix< rrtype, N > *__restrict__ ret, const iScalar< ltype > *__restrict__ lhs, const iMatrix< rtype, N > *__restrict__ rhs)
template<class rtype, class vtype, class mtype, int N>
accelerator_inline void mult (iVector< rtype, N > *__restrict__ ret, const iMatrix< mtype, N > *__restrict__ lhs, const iVector< vtype, N > *__restrict__ rhs)
template<class rtype, class vtype, class mtype, int N>
accelerator_inline void mult (iVector< rtype, N > *__restrict__ ret, const iScalar< mtype > *__restrict__ lhs, const iVector< vtype, N > *__restrict__ rhs)
template<class rtype, class vtype, class mtype, int N>
accelerator_inline void mult (iVector< rtype, N > *__restrict__ ret, const iVector< vtype, N > *__restrict__ rhs, const iScalar< mtype > *__restrict__ lhs)
template<class rtype, class vtype, class mtype, int N>
accelerator_inline iVector< rtype, N > operator* (const iMatrix< mtype, N > &lhs, const iVector< vtype, N > &rhs)
template<class rtype, class vtype, class mtype, int N>
accelerator_inline iVector< rtype, N > operator* (const iScalar< mtype > &lhs, const iVector< vtype, N > &rhs)
template<class rtype, class vtype, class mtype, int N>
accelerator_inline iVector< rtype, N > operator* (const iVector< mtype, N > &lhs, const iScalar< vtype > &rhs)
template<class rtype, class vtype>
accelerator_inline iScalar< rtype > operator/ (const iScalar< rtype > &lhs, const iScalar< vtype > &rhs)
template<class rtype, class vtype, int N>
accelerator_inline iVector< rtype, N > operator/ (const iVector< rtype, N > &lhs, const iScalar< vtype > &rhs)
template<class rtype, class vtype, int N>
accelerator_inline iMatrix< rtype, N > operator/ (const iMatrix< rtype, N > &lhs, const iScalar< vtype > &rhs)
template<class l, class r>
accelerator_inline auto operator* (const iScalar< l > &lhs, const iScalar< r > &rhs) -> iScalar< decltype(lhs._internal *rhs._internal)>
template<class l, class r, int N>
accelerator_inline auto operator* (const iMatrix< l, N > &lhs, const iMatrix< r, N > &rhs) -> iMatrix< decltype(lhs._internal[0][0] *rhs._internal[0][0]), N >
template<class l, class r, int N>
accelerator_inline auto operator* (const iMatrix< r, N > &lhs, const iScalar< l > &rhs) -> iMatrix< decltype(lhs._internal[0][0] *rhs._internal), N >
template<class l, class r, int N>
accelerator_inline auto operator* (const iScalar< l > &lhs, const iMatrix< r, N > &rhs) -> iMatrix< decltype(lhs._internal *rhs._internal[0][0]), N >
template<class l, class r, int N>
accelerator_inline auto operator* (const iMatrix< l, N > &lhs, const iVector< r, N > &rhs) -> iVector< decltype(lhs._internal[0][0] *rhs._internal[0]), N >
template<class l, class r, int N>
accelerator_inline auto operator* (const iScalar< l > &lhs, const iVector< r, N > &rhs) -> iVector< decltype(lhs._internal *rhs._internal[0]), N >
template<class l, class r, int N>
accelerator_inline auto operator* (const iVector< l, N > &lhs, const iScalar< r > &rhs) -> iVector< decltype(lhs._internal[0] *rhs._internal), N >
 NAMESPACE_END (Grid)

Function Documentation

◆ NAMESPACE_BEGIN()

NAMESPACE_BEGIN ( Grid )

◆ mult() [1/7]

template<class rtype, class vtype, class mtype>
accelerator_inline void mult ( iScalar< rtype > *__restrict__ ret,
const iScalar< mtype > *__restrict__ lhs,
const iScalar< vtype > *__restrict__ rhs )

◆ mult() [2/7]

template<class rrtype, class ltype, class rtype, int N>
accelerator_inline void mult ( iMatrix< rrtype, N > *__restrict__ ret,
const iMatrix< ltype, N > *__restrict__ lhs,
const iMatrix< rtype, N > *__restrict__ rhs )

Definition at line 43 of file Tensor_arith_mul.h.

References iMatrix< vtype, N >::_internal, accelerator_inline, mac(), and mult().

◆ mult() [3/7]

template<class rrtype, class ltype, class rtype, int N>
accelerator_inline void mult ( iMatrix< rrtype, N > *__restrict__ ret,
const iMatrix< ltype, N > *__restrict__ lhs,
const iScalar< rtype > *__restrict__ rhs )

◆ mult() [4/7]

template<class rrtype, class ltype, class rtype, int N>
accelerator_inline void mult ( iMatrix< rrtype, N > *__restrict__ ret,
const iScalar< ltype > *__restrict__ lhs,
const iMatrix< rtype, N > *__restrict__ rhs )

◆ mult() [5/7]

template<class rtype, class vtype, class mtype, int N>
accelerator_inline void mult ( iVector< rtype, N > *__restrict__ ret,
const iMatrix< mtype, N > *__restrict__ lhs,
const iVector< vtype, N > *__restrict__ rhs )

◆ mult() [6/7]

template<class rtype, class vtype, class mtype, int N>
accelerator_inline void mult ( iVector< rtype, N > *__restrict__ ret,
const iScalar< mtype > *__restrict__ lhs,
const iVector< vtype, N > *__restrict__ rhs )

◆ mult() [7/7]

template<class rtype, class vtype, class mtype, int N>
accelerator_inline void mult ( iVector< rtype, N > *__restrict__ ret,
const iVector< vtype, N > *__restrict__ rhs,
const iScalar< mtype > *__restrict__ lhs )

◆ operator*() [1/10]

template<class rtype, class vtype, class mtype, int N>
accelerator_inline iVector< rtype, N > operator* ( const iMatrix< mtype, N > & lhs,
const iVector< vtype, N > & rhs )

Definition at line 108 of file Tensor_arith_mul.h.

References mult().

◆ operator*() [2/10]

template<class rtype, class vtype, class mtype, int N>
accelerator_inline iVector< rtype, N > operator* ( const iScalar< mtype > & lhs,
const iVector< vtype, N > & rhs )

Definition at line 116 of file Tensor_arith_mul.h.

References mult().

◆ operator*() [3/10]

template<class rtype, class vtype, class mtype, int N>
accelerator_inline iVector< rtype, N > operator* ( const iVector< mtype, N > & lhs,
const iScalar< vtype > & rhs )

Definition at line 124 of file Tensor_arith_mul.h.

References mult().

◆ operator/() [1/3]

template<class rtype, class vtype>
accelerator_inline iScalar< rtype > operator/ ( const iScalar< rtype > & lhs,
const iScalar< vtype > & rhs )

Definition at line 135 of file Tensor_arith_mul.h.

References iScalar< vtype >::_internal.

◆ operator/() [2/3]

template<class rtype, class vtype, int N>
accelerator_inline iVector< rtype, N > operator/ ( const iVector< rtype, N > & lhs,
const iScalar< vtype > & rhs )

◆ operator/() [3/3]

template<class rtype, class vtype, int N>
accelerator_inline iMatrix< rtype, N > operator/ ( const iMatrix< rtype, N > & lhs,
const iScalar< vtype > & rhs )

◆ operator*() [4/10]

template<class l, class r>
accelerator_inline auto operator* ( const iScalar< l > & lhs,
const iScalar< r > & rhs ) -> iScalar< decltype(lhs._internal *rhs._internal)>

Definition at line 177 of file Tensor_arith_mul.h.

References accelerator_inline, and mult().

◆ operator*() [5/10]

template<class l, class r, int N>
accelerator_inline auto operator* ( const iMatrix< l, N > & lhs,
const iMatrix< r, N > & rhs ) -> iMatrix< decltype(lhs._internal[0][0] *rhs._internal[0][0]), N >

Definition at line 185 of file Tensor_arith_mul.h.

References mult().

◆ operator*() [6/10]

template<class l, class r, int N>
accelerator_inline auto operator* ( const iMatrix< r, N > & lhs,
const iScalar< l > & rhs ) -> iMatrix< decltype(lhs._internal[0][0] *rhs._internal), N >

Definition at line 193 of file Tensor_arith_mul.h.

References mult().

◆ operator*() [7/10]

template<class l, class r, int N>
accelerator_inline auto operator* ( const iScalar< l > & lhs,
const iMatrix< r, N > & rhs ) -> iMatrix< decltype(lhs._internal *rhs._internal[0][0]), N >

Definition at line 205 of file Tensor_arith_mul.h.

References mult().

◆ operator*() [8/10]

template<class l, class r, int N>
accelerator_inline auto operator* ( const iMatrix< l, N > & lhs,
const iVector< r, N > & rhs ) -> iVector< decltype(lhs._internal[0][0] *rhs._internal[0]), N >

Definition at line 216 of file Tensor_arith_mul.h.

References mac(), and mult().

◆ operator*() [9/10]

template<class l, class r, int N>
accelerator_inline auto operator* ( const iScalar< l > & lhs,
const iVector< r, N > & rhs ) -> iVector< decltype(lhs._internal *rhs._internal[0]), N >

Definition at line 229 of file Tensor_arith_mul.h.

References mult().

◆ operator*() [10/10]

template<class l, class r, int N>
accelerator_inline auto operator* ( const iVector< l, N > & lhs,
const iScalar< r > & rhs ) -> iVector< decltype(lhs._internal[0] *rhs._internal), N >

Definition at line 239 of file Tensor_arith_mul.h.

References mult().

◆ NAMESPACE_END()

NAMESPACE_END ( Grid )