Changeset 31009 in project


Ignore:
Timestamp:
06/14/14 13:56:19 (6 years ago)
Author:
Ivan Raikov
Message:

9ML-toolkit: fixes to parsing transitions

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

Legend:

Unmodified
Added
Removed
  • release/4/9ML-toolkit/trunk/examples/LIF_AL.xml

    r30913 r31009  
    2727         
    2828          <TimeDerivative variable="V">
    29             <MathInline> ( - V) / tau </MathInline>
     29            <MathInline> ( - V + (R * Isyn)) / tau </MathInline>
    3030          </TimeDerivative>
    31 
    32           <StateAssignment variable="V" >
    33             <MathInline> V + (R * Isyn) </MathInline>
    34           </StateAssignment>
    3531
    3632          <OnCondition>
     
    4440            </StateAssignment>
    4541           
     42            <StateAssignment variable="V" >
     43              <MathInline> Vreset </MathInline>
     44            </StateAssignment>
     45           
    4646            <EventOut port="spikeOutput" />
    4747           
     
    5252        <Regime name="refractoryRegime">
    5353           
    54           <StateAssignment variable="V" >
    55             <MathInline> Vreset </MathInline>
    56           </StateAssignment>
    57 
    58           <StateAssignment variable="t" >
    59             <MathInline> t + h </MathInline>
    60           </StateAssignment>
     54          <TimeDerivative variable="V" >
     55            <MathInline> 0.0 </MathInline>
     56          </TimeDerivative>
    6157
    6258          <OnCondition>
  • release/4/9ML-toolkit/trunk/examples/LIF_UL.xml

    r30927 r31009  
    1414
    1515          <Property>
    16             <label>C</label>
    17             <value>1.0</value>
    18           </Property>
    19 
    20           <Property>
    2116            <label>R</label>
    2217            <value>1.0</value>
     
    3025          <Property>
    3126            <label>theta</label>
    32             <value>-25.0</value>
     27            <value>20.0</value>
    3328          </Property>
    3429
    3530          <Property>
    3631            <label>Vreset</label>
    37             <value>-65.0</value>
     32            <value>0.0</value>
    3833          </Property>
    3934
     
    4540          <Initial>
    4641            <label>V</label>
    47             <value>-70.0</value>
    48           </Initial>
    49 
    50           <Initial>
    51             <label>spikeOutput</label>
    52             <value>false</value>
    53           </Initial>
    54 
    55           <Initial>
    56             <label>refractoryEnd</label>
    57             <value>false</value>
     42            <value>0.0</value>
    5843          </Initial>
    5944
    6045          <Initial>
    6146            <label>Isyn</label>
    62             <value>1.0</value>
     47            <value>25.0</value>
    6348          </Initial>
    6449
     
    7661
    7762        <ivp name="TestLeakyIAF">
    78           <timestep>0.001</timestep>
    79           <duration>100.0</duration>
     63          <timestep>0.1</timestep>
     64          <duration>1000.0</duration>
    8065        </ivp>
    8166
  • release/4/9ML-toolkit/trunk/parse.scm

    r30998 r31009  
    3333        (require-library srfi-1 srfi-13 data-structures extras)
    3434        (import
    35          (only srfi-1 concatenate fold combine any every unzip2 filter-map partition delete-duplicates cons*)
     35         (only srfi-1 concatenate fold combine any every unzip2 filter-map partition delete-duplicates cons* lset-difference)
    3636         (only srfi-13 string-null?)
    3737         (only data-structures conc ->string alist-ref)
     
    444444
    445445
     446(define (make-on-assignments assignments trigger-name)
     447  (Apply
     448   (Apply diagram-on assignments)
     449   (Apply
     450    (Apply signal-realsig (Const `(label ,trigger-name)))
     451    (Apply signal-realconst (Const `(real -1.0))))))
     452
    446453
    447454(define (make-rtransition state-name relations aliases
     
    458465           (('< x y)  `(- ,y ,x))
    459466           (else rhs)))
     467
    460468
    461469  (let (
     
    514522        )
    515523
    516     (Apply
    517 
    518     (Apply
    519 
    520      (Apply
     524
     525    (let* (
     526           (trsys1
     527            (Apply
     528             
     529             (Apply
     530             
     531              (Apply
     532               
     533               (Apply
     534               
     535                (Apply
     536                 
     537                 (Apply
     538                 
     539                  (Apply diagram-rtransition
     540                         
     541                         (let* ((sys1 (if assignments1
     542                                          (Apply
     543                                           (Apply diagram-sequence odes1)
     544                                           assignments1)
     545                                          odes1))
     546                                (sys2 (if e1 (make-event e1 sys1 aliases) sys1)))
     547
     548                  (print "e1 = " e1)
     549                  (print "c-assignments1 = " c-assignments1)
     550
     551                  sys2))
    521552     
    522       (Apply
    523        
    524        (Apply
    525        
    526         (Apply
    527      
    528          (Apply diagram-rtransition
     553                  (let* ((sys1 (if (null? ode-variables2)
     554                                   
     555                                   (if (null? relations)
     556                                       assignments2
     557                                       (make-relations relations assignments2))
     558                                   
     559                                   (if assignments2
     560                                       (Apply
     561                                        (Apply diagram-sequence odes2)
     562                                        assignments2)
     563                                       odes2)))
     564                         
     565                         (sys2 (if e2 (make-event e2 sys1 aliases) sys1)))
     566
     567                    sys2))
     568                 
     569                 (Apply
     570                  (Apply signal-realsig (Const `(label ,trigger-name1)))
     571                  (Apply signal-realconst (Const `(real -1.0)))))
     572               
     573                (Apply
     574                 (Apply diagram-assign (make-list (list (Const `(label ,trigger-name1)))))
     575                 (make-pure (make-signal-expr (rewrite-trigger trigger-rhs1) subst: aliases))) )
     576               
     577               (Apply
     578                (Apply signal-realsig (Const `(label ,trigger-name2)))
     579                (Apply signal-realconst (Const `(real -1.0)))) )
     580
     581              (Apply
     582               (Apply diagram-assign (make-list (list (Const `(label ,trigger-name2)))))
     583               (make-pure (make-signal-expr (rewrite-trigger trigger-rhs2) subst: aliases))) )
    529584             
    530              ((lambda (sys)
    531                 (if e1
    532                     (make-event e1 sys aliases)
    533                     sys))
    534 
    535               ((lambda (sys)
    536                  (if c-assignments1
    537                      (Apply
    538                       (Apply diagram-sequence sys)
    539                       (Apply (Apply diagram-on c-assignments1)
    540                              (Apply
    541                               (Apply signal-realsig (Const `(label ,trigger-name1)))
    542                               (Apply signal-realconst (Const `(real -1.0))))))
    543                       sys))
    544 
    545                (if assignments1
    546                    (Apply
    547                     (Apply diagram-sequence odes1)
    548                     assignments1)
    549                    odes1))))
    550      
    551       ((lambda (sys)
    552          (if e2
    553              (make-event e2 sys aliases)
    554              sys))
    555        
    556        ((lambda (sys)
    557           (if c-assignments2
    558               (Apply
    559                (Apply diagram-sequence sys)
    560                (Apply (Apply diagram-on c-assignments2)
    561                       (Apply
    562                        (Apply signal-realsig (Const `(label ,trigger-name2)))
    563                        (Apply signal-realconst (Const `(real -1.0))))))
    564               sys))
    565        
    566         (if (null? ode-variables2)
     585             (Apply
     586              (Apply signal-boolsig (Const `(label ,state-name)))
     587              (Apply signal-boolconst (Const `(bool #f)))))
    567588           
    568             (if (null? relations)
    569                
    570                 assignments2
    571                
    572                 (make-relations relations assignments2))
    573            
    574             (if assignments2
    575                 (Apply
    576                  (Apply diagram-sequence odes2)
    577                  assignments2)
    578                 odes2)))
    579        ))
    580      
    581      (Apply
    582       (Apply signal-realsig (Const `(label ,trigger-name1)))
    583       (Apply signal-realconst (Const `(real -1.0)))))
    584    
    585     (Apply
    586      (Apply diagram-assign (make-list (list (Const `(label ,trigger-name1)))))
    587      (make-pure (make-signal-expr (rewrite-trigger trigger-rhs1) subst: aliases))) )
    588 
    589     (Apply
    590      (Apply signal-realsig (Const `(label ,trigger-name2)))
    591      (Apply signal-realconst (Const `(real -1.0)))) )
    592 
    593      (Apply
    594       (Apply diagram-assign (make-list (list (Const `(label ,trigger-name2)))))
    595       (make-pure (make-signal-expr (rewrite-trigger trigger-rhs2) subst: aliases))) )
    596 
    597    (Apply
    598     (Apply signal-boolsig (Const `(label ,state-name)))
    599     (Apply signal-boolconst (Const `(bool #f)))))
    600 
    601     ))
     589            )
     590
     591           (trsys2
     592             (if c-assignments1
     593                 (Apply (Apply diagram-sequence trsys1)
     594                        (make-on-assignments c-assignments1 trigger-name1))
     595                 trsys1))
     596
     597           (trsys3 (if c-assignments2
     598                       (Apply (Apply diagram-sequence trsys2)
     599                              (make-on-assignments c-assignments2 trigger-name2))
     600                       trsys2))
     601           )
     602      trsys3))
     603  )
    602604
    603605
Note: See TracChangeset for help on using the changeset viewer.