Order synapse compartment indices.
Present an ordered sequence of compartment indices to point processes (synapses) on creation in fvm_multicell. Required for GPU implementations. Also: * Change target handle for fvm_multicell to refer to actual (rather than offset) mechanism index. * Split out the range/sequence utilities that were accumulating in `util/range.hpp` into their own header `util/rangeutil.hpp`. Possibly `sequtil.hpp` is a better name… * Add range/sequence-friendly `util::sort` and `util::sort_by`. The latter sorts based on comparing a derived key. * Add `util::assign_by`. Assigns after applying a transformation. * Fix `canonical_view` for non-const ranges/sequences. * Unit tests for `assign`, `assign_by`, `sort`, `sort_by`.
Showing
- src/fvm_multicell.hpp 39 additions, 8 deletionssrc/fvm_multicell.hpp
- src/util/range.hpp 5 additions, 48 deletionssrc/util/range.hpp
- src/util/rangeutil.hpp 100 additions, 0 deletionssrc/util/rangeutil.hpp
- src/util/sentinel.hpp 3 additions, 3 deletionssrc/util/sentinel.hpp
- tests/global_communication/test_mpi_gather_all.cpp 1 addition, 1 deletiontests/global_communication/test_mpi_gather_all.cpp
- tests/unit/test_cell_group.cpp 1 addition, 1 deletiontests/unit/test_cell_group.cpp
- tests/unit/test_fvm.cpp 1 addition, 1 deletiontests/unit/test_fvm.cpp
- tests/unit/test_fvm_multi.cpp 1 addition, 1 deletiontests/unit/test_fvm_multi.cpp
- tests/unit/test_probe.cpp 1 addition, 1 deletiontests/unit/test_probe.cpp
- tests/unit/test_range.cpp 31 additions, 2 deletionstests/unit/test_range.cpp
- tests/validation/validate_soma.cpp 1 addition, 1 deletiontests/validation/validate_soma.cpp
- tests/validation/validate_synapses.cpp 1 addition, 1 deletiontests/validation/validate_synapses.cpp
Please register or sign in to comment