#pragma once #include #include #include namespace kel { namespace lbm { /* template struct is_neighbour { static bool operator()(saw::data& latt, saw::data& index) { using dfi = df_info; if(index.at({0u}).get() == 0u or index.at({1u}).get() == 0u){ return false; } for(saw::data k{0u}; k.get() < Descriptor::Q; ++k){ // TODO saw::data> } auto& cell = latt(index); } }; */ /* Might be stupidly complex class cell_info_registry final { public: static uint8_t next_reg_id = 0u; template static uint8_t get_registration_id() { static uint8_t reg_id = std::numeric_limit::max(); if(reg_id == std::numeric_limit::max()){ reg_id = next_reg_id; ++next_reg_id; } return reg_id; } }; */ void print_progress_bar(uint32_t progress, uint32_t progress_target){ std::cout <<"\r" <<"Progress: " <<((100 * progress) / progress_target) <<"% ["; uint64_t i{0u}; uint64_t max_display = 64u; uint64_t progress_display = (max_display * progress) / progress_target; for(; i < progress_display; ++i){ std::cout<<"#"; } for(; i < max_display; ++i){ std::cout<<"-"; } std::cout<<"]"; std::cout<