1#ifndef TATOOINE_ANALYTICAL_SYMBOLIC_COUNTEREXAMPLE_SADLO_H
2#define TATOOINE_ANALYTICAL_SYMBOLIC_COUNTEREXAMPLE_SADLO_H
3#include <tatooine/available_libraries.h>
4#if TATOOINE_GINAC_AVAILABLE
9template <
typename Real>
21 -GiNaC::numeric{1, 80} *
22 GiNaC::power(GiNaC::power(x(0), 2) + GiNaC::power(x(1), 2), 2) +
23 GiNaC::numeric{81, 80};
25 this->set_expr(
vec{r * (-GiNaC::numeric{1, 2} * x(0) +
26 GiNaC::numeric{1, 2} *
cos(t()) -
sin(t())),
27 r * (GiNaC::numeric{1, 2} * x(1) -
28 GiNaC::numeric{1, 2} *
sin(t()) +
cos(t()))});
32 return length(x) <= 3;
static auto constexpr t
Definition: index.h:24
constexpr auto cos(arithmetic auto const x)
Definition: math.h:28
constexpr auto sin(arithmetic auto const x)
Definition: math.h:27
Definition: counterexample_sadlo.h:10
counterexample_sadlo()
Definition: counterexample_sadlo.h:19
constexpr bool in_domain(const pos_type &x, Real) const
Definition: counterexample_sadlo.h:31
vec< real_type, NumDimensions > pos_type
Definition: field.h:20
Tensor tensor_type
Definition: field.h:18
tensor< GiNaC::ex, TensorDims... > symtensor_type
Definition: symbolic_field.h:22
auto constexpr x() const -> auto const &requires(N >=1)
Definition: vec.h:102