{-# LANGUAGE TemplateHaskell #-}
module Myelin.Nest.Types.Synapse where
{-

This file is autogenerated to regenerate it execute

python python/nest/generate.py > Types.hs

-}

import Control.Lens
import Data.Aeson.TH

import Numeric.LinearAlgebra

type Ndarray = [Float]
type Tuple = [Float]
type Str = String

-- | Representation of the synapse types available in Nest
data Synapse =
    BernoulliSynapse {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _p_transmit :: Float,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | BernoulliSynapseLbl {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _p_transmit :: Float,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _weight :: Float
    }    
    | ContDelaySynapse {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | ContDelaySynapseHpc {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | ContDelaySynapseLbl {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _weight :: Float
    }    
    | DiffusionConnection {
        _delay :: Float,
        _diffusion_factor :: Float,
        _drift_factor :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | DiffusionConnectionLbl {
        _delay :: Float,
        _diffusion_factor :: Float,
        _drift_factor :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _weight :: Float
    }    
    | GapJunction {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | GapJunctionLbl {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _weight :: Float
    }    
    | HtSynapse {
        _delay :: Float,
        _delta_p :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _p :: Float,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_p :: Float,
        _weight :: Float
    }    
    | HtSynapseHpc {
        _delay :: Float,
        _delta_p :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _p :: Float,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_p :: Float,
        _weight :: Float
    }    
    | HtSynapseLbl {
        _delay :: Float,
        _delta_p :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _p :: Float,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_p :: Float,
        _weight :: Float
    }    
    | QuantalStpSynapse {
        _n :: Float,
        _a :: Int,
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_fac :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float
    }    
    | QuantalStpSynapseHpc {
        _n :: Float,
        _a :: Int,
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_fac :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float
    }    
    | QuantalStpSynapseLbl {
        _n :: Float,
        _a :: Int,
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_fac :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float
    }    
    | RateConnectionDelayed {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | RateConnectionDelayedLbl {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _weight :: Float
    }    
    | RateConnectionInstantaneous {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | RateConnectionInstantaneousLbl {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _weight :: Float
    }    
    | StaticSynapse {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | StaticSynapseHomW {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | StaticSynapseHomWHpc {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | StaticSynapseHomWLbl {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _weight :: Float
    }    
    | StaticSynapseHpc {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _weight :: Float
    }    
    | StaticSynapseLbl {
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _weight :: Float
    }    
    | StdpDopamineSynapse {
        _n :: Float,
        _a_minus :: Float,
        _a_plus :: Float,
        _b :: Float,
        _c :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_c :: Float,
        _tau_n :: Float,
        _tau_plus :: Float,
        _vt :: Int,
        _weight :: Float,
        _wmax :: Float,
        _wmin :: Float
    }    
    | StdpDopamineSynapseHpc {
        _n :: Float,
        _a_minus :: Float,
        _a_plus :: Float,
        _b :: Float,
        _c :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_c :: Float,
        _tau_n :: Float,
        _tau_plus :: Float,
        _vt :: Int,
        _weight :: Float,
        _wmax :: Float,
        _wmin :: Float
    }    
    | StdpDopamineSynapseLbl {
        _n :: Float,
        _a_minus :: Float,
        _a_plus :: Float,
        _b :: Float,
        _c :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_c :: Float,
        _tau_n :: Float,
        _tau_plus :: Float,
        _vt :: Int,
        _weight :: Float,
        _wmax :: Float,
        _wmin :: Float
    }    
    | StdpFacetshwSynapseHom {
        _a_acausal :: Float,
        _a_causal :: Float,
        _a_thresh_th :: Float,
        _a_thresh_tl :: Float,
        _configbit_0 :: Ndarray,
        _configbit_1 :: Ndarray,
        _delay :: Float,
        _driver_readout_time :: Float,
        _has_delay :: Bool,
        _init_flag :: Bool,
        _lookuptable_0 :: Ndarray,
        _lookuptable_1 :: Ndarray,
        _lookuptable_2 :: Ndarray,
        _next_readout_time :: Float,
        _no_synapses :: Int,
        _num_connections :: Int,
        _readout_cycle_duration :: Float,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _reset_pattern :: Ndarray,
        _synapse_id :: Int,
        _synapses_per_driver :: Int,
        _tau_minus_stdp :: Float,
        _tau_plus :: Float,
        _weight :: Float,
        _weight_per_lut_entry :: Float,
        _wmax :: Float
    }    
    | StdpFacetshwSynapseHomHpc {
        _a_acausal :: Float,
        _a_causal :: Float,
        _a_thresh_th :: Float,
        _a_thresh_tl :: Float,
        _configbit_0 :: Ndarray,
        _configbit_1 :: Ndarray,
        _delay :: Float,
        _driver_readout_time :: Float,
        _has_delay :: Bool,
        _init_flag :: Bool,
        _lookuptable_0 :: Ndarray,
        _lookuptable_1 :: Ndarray,
        _lookuptable_2 :: Ndarray,
        _next_readout_time :: Float,
        _no_synapses :: Int,
        _num_connections :: Int,
        _readout_cycle_duration :: Float,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _reset_pattern :: Ndarray,
        _synapse_id :: Int,
        _synapses_per_driver :: Int,
        _tau_minus_stdp :: Float,
        _tau_plus :: Float,
        _weight :: Float,
        _weight_per_lut_entry :: Float,
        _wmax :: Float
    }    
    | StdpFacetshwSynapseHomLbl {
        _a_acausal :: Float,
        _a_causal :: Float,
        _a_thresh_th :: Float,
        _a_thresh_tl :: Float,
        _configbit_0 :: Ndarray,
        _configbit_1 :: Ndarray,
        _delay :: Float,
        _driver_readout_time :: Float,
        _has_delay :: Bool,
        _init_flag :: Bool,
        _lookuptable_0 :: Ndarray,
        _lookuptable_1 :: Ndarray,
        _lookuptable_2 :: Ndarray,
        _next_readout_time :: Float,
        _no_synapses :: Int,
        _num_connections :: Int,
        _readout_cycle_duration :: Float,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _reset_pattern :: Ndarray,
        _synapse_id :: Int,
        _synapse_label :: Int,
        _synapses_per_driver :: Int,
        _tau_minus_stdp :: Float,
        _tau_plus :: Float,
        _weight :: Float,
        _weight_per_lut_entry :: Float,
        _wmax :: Float
    }    
    | StdpPlSynapseHom {
        _lambda :: Float,
        _mu :: Float,
        _alpha :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_plus :: Float,
        _weight :: Float
    }    
    | StdpPlSynapseHomHpc {
        _lambda :: Float,
        _mu :: Float,
        _alpha :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_plus :: Float,
        _weight :: Float
    }    
    | StdpPlSynapseHomLbl {
        _lambda :: Float,
        _mu :: Float,
        _alpha :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_plus :: Float,
        _weight :: Float
    }    
    | StdpSynapse {
        _lambda :: Float,
        _alpha :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _mu_minus :: Float,
        _mu_plus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_plus :: Float,
        _weight :: Float,
        _wmax :: Float
    }    
    | StdpSynapseHom {
        _lambda :: Float,
        _alpha :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _mu_minus :: Float,
        _mu_plus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_plus :: Float,
        _weight :: Float,
        _wmax :: Float
    }    
    | StdpSynapseHomHpc {
        _lambda :: Float,
        _alpha :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _mu_minus :: Float,
        _mu_plus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_plus :: Float,
        _weight :: Float,
        _wmax :: Float
    }    
    | StdpSynapseHomLbl {
        _lambda :: Float,
        _alpha :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _mu_minus :: Float,
        _mu_plus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_plus :: Float,
        _weight :: Float,
        _wmax :: Float
    }    
    | StdpSynapseHpc {
        _lambda :: Float,
        _alpha :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _mu_minus :: Float,
        _mu_plus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_plus :: Float,
        _weight :: Float,
        _wmax :: Float
    }    
    | StdpSynapseLbl {
        _lambda :: Float,
        _alpha :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _mu_minus :: Float,
        _mu_plus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_plus :: Float,
        _weight :: Float,
        _wmax :: Float
    }    
    | StdpTripletSynapse {
        _aminus :: Float,
        _aminus_triplet :: Float,
        _aplus :: Float,
        _aplus_triplet :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _kplus_triplet :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_plus :: Float,
        _tau_plus_triplet :: Float,
        _weight :: Float,
        _wmax :: Float
    }    
    | StdpTripletSynapseHpc {
        _aminus :: Float,
        _aminus_triplet :: Float,
        _aplus :: Float,
        _aplus_triplet :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _kplus_triplet :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_plus :: Float,
        _tau_plus_triplet :: Float,
        _weight :: Float,
        _wmax :: Float
    }    
    | StdpTripletSynapseLbl {
        _aminus :: Float,
        _aminus_triplet :: Float,
        _aplus :: Float,
        _aplus_triplet :: Float,
        _delay :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _kplus_triplet :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_plus :: Float,
        _tau_plus_triplet :: Float,
        _weight :: Float,
        _wmax :: Float
    }    
    | Tsodyks2Synapse {
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_fac :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float,
        _x :: Float
    }    
    | Tsodyks2SynapseHpc {
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_fac :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float,
        _x :: Float
    }    
    | Tsodyks2SynapseLbl {
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_fac :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float,
        _x :: Float
    }    
    | TsodyksSynapse {
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_fac :: Float,
        _tau_psc :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float,
        _x :: Float,
        _y :: Float
    }    
    | TsodyksSynapseHom {
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_fac :: Float,
        _tau_psc :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float,
        _x :: Float,
        _y :: Float
    }    
    | TsodyksSynapseHomHpc {
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_fac :: Float,
        _tau_psc :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float,
        _x :: Float,
        _y :: Float
    }    
    | TsodyksSynapseHomLbl {
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_fac :: Float,
        _tau_psc :: Float,
        _tau_rec :: Float,
        -- _u :: Float,
        _weight :: Float,
        _x :: Float,
        _y :: Float
    }    
    | TsodyksSynapseHpc {
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau_fac :: Float,
        _tau_psc :: Float,
        _tau_rec :: Float,
        -- _U :: Float,
        _weight :: Float,
        _x :: Float,
        _y :: Float
    }    
    | TsodyksSynapseLbl {
        _delay :: Float,
        _u :: Float,
        _has_delay :: Bool,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau_fac :: Float,
        _tau_psc :: Float,
        _tau_rec :: Float,
        -- _ :: Float,
        _weight :: Float,
        _x :: Float,
        _y :: Float
    }    
    | VogelsSprekelerSynapse {
        _alpha :: Float,
        _delay :: Float,
        _eta :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau :: Float,
        _weight :: Float,
        _wmax :: Float
    }
    | VogelsSprekelerSynapseHpc {
        _alpha :: Float,
        _delay :: Float,
        _eta :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _tau :: Float,
        _weight :: Float,
        _wmax :: Float
    }
    | VogelsSprekelerSynapseLbl {
        _alpha :: Float,
        _delay :: Float,
        _eta :: Float,
        _has_delay :: Bool,
        _kplus :: Float,
        _num_connections :: Int,
        _receptor_type :: Int,
        _requires_symmetric :: Bool,
        _synapse_label :: Int,
        _tau :: Float,
        _weight :: Float,
        _wmax :: Float
    } deriving (Show, Read, Eq, Ord)

deriveJSON defaultOptions ''Synapse
makeLenses ''Synapse
makePrisms ''Synapse

bernoulli_synapse = BernoulliSynapse {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _p_transmit = 1.0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 1.0
}
bernoulli_synapse_lbl = BernoulliSynapseLbl {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _p_transmit = 1.0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _weight = 1.0
}
cont_delay_synapse = ContDelaySynapse {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 1.0
}
cont_delay_synapse_hpc = ContDelaySynapseHpc {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 1.0
}
cont_delay_synapse_lbl = ContDelaySynapseLbl {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _weight = 1.0
}
diffusion_connection = DiffusionConnection {
    _delay = 1.0,
    _diffusion_factor = 1.0,
    _drift_factor = 1.0,
    _has_delay = False,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 0.0
}
diffusion_connection_lbl = DiffusionConnectionLbl {
    _delay = 1.0,
    _diffusion_factor = 1.0,
    _drift_factor = 1.0,
    _has_delay = False,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _weight = 0.0
}
gap_junction = GapJunction {
    _delay = 1.0,
    _has_delay = False,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = True,
    _weight = 1.0
}
gap_junction_lbl = GapJunctionLbl {
    _delay = 1.0,
    _has_delay = False,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = True,
    _synapse_label = -1,
    _weight = 1.0
}
ht_synapse = HtSynapse {
    _delay = 1.0,
    _delta_p = 0.125,
    _has_delay = True,
    _num_connections = 0,
    _p = 1.0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_p = 500.0,
    _weight = 1.0
}
ht_synapse_hpc = HtSynapseHpc {
    _delay = 1.0,
    _delta_p = 0.125,
    _has_delay = True,
    _num_connections = 0,
    _p = 1.0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_p = 500.0,
    _weight = 1.0
}
ht_synapse_lbl = HtSynapseLbl {
    _delay = 1.0,
    _delta_p = 0.125,
    _has_delay = True,
    _num_connections = 0,
    _p = 1.0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_p = 500.0,
    _weight = 1.0
}
quantal_stp_synapse = QuantalStpSynapse {
    _n = 1,
    _a = 1,
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_fac = 10.0,
    _tau_rec = 800.0,
    _weight = 1.0
}
quantal_stp_synapse_hpc = QuantalStpSynapseHpc {
    _n = 1,
    _a = 1,
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_fac = 10.0,
    _tau_rec = 800.0,
    _weight = 1.0
}
quantal_stp_synapse_lbl = QuantalStpSynapseLbl {
    _n = 1,
    _a = 1,
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_fac = 10.0,
    _tau_rec = 800.0,
    _weight = 1.0
}
rate_connection_delayed = RateConnectionDelayed {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 1.0
}
rate_connection_delayed_lbl = RateConnectionDelayedLbl {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _weight = 1.0
}
rate_connection_instantaneous = RateConnectionInstantaneous {
    _delay = 1.0,
    _has_delay = False,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 1.0
}
rate_connection_instantaneous_lbl = RateConnectionInstantaneousLbl {
    _delay = 1.0,
    _has_delay = False,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _weight = 1.0
}
static_synapse = StaticSynapse {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 1.0
}
static_synapse_hom_w = StaticSynapseHomW {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 1.0
}
static_synapse_hom_w_hpc = StaticSynapseHomWHpc {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 1.0
}
static_synapse_hom_w_lbl = StaticSynapseHomWLbl {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _weight = 1.0
}
static_synapse_hpc = StaticSynapseHpc {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _weight = 1.0
}
static_synapse_lbl = StaticSynapseLbl {
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _weight = 1.0
}
stdp_dopamine_synapse = StdpDopamineSynapse {
    _n = 0.0,
    _a_minus = 1.5,
    _a_plus = 1.0,
    _b = 0.0,
    _c = 0.0,
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_c = 1000.0,
    _tau_n = 200.0,
    _tau_plus = 20.0,
    _vt = -1,
    _weight = 1.0,
    _wmax = 200.0,
    _wmin = 0.0
}
stdp_dopamine_synapse_hpc = StdpDopamineSynapseHpc {
    _n = 0.0,
    _a_minus = 1.5,
    _a_plus = 1.0,
    _b = 0.0,
    _c = 0.0,
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_c = 1000.0,
    _tau_n = 200.0,
    _tau_plus = 20.0,
    _vt = -1,
    _weight = 1.0,
    _wmax = 200.0,
    _wmin = 0.0
}
stdp_dopamine_synapse_lbl = StdpDopamineSynapseLbl {
    _n = 0.0,
    _a_minus = 1.5,
    _a_plus = 1.0,
    _b = 0.0,
    _c = 0.0,
    _delay = 1.0,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_c = 1000.0,
    _tau_n = 200.0,
    _tau_plus = 20.0,
    _vt = -1,
    _weight = 1.0,
    _wmax = 200.0,
    _wmin = 0.0
}
stdp_facetshw_synapse_hom = StdpFacetshwSynapseHom {
    _a_acausal = 0.0,
    _a_causal = 0.0,
    _a_thresh_th = 21.835,
    _a_thresh_tl = 21.835,
    _configbit_0 = [0, 0, 1, 0],
    _configbit_1 = [0, 1, 0, 0],
    _delay = 1.0,
    _driver_readout_time = 15.0,
    _has_delay = True,
    _init_flag = False,
    _lookuptable_0 = [2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15],
    _lookuptable_1 = [0, 0, 1, 2, 3, 4, 5, 6, 7,  8,  9, 10, 10, 11, 12, 13],
    _lookuptable_2 = [0, 1, 2, 3, 4, 5, 6, 7, 8,  9, 10, 11, 12, 13, 14, 15],
    _next_readout_time = 0.0,
    _no_synapses = 0,
    _num_connections = 0,
    _readout_cycle_duration = 0.0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _reset_pattern = [1, 1, 1, 1, 1, 1],
    _synapse_id = 0,
    _synapses_per_driver = 50,
    _tau_minus_stdp = 20.0,
    _tau_plus = 20.0,
    _weight = 1.0,
    _weight_per_lut_entry = 6.666666666666667,
    _wmax = 100.0
}
stdp_facetshw_synapse_hom_hpc = StdpFacetshwSynapseHomHpc {
    _a_acausal = 0.0,
    _a_causal = 0.0,
    _a_thresh_th = 21.835,
    _a_thresh_tl = 21.835,
    _configbit_0 = [0, 0, 1, 0],
    _configbit_1 = [0, 1, 0, 0],
    _delay = 1.0,
    _driver_readout_time = 15.0,
    _has_delay = True,
    _init_flag = False,
    _lookuptable_0 = [2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15],
    _lookuptable_1 = [0, 0, 1, 2, 3, 4, 5, 6, 7,  8,  9, 10, 10, 11, 12, 13],
    _lookuptable_2 = [0, 1, 2, 3, 4, 5, 6, 7, 8,  9, 10, 11, 12, 13, 14, 15],
    _next_readout_time = 0.0,
    _no_synapses = 0,
    _num_connections = 0,
    _readout_cycle_duration = 0.0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _reset_pattern = [1, 1, 1, 1, 1, 1],
    _synapse_id = 0,
    _synapses_per_driver = 50,
    _tau_minus_stdp = 20.0,
    _tau_plus = 20.0,
    _weight = 1.0,
    _weight_per_lut_entry = 6.666666666666667,
    _wmax = 100.0
}
stdp_facetshw_synapse_hom_lbl = StdpFacetshwSynapseHomLbl {
    _a_acausal = 0.0,
    _a_causal = 0.0,
    _a_thresh_th = 21.835,
    _a_thresh_tl = 21.835,
    _configbit_0 = [0, 0, 1, 0],
    _configbit_1 = [0, 1, 0, 0],
    _delay = 1.0,
    _driver_readout_time = 15.0,
    _has_delay = True,
    _init_flag = False,
    _lookuptable_0 = [ 2,  3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15],
    _lookuptable_1 = [ 0,  0, 1, 2, 3, 4, 5, 6, 7,  8,  9, 10, 10, 11, 12, 13],
    _lookuptable_2 = [ 0,  1, 2, 3, 4, 5, 6, 7, 8,  9, 10, 11, 12, 13, 14, 15],
    _next_readout_time = 0.0,
    _no_synapses = 0,
    _num_connections = 0,
    _readout_cycle_duration = 0.0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _reset_pattern = [1, 1, 1, 1, 1, 1],
    _synapse_id = 0,
    _synapse_label = -1,
    _synapses_per_driver = 50,
    _tau_minus_stdp = 20.0,
    _tau_plus = 20.0,
    _weight = 1.0,
    _weight_per_lut_entry = 6.666666666666667,
    _wmax = 100.0
}
stdp_pl_synapse_hom = StdpPlSynapseHom {
    _lambda = 0.1,
    _mu = 0.4,
    _alpha = 1.0,
    _delay = 1.0,
    _has_delay = True,
    _kplus = 0.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_plus = 20.0,
    _weight = 1.0
}
stdp_pl_synapse_hom_hpc = StdpPlSynapseHomHpc {
    _lambda = 0.1,
    _mu = 0.4,
    _alpha = 1.0,
    _delay = 1.0,
    _has_delay = True,
    _kplus = 0.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_plus = 20.0,
    _weight = 1.0
}
stdp_pl_synapse_hom_lbl = StdpPlSynapseHomLbl {
    _lambda = 0.1,
    _mu = 0.4,
    _alpha = 1.0,
    _delay = 1.0,
    _has_delay = True,
    _kplus = 0.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_plus = 20.0,
    _weight = 1.0
}
stdp_synapse = StdpSynapse {
    _lambda = 0.01,
    _alpha = 1.0,
    _delay = 1.0,
    _has_delay = True,
    _mu_minus = 1.0,
    _mu_plus = 1.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_plus = 20.0,
    _weight = 1.0,
    _wmax = 100.0
}
stdp_synapse_hom = StdpSynapseHom {
    _lambda = 0.01,
    _alpha = 1.0,
    _delay = 1.0,
    _has_delay = True,
    _kplus = 0.0,
    _mu_minus = 1.0,
    _mu_plus = 1.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_plus = 20.0,
    _weight = 1.0,
    _wmax = 100.0
}
stdp_synapse_hom_hpc = StdpSynapseHomHpc {
    _lambda = 0.01,
    _alpha = 1.0,
    _delay = 1.0,
    _has_delay = True,
    _kplus = 0.0,
    _mu_minus = 1.0,
    _mu_plus = 1.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_plus = 20.0,
    _weight = 1.0,
    _wmax = 100.0
}
stdp_synapse_hom_lbl = StdpSynapseHomLbl {
    _lambda = 0.01,
    _alpha = 1.0,
    _delay = 1.0,
    _has_delay = True,
    _kplus = 0.0,
    _mu_minus = 1.0,
    _mu_plus = 1.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_plus = 20.0,
    _weight = 1.0,
    _wmax = 100.0
}
stdp_synapse_hpc = StdpSynapseHpc {
    _lambda = 0.01,
    _alpha = 1.0,
    _delay = 1.0,
    _has_delay = True,
    _mu_minus = 1.0,
    _mu_plus = 1.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_plus = 20.0,
    _weight = 1.0,
    _wmax = 100.0
}
stdp_synapse_lbl = StdpSynapseLbl {
    _lambda = 0.01,
    _alpha = 1.0,
    _delay = 1.0,
    _has_delay = True,
    _mu_minus = 1.0,
    _mu_plus = 1.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_plus = 20.0,
    _weight = 1.0,
    _wmax = 100.0
}
stdp_triplet_synapse = StdpTripletSynapse {
    _aminus = 0.007,
    _aminus_triplet = 0.00023,
    _aplus = 5e-10,
    _aplus_triplet = 0.0062,
    _delay = 1.0,
    _has_delay = True,
    _kplus = 0.0,
    _kplus_triplet = 0.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_plus = 16.8,
    _tau_plus_triplet = 101.0,
    _weight = 1.0,
    _wmax = 100.0
}
stdp_triplet_synapse_hpc = StdpTripletSynapseHpc {
    _aminus = 0.007,
    _aminus_triplet = 0.00023,
    _aplus = 5e-10,
    _aplus_triplet = 0.0062,
    _delay = 1.0,
    _has_delay = True,
    _kplus = 0.0,
    _kplus_triplet = 0.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_plus = 16.8,
    _tau_plus_triplet = 101.0,
    _weight = 1.0,
    _wmax = 100.0
}
stdp_triplet_synapse_lbl = StdpTripletSynapseLbl {
    _aminus = 0.007,
    _aminus_triplet = 0.00023,
    _aplus = 5e-10,
    _aplus_triplet = 0.0062,
    _delay = 1.0,
    _has_delay = True,
    _kplus = 0.0,
    _kplus_triplet = 0.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_plus = 16.8,
    _tau_plus_triplet = 101.0,
    _weight = 1.0,
    _wmax = 100.0
}
tsodyks2_synapse = Tsodyks2Synapse {
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_fac = 0.0,
    _tau_rec = 800.0,
    _weight = 1.0,
    _x = 1.0
}
tsodyks2_synapse_hpc = Tsodyks2SynapseHpc {
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_fac = 0.0,
    _tau_rec = 800.0,
    _weight = 1.0,
    _x = 1.0
}
tsodyks2_synapse_lbl = Tsodyks2SynapseLbl {
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_fac = 0.0,
    _tau_rec = 800.0,
    _weight = 1.0,
    _x = 1.0
}
tsodyks_synapse = TsodyksSynapse {
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_fac = 0.0,
    _tau_psc = 3.0,
    _tau_rec = 800.0,
    _weight = 1.0,
    _x = 1.0,
    _y = 0.0
}
tsodyks_synapse_hom = TsodyksSynapseHom {
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_fac = 0.0,
    _tau_psc = 3.0,
    _tau_rec = 800.0,
    _weight = 1.0,
    _x = 1.0,
    _y = 0.0
}
tsodyks_synapse_hom_hpc = TsodyksSynapseHomHpc {
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_fac = 0.0,
    _tau_psc = 3.0,
    _tau_rec = 800.0,
    _weight = 1.0,
    _x = 1.0,
    _y = 0.0
}
tsodyks_synapse_hom_lbl = TsodyksSynapseHomLbl {
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_fac = 0.0,
    _tau_psc = 3.0,
    _tau_rec = 800.0,
    _weight = 1.0,
    _x = 1.0,
    _y = 0.0
}
tsodyks_synapse_hpc = TsodyksSynapseHpc {
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau_fac = 0.0,
    _tau_psc = 3.0,
    _tau_rec = 800.0,
    _weight = 1.0,
    _x = 1.0,
    _y = 0.0
}
tsodyks_synapse_lbl = TsodyksSynapseLbl {
    _delay = 1.0,
    _u = 0.5,
    _has_delay = True,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau_fac = 0.0,
    _tau_psc = 3.0,
    _tau_rec = 800.0,
    _weight = 1.0,
    _x = 1.0,
    _y = 0.0
}
vogels_sprekeler_synapse = VogelsSprekelerSynapse {
    _alpha = 0.12,
    _delay = 1.0,
    _eta = 0.001,
    _has_delay = True,
    _kplus = 0.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau = 20.0,
    _weight = 0.5,
    _wmax = 1.0
}
vogels_sprekeler_synapse_hpc = VogelsSprekelerSynapseHpc {
    _alpha = 0.12,
    _delay = 1.0,
    _eta = 0.001,
    _has_delay = True,
    _kplus = 0.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _tau = 20.0,
    _weight = 0.5,
    _wmax = 1.0
}
vogels_sprekeler_synapse_lbl = VogelsSprekelerSynapseLbl {
    _alpha = 0.12,
    _delay = 1.0,
    _eta = 0.001,
    _has_delay = True,
    _kplus = 0.0,
    _num_connections = 0,
    _receptor_type = 0,
    _requires_symmetric = False,
    _synapse_label = -1,
    _tau = 20.0,
    _weight = 0.5,
    _wmax = 1.0
}