6#define CPG_INCLUDE_SYCL
9#include <cpg/calculus.hpp>
35 auto fxxx = [](
auto x)
40 auto fxxxx = [](
auto x)
45 auto pi_2 = std::numbers::pi_v<double> * 2.0;
46 auto bound = std::array{0.0, pi_2};
79 auto pi_2 = std::numbers::pi_v<double> * 2.0;
80 auto bound = std::array{0.0, pi_2};
82 auto f =[](
auto x,
auto y)
84 return std::sin(x) * std::cos(y);
87 auto fx =[](
auto x,
auto y)
89 return std::cos(x) * std::cos(y);
92 auto fxy =[](
auto x,
auto y)
94 return -std::cos(x) * std::sin(y);
97 auto fxxy =[](
auto x,
auto y)
99 return std::sin(x) * std::sin(y);
104 auto nr_dx_1 = cna::differentiate<0>(cmd_dx, f, 5, bound, 1.0, 1.0);
105 auto ar_dx_1 = cna::evaluate<0>(fx, 5, bound, 1.0, 1.0);
112 auto nr_dxdy_1 = cna::differentiate<0>(cmd_dxdy, f, 5, bound, 1.0, 1.0);
113 auto ar_dxdy_1 = cna::evaluate<0>(fxy, 5, bound, 1.0, 1.0);
121 auto nr_dxdxdy_1 = cna::differentiate<0>(cmd_dxdxdy, f, 5, bound, 1.0, 1.0);
122 auto nr_dxdydx_1 = cna::differentiate<0>(cmd_dxdydx, f, 5, bound, 1.0, 1.0);
123 auto ar_dxdxdy_1 = cna::evaluate<0>(fxxy, 5, bound, 1.0, 1.0);
146 auto fxx = [](
auto x)
151 auto fxxx = [](
auto x)
156 auto fxxxx = [](
auto x)
163 auto pi_2 = std::numbers::pi_v<double> * 2.0;
164 auto bound = std::array{0.0, pi_2};
199 auto pi_2 = std::numbers::pi_v<double> * 2.0;
200 auto bound = std::array{0.0, pi_2};
202 auto f =[](
auto x,
auto y)
204 return std::sin(x) * std::cos(y);
207 auto fx =[](
auto x,
auto y)
209 return std::cos(x) * std::cos(y);
212 auto fxy =[](
auto x,
auto y)
214 return -std::cos(x) * std::sin(y);
217 auto fxxy =[](
auto x,
auto y)
219 return std::sin(x) * std::sin(y);
224 auto nr_dx_1 = cna::differentiate<0>(queue, cmd_dx, f, 5, bound, 1.0, 1.0);
225 auto ar_dx_1 = cna::evaluate<0>(queue, fx, 5, bound, 1.0, 1.0);
232 auto nr_dxdy_1 = cna::differentiate<0>(queue, cmd_dxdy, f, 5, bound, 1.0, 1.0);
233 auto ar_dxdy_1 = cna::evaluate<0>(queue, fxy, 5, bound, 1.0, 1.0);
241 auto nr_dxdxdy_1 = cna::differentiate<0>(queue, cmd_dxdxdy, f, 5, bound, 1.0, 1.0);
242 auto nr_dxdydx_1 = cna::differentiate<0>(queue, cmd_dxdydx, f, 5, bound, 1.0, 1.0);
243 auto ar_dxdxdy_1 = cna::evaluate<0>(queue, fxxy, 5, bound, 1.0, 1.0);
void test_calculus_single_variable_tbb()
void test_calculus_multivariabl_tbb()
void test_calculus_single_variable_gpu()
void test_calculus_multivariabl_gpu()
auto differentiate(cpt::sequence< VarIndex, DerivativeOrder >, FuncType &&func, std::size_t N, std::array< BoundType, 2 > bound)
constexpr auto create_command(SeqType, SeqTypes...) noexcept
auto evaluate(FuncType &&f, ArgType arg1)