Commit c5dc4266 authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Adding unary expression template.

parent f25c3254
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
/***************************************************************************
                          UnaryExpressionTemplate.h  -  description
                             -------------------
    begin                : Apr 24, 2019
    copyright            : (C) 2019 by Tomas Oberhuber
    email                : tomas.oberhuber@fjfi.cvut.cz
 ***************************************************************************/

/* See Copyright Notice in tnl/Copyright */

#pragma once

#include <iostream>

namespace TNL {
   namespace Containers {
      namespace Expressions {


      } //namespace Expressions
   } //namespace Containers
} // namespace TNL
 No newline at end of file
+0 −118
Original line number Diff line number Diff line
@@ -141,48 +141,6 @@ class StaticVector : public StaticArray< Size, Real >
   __cuda_callable__
   StaticVector& operator /= ( const Real& c );

#ifdef UNDEF
   /**
    * \brief Addition operator.
    *
    * This function adds static vector \e u to this static vector and returns the resulting static vector.
    * The addition is applied to all the vector elements separately.
    * \param u Reference to another static vector.
    */
   __cuda_callable__
   StaticVector operator + ( const StaticVector& u ) const;

   /**
    * \brief Subtraction operator.
    *
    * This function subtracts static vector \e u from this static vector and returns the resulting static vector.
    * The subtraction is applied to all the vector elements separately.
    * \param u Reference to another static vector.
    */
   __cuda_callable__
   StaticVector operator - ( const StaticVector& u ) const;

   /**
    * \brief Multiplication by number.
    *
    * This function multiplies this static vector by \e c and returns the resulting static vector.
    * The addition is applied to all the vector elements separately.
    * \param c Multiplicator.
    */
   __cuda_callable__
   StaticVector operator * ( const Real& c ) const;

   /**
    * \brief Computes scalar (dot) product.
    *
    * An algebraic operation that takes two equal-length vectors and returns a single number.
    *
    * \param u Reference to another static vector of the same size as this static vector.
    */
   __cuda_callable__
   Real operator * ( const StaticVector& u ) const;
#endif

   /**
    * \brief Compares this static vector with static vector \e v.
    *
@@ -331,24 +289,6 @@ class StaticVector< 1, Real > : public StaticArray< 1, Real >
   __cuda_callable__
   StaticVector& operator /= ( const Real& c );

#ifdef UNDEF
   /** \brief See StaticVector::operator + ( const StaticVector& u ) const.*/
   __cuda_callable__
   StaticVector operator + ( const StaticVector& u ) const;

   /** \brief See StaticVector::operator - ( const StaticVector& u ) const.*/
   __cuda_callable__
   StaticVector operator - ( const StaticVector& u ) const;

   /** \brief See StaticVector::operator * ( const Real& c ) const.*/
   __cuda_callable__
   StaticVector operator * ( const Real& c ) const;

   /** \brief See StaticVector::operator * ( const StaticVector& u ) const.*/
   __cuda_callable__
   Real operator * ( const StaticVector& u ) const;
#endif

   /** \brief See StaticVector::operator <.*/
   __cuda_callable__
   bool operator < ( const StaticVector& v ) const;
@@ -474,24 +414,6 @@ class StaticVector< 2, Real > : public StaticArray< 2, Real >
   __cuda_callable__
   StaticVector& operator /= ( const Real& c );

#ifdef UNDEF
   /** \brief See StaticVector::operator + ( const StaticVector& u ) const.*/
   __cuda_callable__
   StaticVector operator + ( const StaticVector& u ) const;

   /** \brief See StaticVector::operator - ( const StaticVector& u ) const.*/
   __cuda_callable__
   StaticVector operator - ( const StaticVector& u ) const;

   /** \brief See StaticVector::operator * ( const Real& c ) const.*/
   __cuda_callable__
   StaticVector operator * ( const Real& c ) const;

   /** \brief See StaticVector::operator * ( const StaticVector& u ) const.*/
   __cuda_callable__
   Real operator * ( const StaticVector& u ) const;
#endif

   /** \brief See StaticVector::operator <.*/
   __cuda_callable__
   bool operator < ( const StaticVector& v ) const;
@@ -618,24 +540,6 @@ class StaticVector< 3, Real > : public StaticArray< 3, Real >
   __cuda_callable__
   StaticVector& operator /= ( const Real& c );

#ifdef UNDEF
   /** \brief See StaticVector::operator + ( const StaticVector& u ) const.*/
   __cuda_callable__
   StaticVector operator + ( const StaticVector& u ) const;

   /** \brief See StaticVector::operator - ( const StaticVector& u ) const.*/
   __cuda_callable__
   StaticVector operator - ( const StaticVector& u ) const;

   /** \brief See StaticVector::operator * ( const Real& c ) const.*/
   __cuda_callable__
   StaticVector operator * ( const Real& c ) const;

   /** \brief See StaticVector::operator * ( const StaticVector& u ) const.*/
   __cuda_callable__
   Real operator * ( const StaticVector& u ) const;
#endif

   /** \brief See StaticVector::operator <.*/
   __cuda_callable__
   bool operator < ( const StaticVector& v ) const;
@@ -752,28 +656,6 @@ StaticVector< 3, Real > VectorProduct( const StaticVector< 3, Real >& u,
   return p;
}

/*template< typename Real >
Real ScalarProduct( const StaticVector< 1, Real >& u,
                    const StaticVector< 1, Real >& v )
{
   return u[ 0 ] * v[ 0 ];
}


template< typename Real >
Real ScalarProduct( const StaticVector< 2, Real >& u,
                    const StaticVector< 2, Real >& v )
{
   return u[ 0 ] * v[ 0 ] + u[ 1 ] * v[ 1 ];
}

template< typename Real >
Real ScalarProduct( const StaticVector< 3, Real >& u,
                    const StaticVector< 3, Real >& v )
{
   return u[ 0 ] * v[ 0 ] + u[ 1 ] * v[ 1 ] + u[ 2 ] * v[ 2 ];
}*/

template< typename T1,
          typename T2>
StaticVector<1, T1> Scale( const StaticVector< 1, T1 >& u,
+0 −36
Original line number Diff line number Diff line
@@ -121,42 +121,6 @@ StaticVector< 1, Real >& StaticVector< 1, Real >::operator /= ( const Real& c )
   return *this;
}

#ifdef UNDEF
template< typename Real >
__cuda_callable__
StaticVector< 1, Real > StaticVector< 1, Real >::operator + ( const StaticVector& u ) const
{
   StaticVector< 1, Real > res;
   res[ 0 ] = this->data[ 0 ] + u[ 0 ];
   return res;
}

template< typename Real >
__cuda_callable__
StaticVector< 1, Real > StaticVector< 1, Real >::operator - ( const StaticVector& u ) const
{
   StaticVector< 1, Real > res;
   res[ 0 ] = this->data[ 0 ] - u[ 0 ];
   return res;
}

template< typename Real >
__cuda_callable__
StaticVector< 1, Real > StaticVector< 1, Real >::operator * ( const Real& c ) const
{
   StaticVector< 1, Real > res;
   res[ 0 ] = c * this->data[ 0 ];
   return res;
}

template< typename Real >
__cuda_callable__
Real StaticVector< 1, Real >::operator * ( const StaticVector& u ) const
{
   return this->data[ 0 ] * u[ 0 ];
}
#endif

template< typename Real >
__cuda_callable__
bool StaticVector< 1, Real >::operator < ( const StaticVector& v ) const
+0 −41
Original line number Diff line number Diff line
@@ -133,47 +133,6 @@ StaticVector< 2, Real >& StaticVector< 2, Real >::operator /= ( const Real& c )
   return *this;
}

#ifdef UNDEF
template< typename Real >
__cuda_callable__
StaticVector< 2, Real > StaticVector< 2, Real >::operator + ( const StaticVector& u ) const
{
   StaticVector< 2, Real > res;
   res[ 0 ] = this->data[ 0 ] + u[ 0 ];
   res[ 1 ] = this->data[ 1 ] + u[ 1 ];
   return res;
}

template< typename Real >
__cuda_callable__
StaticVector< 2, Real > StaticVector< 2, Real >::operator - ( const StaticVector& u ) const
{
   StaticVector< 2, Real > res;
   res[ 0 ] = this->data[ 0 ] - u[ 0 ];
   res[ 1 ] = this->data[ 1 ] - u[ 1 ];
   return res;
}

template< typename Real >
__cuda_callable__
StaticVector< 2, Real > StaticVector< 2, Real >::operator * ( const Real& c ) const
{
   StaticVector< 2, Real > res;
   res[ 0 ] = c * this->data[ 0 ];
   res[ 1 ] = c * this->data[ 1 ];
   return res;
}

template< typename Real >
__cuda_callable__
Real StaticVector< 2, Real >::operator * ( const StaticVector& u ) const
{
   return this->data[ 0 ] * u[ 0 ] +
          this->data[ 1 ] * u[ 1 ];
}
#endif


template< typename Real >
__cuda_callable__
bool StaticVector< 2, Real >::operator < ( const StaticVector& v ) const
+0 −45
Original line number Diff line number Diff line
@@ -139,51 +139,6 @@ StaticVector< 3, Real >& StaticVector< 3, Real >::operator /= ( const Real& c )
   return *this;
}

#ifdef UNDEF
template< typename Real >
__cuda_callable__
StaticVector< 3, Real > StaticVector< 3, Real >::operator + ( const StaticVector& u ) const
{
   StaticVector< 3, Real > res;
   res[ 0 ] = this->data[ 0 ] + u[ 0 ];
   res[ 1 ] = this->data[ 1 ] + u[ 1 ];
   res[ 2 ] = this->data[ 2 ] + u[ 2 ];
   return res;
}

template< typename Real >
__cuda_callable__
StaticVector< 3, Real > StaticVector< 3, Real >::operator - ( const StaticVector& u ) const
{
   StaticVector< 3, Real > res;
   res[ 0 ] = this->data[ 0 ] - u[ 0 ];
   res[ 1 ] = this->data[ 1 ] - u[ 1 ];
   res[ 2 ] = this->data[ 2 ] - u[ 2 ];
   return res;
}

template< typename Real >
__cuda_callable__
StaticVector< 3, Real > StaticVector< 3, Real >::operator * ( const Real& c ) const
{
   StaticVector< 3, Real > res;
   res[ 0 ] = c * this->data[ 0 ];
   res[ 1 ] = c * this->data[ 1 ];
   res[ 2 ] = c * this->data[ 2 ];
   return res;
}

template< typename Real >
__cuda_callable__
Real StaticVector< 3, Real >::operator * ( const StaticVector& u ) const
{
   return this->data[ 0 ] * u[ 0 ] +
          this->data[ 1 ] * u[ 1 ] +
          this->data[ 2 ] * u[ 2 ];
}
#endif


template< typename Real >
__cuda_callable__
bool StaticVector< 3, Real >::operator < ( const StaticVector& v ) const