Giter Club home page Giter Club logo

Comments (6)

DimitriPlotnikov avatar DimitriPlotnikov commented on June 20, 2024

@heplesser

It sounds doable.

However, it is possible to check only names which are defined in the neuronmodel und not names, which are theoretically adjustable through the fact the the generated neuron extend Archiving_Node-class.

from nestml.

heplesser avatar heplesser commented on June 20, 2024

@DimitriPlotnikov But I think names inherited from Node and ArchivingNode would be rather stable over time, so one could explicitly add them during NESTML code generation, couldn't one?

Would it also be possible in NESTML to indicate legal value ranges for parameters and maybe even conditions, such as a < b required?

from nestml.

DimitriPlotnikov avatar DimitriPlotnikov commented on June 20, 2024

@heplesser

  1. Yes, it is doable, but not fancy.
  2. We are working on an extension of NESTML for a proper support of constraints and invariants (naming is a part of the discussion). E.g. adding new block with invariants and guards:
invariants:
  -90 <= V_m <= 90 # This is an invariant. It is in-forced at anytime
  gls_err_tol > 0 # this is a guard. it is checked in SetStatus-call only.
end

from nestml.

heplesser avatar heplesser commented on June 20, 2024

@DimitriPlotnikov Why is the condition on V_m an invariant, while the condition on gsl_err_tol is only a guard checked up SetStatus? Is that because V_m is a state variable, while gsl_err_tol is a parameter? Then the general logic would be that state variables have invariants, parameters have guards? But since parameters cannot change in any other way than through SetStatus, guards on parameters are also invariants.

from nestml.

DimitriPlotnikov avatar DimitriPlotnikov commented on June 20, 2024

V_m is an invariant because a) it is a state variable b) because we want to enforce V_m to be in the range during simulation c) (syntactical form) an invariant is always of lower_bound < STATE_VAR< upper_bound. I would also through an exception in SetStatus, if a value out of the range is being set.

The second one is constraint. It is an arbitrary boolean expression (just an example) E_in + E_ex <= 42.. It can only be checked. Constraints can be defined for all variables/expression, but they are checked only in SetStatus.

from nestml.

DimitriPlotnikov avatar DimitriPlotnikov commented on June 20, 2024

I summarized points regarding invariants/constraints and created a new issue: #363.

from nestml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.