Changeset 29944 in project


Ignore:
Timestamp:
10/23/13 03:43:48 (8 years ago)
Author:
Ivan Raikov
Message:

9ML-toolkit: separating the network code generation templates into those supporting electrical synapses and those that do not

Location:
release/4/9ML-toolkit/trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • release/4/9ML-toolkit/trunk/9ML-toolkit.meta

    r29609 r29944  
    2828 (needs make matchable datatype static-modules (miniML 1.4) (getopt-long  1.8)
    2929        uri-generic ssax sxml-transforms sxpath object-graph format-graph
    30         silex (lalr 2.4.2) setup-helper mathh (signal-diagram 2.1) ersatz random-mtzig)
     30        silex (lalr 2.4.2) setup-helper mathh (signal-diagram 2.1) ersatz
     31        random-mtzig)
    3132
    3233 (author "Ivan Raikov")
  • release/4/9ML-toolkit/trunk/templates/Network.sml.tmpl

    r29929 r29944  
    197197        end
    198198                         
    199 
    200     fun felec E I
    201               ({% for pop in dict (group.populations) %}
    202               {{pop.name}}_state_vector{% if not loop.last %},{% endif %}
    203               {% endfor %} ) =
    204         case E of NONE => I
    205                 | SOME E =>
    206                   let
    207                     val update = Unsafe.Real64Array.update
    208                     val I' = case I of SOME I => I
    209                                      | NONE => RTensor.new ([N,1],0.0)
    210                   {% for pr in dict (group.projections) %}
    211                   {% if pr.value.type == "cvar" %}
    212                   {% for spop in pr.value.source %}
    213                   {% for tpop in pr.value.target %}
    214                     fun {{spop.name}}_sub i = #({{first (spop.value.prototype.states)}})(Vector.sub ({{spop.name}}_state_vector, i))
    215                     fun {{tpop.name}}_sub i = #({{first (tpop.value.prototype.states)}})(Vector.sub ({{tpop.name}}_state_vector, i))
    216                     val _ = Loop.app
    217                                 (0, N_{{spop.name}},
    218                                  fn (i) =>
    219                                     let
    220                                         val Vi = {{spop.name}}_sub i
    221                                         val sl = SparseMatrix.slice (#{{spop.name}}(E),1,i)
    222                                     in
    223                                         SparseMatrix.sliceAppi
    224                                             (fn (j,g) => let val Vj = {{tpop.name}}_sub j
    225                                                          in update (I,i,Real.- (sub(I,i), Real.* (g,Real.- (Vi,Vj)))) end)
    226                                             sl
    227                                     end)
    228                                
    229                   {% endfor %}
    230                   {% endfor %}
    231                   {% endif %}
    232                   {% endfor %}
    233                   in
    234                   end
    235199                         
    236200    fun ftime (
     
    408372{% endif %}
    409373
    410              val Elst =
    411                       [
    412                            {% for pr in dict (group.projections) %}
    413                                {% if pr.value.type == "cvar" %}
    414                                Pr_{{pr.name}}{% if not loop.last %},{% endif %}
    415                                {% endif %}
    416                            {% endfor %}
    417                      ]
    418 
    419              val E = if List.null Elst then NONE else SOME Elst
    420 
    421374             in
    422375              ([
  • release/4/9ML-toolkit/trunk/templates/Sim.sml.tmpl

    r29929 r29944  
    6868            val (I',psr_state_vector_i)  = fresponse I psr_state_vector
    6969           
    70             val I'' = felec E I' state_vector
    71            
    72             val state_vector_i = frun I'' state_vector
     70            val state_vector_i = frun I' state_vector
    7371
    7472            val t_i = ftime state_vector_i
     
    7876            val _   = finfo (state_vector_i, out)
    7977                             
    80             val I'''  = if (List.null spike_i)
     78            val I''  = if (List.null spike_i)
    8179                        then NONE
    8280                        else SOME
     
    108106            if t_i  > tmax
    109107            then (putStrLn out "# All done!"; state_vector_i)
    110             else netrun (D@[I'''],state_vector_i,psr_state_vector_i)
     108            else netrun (D@[I''],state_vector_i,psr_state_vector_i)
    111109        end
    112110      | netrun ([],state_vector,psr_state_vector) = raise Index
Note: See TracChangeset for help on using the changeset viewer.