namespace TensorSubscriptor
{
template <typename ArrayElementType, int dim>
- inline __attribute__((always_inline))
+ inline DEAL_II_ALWAYS_INLINE
ArrayElementType &
subscript (ArrayElementType *values,
const unsigned int i,
template <int rank_, int dim, typename Number>
-inline __attribute__((always_inline))
+inline DEAL_II_ALWAYS_INLINE
typename Tensor<rank_,dim,Number>::value_type &
Tensor<rank_,dim,Number>::operator[] (const unsigned int i)
{
template <int rank_, int dim, typename Number>
-inline __attribute__((always_inline))
+inline DEAL_II_ALWAYS_INLINE
const typename Tensor<rank_,dim,Number>::value_type &
Tensor<rank_,dim,Number>::operator[] (const unsigned int i) const
{
*/
template <int rank_1, int rank_2, int dim,
typename Number, typename OtherNumber>
-inline __attribute__((always_inline))
+inline DEAL_II_ALWAYS_INLINE
typename Tensor<rank_1 + rank_2 - 2, dim, typename ProductType<Number, OtherNumber>::type>::tensor_type
operator * (const Tensor<rank_1, dim, Number> &src1,
const Tensor<rank_2, dim, OtherNumber> &src2)
* @author Matthias Maier, 2015
*/
template <int index, int rank, typename T>
- __attribute__((always_inline)) internal::ReorderedIndexView<index, rank, T>
+ DEAL_II_ALWAYS_INLINE internal::ReorderedIndexView<index, rank, T>
reordered_index_view(T &t)
{
#ifdef DEAL_II_WITH_CXX11
* @author Matthias Maier, 2015
*/
template <int no_contr, int rank_1, int rank_2, int dim, typename T1, typename T2, typename T3>
- __attribute__((always_inline)) void contract(T1 &result, const T2 &left, const T3 &right)
+ DEAL_II_ALWAYS_INLINE void contract(T1 &result, const T2 &left, const T3 &right)
{
#ifdef DEAL_II_WITH_CXX11
static_assert(rank_1 >= no_contr, "The rank of the left tensor must be "
value_type;
// Recurse by applying index j directly:
- inline __attribute__((always_inline))
+ inline DEAL_II_ALWAYS_INLINE
value_type operator[](unsigned int j) const
{
return value_type(t_[j]);
typedef StoreIndex<rank - 1, internal::Identity<T> > value_type;
- inline __attribute__((always_inline))
+ inline DEAL_II_ALWAYS_INLINE
value_type operator[](unsigned int j) const
{
return value_type(Identity<T>(t_), j);
typedef typename ReferenceType<typename ValueType<T>::value_type>::type value_type;
- inline __attribute__((always_inline))
+ inline DEAL_II_ALWAYS_INLINE
value_type operator[](unsigned int j) const
{
return t_[j];
typedef typename ValueType<T>::value_type return_type;
- inline __attribute__((always_inline))
+ inline DEAL_II_ALWAYS_INLINE
typename ReferenceType<return_type>::type apply(unsigned int j) const
{
return t_[j];
typedef StoreIndex<rank - 1, StoreIndex<rank, S> > value_type;
- inline __attribute__((always_inline))
+ inline DEAL_II_ALWAYS_INLINE
value_type operator[](unsigned int j) const
{
return value_type(*this, j);
typedef typename ValueType<typename S::return_type>::value_type return_type;
typedef return_type value_type;
- inline __attribute__((always_inline))
+ inline DEAL_II_ALWAYS_INLINE
return_type &operator[](unsigned int j) const
{
return s_.apply(j)[i_];
{
public:
template<typename T1, typename T2, typename T3>
- inline __attribute__((always_inline)) static
+ inline DEAL_II_ALWAYS_INLINE static
void contract(T1 &result, const T2 &left, const T3 &right)
{
for (unsigned int i = 0; i < dim; ++i)
{
public:
template<typename T1, typename T2, typename T3>
- inline __attribute__((always_inline)) static
+ inline DEAL_II_ALWAYS_INLINE static
void contract(T1 &result, const T2 &left, const T3 &right)
{
for (unsigned int i = 0; i < dim; ++i)
{
public:
template<typename T1, typename T2, typename T3>
- inline __attribute__((always_inline)) static
+ inline DEAL_II_ALWAYS_INLINE static
void contract(T1 &result, const T2 &left, const T3 &right)
{
result = Contract2<no_contr, dim>::template contract2<T1>(left, right);
{
public:
template<typename T1, typename T2, typename T3>
- inline __attribute__((always_inline)) static
+ inline DEAL_II_ALWAYS_INLINE static
T1 contract2(const T2 &left, const T3 &right)
{
T1 result = T1();
{
public:
template<typename T1, typename T2, typename T3>
- inline __attribute__((always_inline)) static
+ inline DEAL_II_ALWAYS_INLINE static
T1 contract2(const T2 &left, const T3 &right)
{
return left * right;