| 12 | |
| 13 | namespace seissol::ode { |
| 14 | std::pair<std::size_t, std::size_t> ODEVector::index(std::size_t idx) const { |
| 15 | for (std::size_t i = 0; i < storages.size(); ++i) { |
| 16 | const auto begin = offsets[i]; |
| 17 | const auto end = begin + sizes[i]; |
| 18 | assert(begin <= idx); |
| 19 | if (idx < end) { |
| 20 | return {i, idx - begin}; |
| 21 | } |
| 22 | } |
| 23 | std::abort(); // Unreachable! |
| 24 | } |
| 25 | |
| 26 | ODEVector::ODEVector(std::vector<real*> storages, std::vector<std::size_t> sizes) |
| 27 | : storages(std::move(storages)), sizes(std::move(sizes)) { |
no test coverage detected