@@ -40,7 +40,8 @@ class STDP_Song2000(Projection):
4040 where :math:`t_{sp}` denotes the spike time and :math:`A_1` is the increment
4141 of :math:`A_{pre}`, :math:`A_2` is the increment of :math:`A_{post}` produced by a spike.
4242
43- Example::
43+ Here is an example of the usage of this class::
44+
4445 import brainpy as bp
4546 import brainpy.math as bm
4647
@@ -138,10 +139,7 @@ def __init__(
138139 if not post .has_bef_update (self ._post_repr ):
139140 syn_cls = syn ()
140141 out_cls = out ()
141- if out_label is None :
142- out_name = self .name
143- else :
144- out_name = f'{ out_label } // { self .name } '
142+ out_name = self .name if out_label is None else f'{ out_label } // { self .name } '
145143 post .add_inp_fun (out_name , out_cls )
146144 post .add_bef_update (self ._post_repr , _AlignPost (syn_cls , out_cls ))
147145 # references
@@ -154,35 +152,29 @@ def __init__(
154152 # synapse initialization
155153 self ._syn_id = f'Delay({ str (delay )} ) // { syn .identifier } '
156154 if not delay_cls .has_bef_update (self ._syn_id ):
157- # delay
158155 delay_access = DelayAccess (delay_cls , delay )
159- # synapse
160156 syn_cls = syn ()
161- # add to "after_updates"
162157 delay_cls .add_bef_update (self ._syn_id , _AlignPreMg (delay_access , syn_cls ))
163-
164158 # output initialization
165- if out_label is None :
166- out_name = self .name
167- else :
168- out_name = f'{ out_label } // { self .name } '
159+ out_name = self .name if out_label is None else f'{ out_label } // { self .name } '
169160 post .add_inp_fun (out_name , out )
170-
171161 # references
172162 self .refs = dict (pre = pre , post = post ) # invisible to `self.nodes()`
173163 self .refs ['delay' ] = delay_cls .get_bef_update (self ._syn_id )
174164 self .refs ['syn' ] = delay_cls .get_bef_update (self ._syn_id ).syn
175165 self .refs ['out' ] = out
176166
177- self .refs ['pre_trace' ] = self .calculate_trace (pre , delay , Expon .desc (pre .num , tau = tau_s ))
178- self .refs ['post_trace' ] = self .calculate_trace (post , None , Expon .desc (post .num , tau = tau_t ))
179- # parameters
167+ # trace initialization
168+ self .refs ['pre_trace' ] = self ._init_trace (pre , delay , Expon .desc (pre .num , tau = tau_s ))
169+ self .refs ['post_trace' ] = self ._init_trace (post , None , Expon .desc (post .num , tau = tau_t ))
170+
171+ # synapse parameters
180172 self .tau_s = parameter (tau_s , sizes = self .pre_num )
181173 self .tau_t = parameter (tau_t , sizes = self .post_num )
182174 self .A1 = parameter (A1 , sizes = self .pre_num )
183175 self .A2 = parameter (A2 , sizes = self .post_num )
184176
185- def calculate_trace (
177+ def _init_trace (
186178 self ,
187179 target : DynamicalSystem ,
188180 delay : Union [None , int , float ],
@@ -234,5 +226,5 @@ def update(self):
234226 if issubclass (self .syn .cls , AlignPost ):
235227 self .refs ['syn' ].add_current (current ) # synapse post current
236228 else :
237- self .refs ['out' ].bind_cond (current )
229+ self .refs ['out' ].bind_cond (current ) # align pre
238230 return current
0 commit comments