- Dec 20, 2019
-
-
Sam Yates authored
Fixes #811.
-
- Dec 16, 2019
-
-
Nora Abi Akar authored
* Rename `sample_event::cell_index` to `intdom_index`. * Sort `sample_events` by integration domain. Fixes #921
-
Nora Abi Akar authored
* Remove nested profiler call — revpot mechanisms already have profiler calls inserted in the generated code.
-
- Dec 11, 2019
-
-
* Use alternative hashing of cell_member_type values for 32-bit target. * Correctly match i686 as a "-march=" style target for gcc and clang. * Correct a signed/unsigned comparison warning in test_algorithms.cpp with -Wall. * Avoid spurious SIMD unit test failure for exprelr by using expm1 instead of exp - 1 in denominator when computing expected results.
-
- Dec 10, 2019
-
-
Avoid use of empty ranges determined by expressions `&vector[i]` where i equals vector.size(). Replace with expressions using `vector.data()` or subrange views. Fixes #917.
-
- Dec 09, 2019
-
-
If ion concentrations are read and written in the INITIAL blocks of mechanisms, this ensures that the reading mechanisms will receive the correct values. Fixes #896
-
- Dec 07, 2019
-
-
- Dec 05, 2019
-
-
Nora Abi Akar authored
* Group common linear system solver code across `SparseSolverVisitor`, `SparseNonlinearSolverVisitor`, and `LinearSolverVisitor`. * Normalize intermediate values in Gaussian elimination when the matrix has more than 5 rows. Fixes #890
-
- Dec 02, 2019
-
-
Benjamin Cumming authored
Fix linear scaling of model initialization w.r.t. number of MPI ranks. Fixes #909.
-
- Nov 28, 2019
-
-
Also change the way we handle unitson/unitsoff. UNITSON, UNITSOFF, COMMENT, ENDCOMMENT are now all handled in Lexer::parse Fixes #14 Fixes #885
-
Also renumber operator precedence. Fixes #25
-
-
- Nov 27, 2019
-
-
Also emit "abs" in cexpr_emit.cpp because the simd backend implements abs Fixes #887
-
Calling vector::reserve to increase the size of the synapse vector by 1 causes significant performance degradation.
-
Fixes #892
-
- Nov 26, 2019
-
-
Completely remove managed memory from the gpu backend. `managed_vector<level>` is split into: - A device vector of structs containing meta data about each level - A device vector containing concatenated lengths of each branch in a level for all levels - A device vector containing concatenated parents of each branch in a level for all levels All other instances of managed memory in `matrix_fine` are easily replaced by device vectors Managed memory is also removed from the unit tests. Fixes #841
-
- Oct 30, 2019
-
-
Benjamin Cumming authored
* Make access to `segment`s in a `cable_cell` read only * Change cell constructor to require morphology and label dictionary; `make_cable_cell` no longer required. * Consolidate paint/place functionality on `cable_cell`. * Add simple cell builder wrapping new API for use in unit tests. * Remove validation test code: appropriate validation tests will need to be implemented in nsuite. Fixes #871
-
Nora Abi Akar authored
* Remove improper std::move of mechanism description with for loop in cell::paint().
-
- Oct 23, 2019
-
-
Nora Abi Akar authored
* Fix modcc segmentation fault caused by improper check for the presence of a symbol, triggered when a symbol defined in a RANGE is absent from the ASSIGNED and PARAMETER blocks.
-
Nora Abi Akar authored
* Accept `tok::ne` for conditional expressions in modcc, and emit correctly as '!=' in `cexpr_emit`.
-
- Oct 22, 2019
-
-
Nora Abi Akar authored
* Add support for non-linear kinetic schemes in modcc, using a non-linear backwards Euler method with a fixed number of iterations of Newton's method.
-
- Oct 04, 2019
-
-
Sam Yates authored
* Provide correct assignment operator.
-
- Oct 02, 2019
-
-
Ensure that errors in Python callbacks that are called from multithreaded C++ code propogate the correct Python error back to the parent Python callback site, and that no callbacks are called from other threads if an error has already ocurred. - protects each recipe callback with a mutex, stores python exception, catches and throws python exception if occured - methods calling recipe (in simulation and partition_load_balance) are protected as well by try catch, resets and rethrows python exception (if occured) or else throws C++ exception fixes #792
-
Sets the diameter of a CV as the diameter at the middle of a CV Exposes the diameter in `shared_state` and `mechanism` Adds support in modcc to treat `diam` as a special parameter Implements unit tests Fixes #850
-
* Add new `cv_policy` class that wraps classes derived from `cv_policy_base`, which in turn provide a facility for producing CV boundaries on morphology trees from a `cable_cell`. * Implement fixed-CVs-per-branch and maximum-CV-length policies, with flags that allow for single-CV oots and for CVs that terminate at fork points or which are centred on fork points. * Expose locset `join` expressions. * Add `empty()` test method on `morphology`. * Expose branch length on `em_morphology` via member function. * Account for the length of a spherical root branch in `em_morphology`. * Test for validity but do not canonicalize locations when thingifying. * Rename `root_sample_has_same_tag_as_child` to `root_sample_tag_differs_from_children` to better reflect sense of test. * Add unit tests for CV policies, branch_length method.
-
- Oct 01, 2019
-
-
Nora Abi Akar authored
* Modify `SparseSolverVisitor` to allow solving kinetic equations at steady state. Addresses #837
-
- Sep 30, 2019
-
-
- Implement inlining functions with multiple statements - Implement inlining nested function calls - Implement inlining if/else statements. Compilation fails if a function fails to set the return value. Fixes #741, #742, #862
-
- Sep 25, 2019
-
-
akuesters authored
Adds * to `recipe.cpp`: `num_probes` and `get_probe` with helper function `cable_probe(kind, id, location)` * `sample.cpp`: `sample` type with attributes `time` and `value`; a `sampler` with `samples()` and `clear()` and helper functions `attach_sampler(sim, dt)` for adding all probes as well as `attach_sampler(sim, dt, probe_id)` for adding one probe * `morphology.cpp`: `location` as `arb::mlocation` with `branch` and `position` * corresponding docs and example * update to new cable cell semantics in c++ validation test fixes #762
-
- Sep 23, 2019
-
-
Benjamin Cumming authored
WIP on implementation of new cable cell API. * Hide implementation and state using PIMPL * Add consistent `place` methods for adding synapse, stimuls, gap junction site and spike detectors to `cable_cell`. * Add default constructor for `region` and `locset` that create empty `nil` instances.
-
- Sep 16, 2019
-
-
* Remove or implement move ctor/assign operations for ostream-derived classes. * Add explicit test for a zero row in modcc's sparse and linear solver finalize routines. * Forward declare `morphology_impl` as a struct. * Remove redundant capture in a lambda expression in fvm_layout.cpp. * Add extra parens in an assign-and-test condition in mechcat.cpp.
-
- Sep 10, 2019
-
-
Benjamin Cumming authored
* Add `minset` method for location lists that computes the minimal set by the partial order imposed by the morphology tree.
-
- Sep 09, 2019
-
-
Benjamin Cumming authored
* Add new "embedded morphology" `em_morphology`, constructed from a `morphology`, that: caches derived information such as terminal points, locations of sample points, branch lengths; provides services for canonicalizing locations and interpolation; and is used for the realisation of regions and locsets (see below). * Add simple DSL for describing locsets and regions, which are abstract descriptions of sets of locations and regions on morphologies, together with a set of operations. * Add a new class `label_dict` that associates names with regions and locsets. * Extend `cable_cell` to hold a `label_dict` argument, which is used by a new method `paint` for associating mechanisms with regions. Fixes #845.
-
- Sep 02, 2019
-
-
Nora Abi Akar authored
* Adds modcc support for COMPARTMENT statements of the form: `COMPARTMENT v {state_0, state_1, ..., state_n}`. * Use `COMPARTMENT` values `v` to multiply the derivative of state variables `state_0, state_1, ..., state_n` in associated kinetic scheme blocks. Fixes #838.
-
- Aug 29, 2019
-
-
* Change VERSION to 0.2.3-dev.
-
New version to capture fix to Arbor's installed CMake config module and optional libunwind dependance.
-
Benjamin Cumming authored
* libunwind is optional, and off by default. * fix description of CMake option
-
* Replace derivation of cylindrical cable equation formula with S–L approach. * Relate analysis of cylindrical form to Rallpack 1 in a separate section. * Add analysis of tapered cable case. * Unify discussion of cable with constant electrical properties but varying geometry. * Add section describing how one can well-estimate the inter-cell flux given point samples or CV means for the membrane voltage.
-
Benjamin Cumming authored
Refactor the example code so that all examples have a single C++ source file, and the source file, source path and executable all have the same name. Fixes #847.
-
-
- Aug 26, 2019
-
-