GeNN  3.3.0
GPU enhanced Neuronal Networks (GeNN)
synapseMatrixType.h
Go to the documentation of this file.
1 #pragma once
2 
3 //----------------------------------------------------------------------------
4 // Enumerations
5 //----------------------------------------------------------------------------
7 enum class SynapseMatrixConnectivity : unsigned int
8 {
9  SPARSE = (1 << 0),
10  DENSE = (1 << 1),
11  BITMASK = (1 << 2),
12  RAGGED = (1 << 3),
13  YALE = (1 << 4),
14 };
15 
17 enum class SynapseMatrixWeight : unsigned int
18 {
19  GLOBAL = (1 << 5),
20  INDIVIDUAL = (1 << 6),
21  INDIVIDUAL_PSM = (1 << 7),
22 };
23 
25 enum class SynapseMatrixType : unsigned int
26 {
27  SPARSE_GLOBALG = static_cast<unsigned int>(SynapseMatrixConnectivity::SPARSE) | static_cast<unsigned int>(SynapseMatrixConnectivity::YALE) | static_cast<unsigned int>(SynapseMatrixWeight::GLOBAL),
28  SPARSE_GLOBALG_INDIVIDUAL_PSM = static_cast<unsigned int>(SynapseMatrixConnectivity::SPARSE) | static_cast<unsigned int>(SynapseMatrixConnectivity::YALE) | static_cast<unsigned int>(SynapseMatrixWeight::GLOBAL) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL_PSM),
29  SPARSE_INDIVIDUALG = static_cast<unsigned int>(SynapseMatrixConnectivity::SPARSE) | static_cast<unsigned int>(SynapseMatrixConnectivity::YALE) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL_PSM),
30  DENSE_GLOBALG = static_cast<unsigned int>(SynapseMatrixConnectivity::DENSE) | static_cast<unsigned int>(SynapseMatrixWeight::GLOBAL),
31  DENSE_GLOBALG_INDIVIDUAL_PSM = static_cast<unsigned int>(SynapseMatrixConnectivity::DENSE) | static_cast<unsigned int>(SynapseMatrixWeight::GLOBAL) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL_PSM),
32  DENSE_INDIVIDUALG = static_cast<unsigned int>(SynapseMatrixConnectivity::DENSE) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL_PSM),
33  BITMASK_GLOBALG = static_cast<unsigned int>(SynapseMatrixConnectivity::BITMASK) | static_cast<unsigned int>(SynapseMatrixWeight::GLOBAL),
34  BITMASK_GLOBALG_INDIVIDUAL_PSM = static_cast<unsigned int>(SynapseMatrixConnectivity::BITMASK) | static_cast<unsigned int>(SynapseMatrixWeight::GLOBAL) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL_PSM),
35  RAGGED_GLOBALG = static_cast<unsigned int>(SynapseMatrixConnectivity::SPARSE) | static_cast<unsigned int>(SynapseMatrixConnectivity::RAGGED) | static_cast<unsigned int>(SynapseMatrixWeight::GLOBAL),
36  RAGGED_GLOBALG_INDIVIDUAL_PSM = static_cast<unsigned int>(SynapseMatrixConnectivity::SPARSE) | static_cast<unsigned int>(SynapseMatrixConnectivity::RAGGED) | static_cast<unsigned int>(SynapseMatrixWeight::GLOBAL) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL_PSM),
37  RAGGED_INDIVIDUALG = static_cast<unsigned int>(SynapseMatrixConnectivity::SPARSE) | static_cast<unsigned int>(SynapseMatrixConnectivity::RAGGED) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL) | static_cast<unsigned int>(SynapseMatrixWeight::INDIVIDUAL_PSM),
38 };
39 
40 //----------------------------------------------------------------------------
41 // Operators
42 //----------------------------------------------------------------------------
44 {
45  return (static_cast<unsigned int>(type) & static_cast<unsigned int>(connType)) != 0;
46 }
47 
49 {
50  return (static_cast<unsigned int>(type) & static_cast<unsigned int>(weightType)) != 0;
51 }
SynapseMatrixConnectivity
< Flags defining differnet types of synaptic matrix connectivity
Definition: synapseMatrixType.h:7
type
Definition: generate_swig_interfaces.py:680
bool operator&(SynapseMatrixType type, SynapseMatrixConnectivity connType)
Definition: synapseMatrixType.h:43
SynapseMatrixType
Definition: synapseMatrixType.h:25
SynapseMatrixWeight
Definition: synapseMatrixType.h:17