Changeset 13052 in project for release/3/nemo/trunk/nemo-matlab.scm


Ignore:
Timestamp:
01/21/09 07:45:56 (12 years ago)
Author:
Ivan Raikov
Message:

Save.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/3/nemo/trunk/nemo-matlab.scm

    r13050 r13052  
    172172
    173173       ((op . rest) 
    174        (let ((op (case op ((pow)  '^)  (else op))))
     174       (let ((op (case op ((pow)  '^)  ((ln) 'log) (else op))))
    175175         (let ((fe
    176176                (if (member op matlab-ops)
     
    204204                                                 (let ((fx (format-expr/MATLAB indent+ x))) fx)) rest)))))
    205205                   
    206                     (let ((op (case op ((neg) '-) ((ln) 'log) (else op))))
     206                    (let ((op (case op ((neg) '-) (else op))))
    207207                      (format-fncall/MATLAB indent op (map (lambda (x) (format-expr/MATLAB indent+ x)) rest))))))
    208208           (if rv
     
    380380
    381381
    382 (define (poset->state-init-defs poset sys)
     382(define (poset->init-defs poset sys)
    383383  (fold-right
    384384   (lambda (lst ax)
    385      (fold  (lambda (x ax)
     385     (fold-right
     386      (lambda (x ax)
    386387              (match-let (((i . n)  x))
    387388                         (let ((en (environment-ref sys n)))
     
    398399                                                 (cons (state-init name initial) ax)
    399400                                                 ax))
    400                                      
     401
    401402                                      (else  ax))
    402403                               ax))))
     
    567568             (reaction-eq-defs   (poset->reaction-eq-defs poset sys))
    568569             
    569              (init-eq-defs       (poset->state-init-defs poset sys))
     570             (init-eq-defs       (poset->init-defs poset sys))
    570571             
    571572             (conserve-eq-defs   (map (lambda (eq) (list 0 `(- ,(second eq) ,(first eq))))
     
    743744                   const-defs)
    744745         
    745          (if (not (null? init-eq-defs))
    746              (for-each (lambda (def)
    747                          (let ((n (matlab-name (first def)) )
    748                                (b (second def)))
    749                            (pp indent+ ,(expr->string/MATLAB b n))))
    750                        asgn-eq-defs))
    751          
    752746         (for-each (lambda (def)
    753747                     (let* ((n  (first def))
    754748                            (ni (lookup-def n state-index-map))
    755749                            (b (second def)))
    756                        (pp indent+ ,(expr->string/MATLAB b (if ni (s+ "y0(" ni ")") n)))))
     750                       (pp indent+ ,(expr->string/MATLAB b n))
     751                       (if ni (pp indent+ ,(expr->string/MATLAB n  (s+ "y0(" ni ")"))))))
    757752                   init-eq-defs)
    758753         
Note: See TracChangeset for help on using the changeset viewer.