We could provide a data structure to store a full neural network, along with associated metadata, which could be accepted by our simulation functions directly. This would make it easier to provide convenience functions to the user, such as the ability to "merge" two or more networks based on a set of named neurons/synapses, or the opportunity to provide metadata that external tools/packages can read, such as a GUI automatically labeling neurons/synapses.
We'll want to do what LightGraphs does and separate the actual model from metadata, so that simulations can be fast to execute without excess memory allocations (such as when run distributed or on GPUs). We should also provide type-stable and type-unstable structures, which would allow a choice between compilation delay and execution performance.
We could provide a data structure to store a full neural network, along with associated metadata, which could be accepted by our simulation functions directly. This would make it easier to provide convenience functions to the user, such as the ability to "merge" two or more networks based on a set of named neurons/synapses, or the opportunity to provide metadata that external tools/packages can read, such as a GUI automatically labeling neurons/synapses.
We'll want to do what LightGraphs does and separate the actual model from metadata, so that simulations can be fast to execute without excess memory allocations (such as when run distributed or on GPUs). We should also provide type-stable and type-unstable structures, which would allow a choice between compilation delay and execution performance.