Skip to content
Snippets Groups Projects
  1. Oct 15, 2020
  2. Oct 14, 2020
  3. Oct 09, 2020
  4. Oct 08, 2020
  5. Oct 07, 2020
  6. Oct 06, 2020
  7. Oct 05, 2020
    • Brent Huisman's avatar
      Update Python examples (#1166) · d3e99c23
      Brent Huisman authored
      * Python examples: Updated to use region expressions (quotes)
      * Python examples: Uniform plotting
      * Python examples: Removed tutorial directory (example roughly matches python/example/single_cell_model.py)
      * Python examples: Rewrote flat_cell_builder() to segment_tree()
    • Brent Huisman's avatar
      Docs restructure for 0.4 (#1167) · 67b178cb
      Brent Huisman authored
      * Synced pages between Concepts, Python API and C++ API wherever possible
          * Recipe pages conform between the three section (concepts, python, c++)
          * Cell, Cable Cell and Cell * pages are rearranged and provided with some copy explaining the relationship between them.
      * Moved Python API out of Concepts
      * Renamed Concepts "How does Arbor work?"
      * Added Python Module Index plus mock import of Arbor for RTD build (unfortunately won't show there)
      * Broke out Interconnectivity (synapses) page.
      * Reworked Single Cell Model page into a quick start, with lots of cross referencing.
      * Tweaked logo.
      * Added Spack to install options.
      * Updated blurb.
      * Documentation now follows EU capitalization rules.
      * Assorted typofixes
    • Benjamin Cumming's avatar
    • Sam Yates's avatar
      Tighten SWC requirements, comments. (#1170) · 4339ffed
      Sam Yates authored
      * Remove contiguous numbering requirement from 'strict' mode SWC
      parsing, as it is not necessary for correct interpretation as a segment
      tree.
      * Describe in the swcio.hpp header how (strict) swc data is interpreted
      as a segment tree.
      * Demonstrate in unit tests that out-of-order and non-contiguously
      numbered records are valid for `parse_swc`.
      * Add unit test for `as_segment_tree`.
  8. Oct 01, 2020
  9. Sep 30, 2020
    • Sam Yates's avatar
      New SWC parser broke `load_swc_allen`. (#1165) · 09e6e1b5
      Sam Yates authored
      * Minor output formatting fix for `swc_record`.
      * Modify the Python `load_swc_allen` implementation to cope with SWC
      record ids not necessarily being contiguous, and with SWC record parent
      ids corresponding to record ids, not 0-based indices.
  10. Sep 29, 2020
  11. Sep 28, 2020
    • Sam Yates's avatar
      Rewrite SWC reader code. (#1127) · 11a6ef6d
      Sam Yates authored
      * Simplify scanning of SWC records.
      * `parse_swc` now retains metadata read from SWC comments.
      * `parse_swc` is given two modes, relaxed and strict. Strict mode enforces contiguous record numbering and rejects SWC that looks like it has a single-point soma.
      * Subtype `swc_error` according to error mode.
      * Remove `point` class and corresponding unit tests.
      * Add a RAII stream formatting flag saver, used in SWC record output operator.
      * Replace included 1-point soma SWC example with a regular SWC from NeuroMorpho.
  12. Sep 25, 2020
    • Sam Yates's avatar
      Fix error introduced by PR merge. (#1162) · 70e3c902
      Sam Yates authored
    • Nora Abi Akar's avatar
      Sanitize recipe (#1143) · af4d773b
      Nora Abi Akar authored
      * Raise an exception if:
      1. `recipe.num_souces(gid)` != number of detectors placed on the cell.
      2. `recipe.num_targets(gid)`  != number of synapses placed on the cell.
      3. `recipe.connections_on(gid)` has connections with non-existent source or target gids or lids
      * Raise better exception for gap junctions
      * Fix unit test 
      
      Addresses #681 
    • Sam Yates's avatar
      Address c++17 TODO comments. (#1159) · 906dd478
      Sam Yates authored
      * Use structured bindings where noted (there are likely other opportunities in the code).
      * Use `if constexpr` to simplify some template-dispatched code.
      * Remove `arb::uitl::get`, as it is no longer required now that util::variant is replaced.
      * Add `_v` utility inline constexpr template values.
      
      Part of the C++17 migration task #1022.
    • Sam Yates's avatar
      Replace arb::util::optional with std::optional. (#1158) · d5ace349
      Sam Yates authored
      * Substitute `std::optional<T>` for `arb::util::optional<T>` for non-reference types T.
      * Remove reference-deducing `util::value_by_key`; replace usages with new function `util::ptr_by_key`.
      * Add some missing header includes that were required but included only transitively.
      * Remove `operator<<` overload for optional in python/strprintf.hpp; replace with utility wrapper class that catches `std::optional<T>`.
      * Wrap some `std::optional` values with `to_string` in ostream output in python lib.
      
      Fixes #1154.
    • Benjamin Cumming's avatar
      remove spurious const_cast (#1161) · 6b561d15
      Benjamin Cumming authored
    • Sam Yates's avatar
      Add NeuroML2 morphology support in new library. (#1148) · 3c453b64
      Sam Yates authored
      * Add CMake infrastructure for new `arbornml` library comprising Arbor's NeuroML2 (C++) support.
      * Implement NeuroML2 parsing and interpretation, using libxml2 for XML parsing.
      * Add associated documentation, unit tests.
      * Replace `arb::util::optional` with `std::optional` in stitch morphology interface.
      * Add optional prefix to `arb::label_dict` import.
      * Update CI to test arbornml, with associated workarounds for OS X targets.
      * Remove glob functionality from `sup`, as it is no longer needed (it was used for lmorpho) and it triggers yet another OS X issue.
      
      Fixes #1088.
  13. Sep 22, 2020
    • Benjamin Cumming's avatar
      Move region/locset S-expr evaluation from python lib to Arbor lib. (#1157) · 3ba5f437
      Benjamin Cumming authored
      * Move label and s-expr parsing code and unit tests from Python to arbor C++ library.
      * Update `locset` and `region` constructors that take string arguments to parse strings as s-expressions or "quoted" labels.
      * Modify the input stream modifier used to parse asc files to use a lookup table for substitutions, renamed it transmogrifier.                                                             
      * Replace `hopefully` type implemented in python headers with an `arb::util::expected`.
      * Add `ARBDEV_COLOR` CMake option that forces gcc and clang to always output color output.
      * Allow arbitrary strings in labels in region and locset expressions.
      * Add `parse_region_expression` and `parse_locset_expression` functions alongside the existing `parse_label_expression` function for use when a region or locset is expected. These calls will promote a quoted string `"label"` to `(region "label")` or 
       `(locset "label")` respectively.
      * Add user-defined string literals for labels so that the C++ interface can use `"soma"_lab` instead of awkward escaping `"\"soma\""`.
      * Simplify Python wrapper code.
  14. Sep 18, 2020
    • Sam Yates's avatar
      Replace `util::any` and `util::variant` with std:: equivalents. (#1152) · 30e4c684
      Sam Yates authored
      * Replace usages of `util::any` with `std::any`.
      * Modify `util::any_cast` so that it forwards `std::any` arguments to `std::any_cast`; move into own header.
      * Prevent `std::unique_any` from implicitly encapsulating `std::any` objects.
      * Replace `test_any.cpp` unit tests with `test_any_cast.cpp` unit tests.
      * Replace some usages of `std::is_same<X, Y>::value` with `std::is_same_v<X, Y>` as part of general C++17ification.
      * Remove `util/variant.hpp`, `test_variant.cpp`.
      * Replace occurrences of `util::variant` with `std::variant`.
      * Replace `util::variant::get<N>` with `std::get<N>`.
      * Replace `util::get_if<N>` with `std::get_if<N>`, passing a pointer to variant instead of a ref or value.
      * Add some standard #includes where they were required in the source, but only included transitively.
      * Some minor comment tidying and fix-ups.
      * Update C++ API docs.
      
      Fixes #1144.
    • Sam Yates's avatar
      Fix misleading typo in cable cel python docs. (#1153) · 72df06e6
      Sam Yates authored
      Fixes #1149.
  15. Sep 17, 2020
    • Nora Abi Akar's avatar
      Optional Ion data (#1147) · 3bfd82d3
      Nora Abi Akar authored
      * Make the members of `cable_cell_ion_data`  optional.
      * Add separate methods for painting `init_int_concentration` , `init_ext_concentration` and `init_reversal_potential` on the cell.
  16. Sep 16, 2020
  17. Sep 14, 2020
    • Sam Yates's avatar
      Replace `util::either` with `util::expected`. (#1142) · 74e911e6
      Sam Yates authored
      * Implement a workalike for the proposed `std::expected` class: see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0323r9.html .
      * Replace use of `either` with `expected` in `mprovider`, `mechanism_catalogue`, `util::partition_range`, and `pyarb::hopefully`.
      * Replace use of `either` with `variant` in `util::sentinel_iterator`.
      * Add `in_place_t` constructor for `util::optional`.
      * Fix move assignment bug in `util::variant`.
      * Remove `util/either.hpp` and associated tests.
      
      Fixes #1135. 
    • Benjamin Cumming's avatar
      Update to C++17 (#1141) · 74411404
      Benjamin Cumming authored
      * Update CMake CXX version.
      * Make CUDA 10 a minimum requirement and remove CUDA 9 support code.
      * Set up g++ Travis tests to use g++ 8.
      * Explicitly set C++14 version for nvcc.
      * Properly split cuda compilation, including in unit tests.
      * Remove unnecessary modcc `SOLVE` warning.
      * Update pybind11 module to tag v2.5.0
      * Replace `util::size` and `util::data` with `std::` equivalents.
  18. Sep 08, 2020
  19. Sep 07, 2020
    • Sam Yates's avatar
      Fix bugs in util::variant assignment implementation. (#1137) · 0f0102ae
      Sam Yates authored
      * Fix copy-paste error that led to legitimate copies throwing a bad_variant_access exception.
      * Fix exception safety for the case when an error thrown in copy assignment takes the lhs to valueless.
      * Fix wrong valueless semantics associated with an exception being thrown during move assignment.
      * Add unit tests that exercise these issues.
      
      Fixes #1136.