 #define _DG_FUNCTORS_CUH_
 
 #include <cmath>
-
+#include <thrust/random/linear_congruential_engine.h>
+#include <thrust/random/uniform_real_distribution.h>
+#include <thrust/random/normal_distribution.h>
 namespace dg
 {
  

        T operator()(const T& x){ return fabs(x);}
};



///@}
} //namespace dg


        T absx = x>0 ? x : -x;
        T absy = y>0 ? y : -y;
        return absx > absy ? absx : absy;
    }
};
/**
 * @brief Functor for the absolute maximum
 *
 * @tparam T value-type
 */
template <class T>
struct AbsMin
{
    /**
     * @brief Return the asbolute minimum
     *
     * @param x left value
     * @param y right value
     *
     * @return absolute minimum
     */
    __host__ __device__
    T operator() (const T& x, const T& y)
    {
        T absx = x<0 ? -x : x;
        T absy = y<0 ? -y : y;
        return absx < absy ? absx : -absy;
    }
};

