#include #include #include "../c++/math/n_linear.hpp" namespace { namespace sch { using namespace saw::schema; } SAW_TEST("Math 1-Linear"){ using namespace kel; saw::data,2u>> field; { field.at({{0u}}).at({{0u}}).set(-1.0); field.at({{1u}}).at({{0u}}).set(2.0); } saw::data> pos; pos.at({{0u}}).set(0.3); } SAW_TEST("Math/Floor Index and Fraction from Position"){ using namespace kel; saw::data> pos; { pos.at({{0u}}) = 43.999; pos.at({{1u}}) = -50.0; } auto ind_frac = lbm::position_to_index_and_fraction(pos); auto& ind = ind_frac.template get<0u>(); for(uint64_t i = 0u; i < 2u; ++i){ std::cout<(); for(uint64_t i = 0u; i < 2u; ++i){ std::cout<> pos; { pos.at({{0u}}) = 43.999; pos.at({{1u}}) = -50.0; } saw::data> bound; { bound.at({{0u}}) = 32u; bound.at({{1u}}) = 16u; } auto ind_frac = lbm::position_to_index_and_fraction_bounded(pos,bound); auto& ind = ind_frac.template get<0u>(); for(uint64_t i = 0u; i < 2u; ++i){ std::cout<(); for(uint64_t i = 0u; i < 2u; ++i){ std::cout<