31#ifdef DEAL_II_WITH_MUPARSER
40 return static_cast<int>(val + ((val >= 0.0) ? 0.5 : -0.5));
44 mu_if(
double condition,
double thenvalue,
double elsevalue)
53 mu_or(
double left,
double right)
123 static std::mutex rand_mutex;
124 std::lock_guard<std::mutex> lock(rand_mutex);
126 std::uniform_real_distribution<> uniform_distribution(0., 1.);
130 static std::map<double, std::mt19937> rng_map;
132 if (rng_map.find(seed) == rng_map.end())
133 rng_map[seed] = std::mt19937(
static_cast<unsigned int>(seed));
135 return uniform_distribution(rng_map[seed]);
142 static std::mutex rand_mutex;
143 std::lock_guard<std::mutex> lock(rand_mutex);
144 std::uniform_real_distribution<> uniform_distribution(0., 1.);
145 const unsigned int seed =
static_cast<unsigned long>(std::time(
nullptr));
146 static std::mt19937 rng(seed);
147 return uniform_distribution(rng);
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
Expression ceil(const Expression &x)
Expression floor(const Expression &x)
Expression erfc(const Expression &x)
SymmetricTensor< 2, dim, Number > b(const Tensor< 2, dim, Number > &F)
double mu_if(double condition, double thenvalue, double elsevalue)
double mu_sec(double value)
double mu_floor(double value)
double mu_csc(double value)
double mu_pow(double a, double b)
double mu_log(double value)
double mu_rand_seed(double seed)
double mu_ceil(double value)
double mu_cot(double value)
std::vector< std::string > function_names
double mu_int(double value)
double mu_or(double left, double right)
double mu_and(double left, double right)
double mu_erfc(double value)
::VectorizedArray< Number, width > log(const ::VectorizedArray< Number, width > &)
::VectorizedArray< Number, width > tan(const ::VectorizedArray< Number, width > &)
::VectorizedArray< Number, width > cos(const ::VectorizedArray< Number, width > &)
::VectorizedArray< Number, width > sin(const ::VectorizedArray< Number, width > &)
::VectorizedArray< Number, width > pow(const ::VectorizedArray< Number, width > &, const Number p)