Changeset 30663 in project


Ignore:
Timestamp:
04/08/14 13:55:02 (7 years ago)
Author:
Ivan Raikov
Message:

picnic: generator functions now receive gids

Location:
release/4/picnic/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • release/4/picnic/trunk/examples/GL.picnic

    r30644 r30663  
    6666         (component (type layout) (name GranuleTcoordinates)
    6767
    68                     (s = (PointsFromFile ("GCTcoordinates.dat")))
     68                    (s = (PointsFromFile ("GCTcoordinates1.dat")))
    6969                 
    7070                    (output s)
     
    7373         (component (type section) (name AscendingAxons)
    7474                   
    75                     (defun f (origin)
     75                    (defun f (gid origin)
    7676                      (let ((dX 0)
    7777                            (dY 0)
     
    9191         (component (type section) (name ParallelFibers)
    9292
    93                     (defun f (origin)
     93                    (defun f (gid origin)
    9494                      (let ((dX (PFlength / 2))
    9595                            (dY 0)
     
    9797                        LineSegment (origin dX dY dZ)))
    9898
    99                     (defun g (origin)
     99                    (defun g (gid origin)
    100100                      (let ((dX (PFlength / 2))
    101101                            (dY 0)
     
    131131
    132132
    133                     (defun f (origin init)
     133                    (defun f (gid origin init)
    134134                      (let (
    135135                            (thetaDeg (randomNormal (BthetaMean BthetaSdev init)))
     
    154154         (component (type section) (name ApicalDendrites)
    155155
    156                     (defun f (origin init)
     156                    (defun f (gid origin init)
    157157                      (let (
    158158                            (thetaDeg (randomNormal (AthetaMean AthetaSdev init)))
     
    179179                    (const n = nAxons)
    180180
    181                     (defun f (origin init)
     181                    (defun f (gid origin init)
    182182                      (let ((dX (randomUniform (Axminx Axmaxx init)))
    183183                            (dY (randomUniform (Axminy Axmaxy init)))
  • release/4/picnic/trunk/examples/GLH.picnic

    r30659 r30663  
    4646       (config GoC_PhysApicalDendH)
    4747       (config GoC_PhysApicalDendR)
    48        (const AthetaMean = 10.0 )
     48       (config GoC_Atheta_min )
     49       (config GoC_Atheta_max )
    4950       (config GoC_Atheta_stdev)
    5051
    5152       (config GoC_PhysBasolateralDendH)
    5253       (config GoC_PhysBasolateralDendR)
    53        (const BthetaMean = 10.0 )
     54       (config GoC_Btheta_min )
     55       (config GoC_Btheta_max )
    5456       (config GoC_Btheta_stdev)
    5557
     
    6971         (component (type layout) (name GranuleTcoordinates)
    7072
    71                     (s = (PointsFromFile ("GCTcoordinates.dat")))
     73                    (s = (PointsFromFile ("GCTcoordinates1.dat")))
    7274                 
    7375                    (output s)
     
    7678         (component (type section) (name AscendingAxons)
    7779                   
    78                     (defun f (origin)
     80                    (defun f (gid origin)
    7981                      (let ((dX 0)
    8082                            (dY 0)
     
    9496         (component (type section) (name ParallelFibers)
    9597
    96                     (defun f (origin)
     98                    (defun f (gid origin)
    9799                      (let ((dX (PFlength / 2))
    98100                            (dY 0)
     
    100102                        LineSegment (origin dX dY dZ)))
    101103
    102                     (defun g (origin)
     104                    (defun g (gid origin)
    103105                      (let ((dX (PFlength / 2))
    104106                            (dY 0)
     
    134136
    135137
    136                     (defun f (origin init)
    137                       (let (
    138                             (thetaDeg (randomNormal (BthetaMean GoC_Btheta_stdev init)))
     138                    (defun f (gid origin init)
     139                      (let (
     140                            (thetaDeg (randomNormal (GoC_Btheta_min GoC_Btheta_stdev init)))
    139141                            (theta    ((PI / 180.) * thetaDeg))
    140142
     
    146148                        LineSegment (origin dX dY dZ)))
    147149
    148                     (const n = GoC_nDendGL)
     150                    (defun g (gid origin init)
     151                      (let (
     152                            (thetaDeg (randomNormal (GoC_Btheta_max GoC_Btheta_stdev init)))
     153                            (theta    ((PI / 180.) * thetaDeg))
     154
     155                            (dX (GoC_PhysBasolateralDendR * cos (theta)))
     156                            (dY (GoC_PhysBasolateralDendR * sin (theta)))
     157                            (dZ GoC_PhysBasolateralDendH)
     158                            )
     159                   
     160                        LineSegment (origin dX dY dZ)))
     161
     162                    (const n = 1)
    149163
    150164                    (segp (u) = (generator f) (initial (randomInit (13)))
    151165                                (nsegs GoC_Bd_nseg) (nsegpts GoC_Bd_nsegpts))
    152                    
    153                     (output u n)
     166
     167                    (segp (v) = (generator g) (initial (randomInit (13)))
     168                                (nsegs GoC_Bd_nseg) (nsegpts GoC_Bd_nsegpts))
     169                   
     170                    (output u n v n)
    154171
    155172                    )
     
    157174         (component (type section) (name ApicalDendrites)
    158175
    159                     (defun f (origin init)
     176                    (defun f (gid origin init)
    160177                      (let (
    161178                            (thetaDeg (randomNormal (GoC_Atheta_min GoC_Atheta_stdev init)))
     
    169186                        LineSegment (origin dX dY dZ)))
    170187                   
    171                     (const n = GoC_nDendML)
     188                    (defun g (gid origin init)
     189                      (let (
     190                            (thetaDeg (randomNormal (GoC_Atheta_max GoC_Atheta_stdev init)))
     191                            (theta    ((PI / 180.) * thetaDeg))
     192
     193                            (dX (GoC_PhysApicalDendR * cos (theta)))
     194                            (dY (GoC_PhysApicalDendR * sin (theta)))
     195                            (dZ GoC_PhysApicalDendH)
     196                            )
     197                   
     198                        LineSegment (origin dX dY dZ)))
     199                   
     200                    (const n = 1)
    172201
    173202                    (segp (u) = (generator f) (initial (randomInit (17)))
    174203                                (nsegs GoC_Ad_nseg) (nsegpts GoC_Ad_nsegpts))
    175204                   
    176                     (output u n)
     205                    (segp (v) = (generator g) (initial (randomInit (17)))
     206                                (nsegs GoC_Ad_nseg) (nsegpts GoC_Ad_nsegpts))
     207                   
     208                    (output u n v n)
    177209
    178210                    )
     
    182214                    (const n = numAxonGolgi)
    183215
    184                     (defun f (origin init)
     216                    (defun f (gid origin init)
    185217                      (let ((dX (randomUniform (GoC_Axon_Xmin GoC_Axon_Xmax init)))
    186218                            (dY (randomUniform (GoC_Axon_Ymin GoC_Axon_Ymax init)))
  • release/4/picnic/trunk/picnic-core.scm

    r30658 r30663  
    628628                        (let* ((fd   (procedure-data op))
    629629                               (fms   (lookup-def 'formals fd)))
    630                          
    631630                          (if (not (= (length fms) (length args)))
    632631                              (picnic:error 'arity-check "procedure " s
     
    724723                                            (procedure? (hash-table-ref local-env gfun))))
    725724                                  (picnic:error 'env-extend! "process definitions require a generating function"))
     725
     726                              (let ((gfun-proc (hash-table-ref local-env gfun)))
     727                                (let* ((fd   (procedure-data gfun-proc))
     728                                       (fms  (lookup-def 'formals fd)))
     729                                  (if (not (or (= (length fms) 3) (= (length fms) 2)))
     730                                      (picnic:error 'env-extend! "process generating function must take two or three arguments"))
     731                                  ))
    726732
    727733                              (if (not npts)
     
    755761                                  (picnic:error 'env-extend! "segmented process definitions require a generating function"))
    756762                             
     763                              (let ((gfun-proc (hash-table-ref local-env gfun)))
     764                                (let* ((fd   (procedure-data gfun-proc))
     765                                       (fms  (lookup-def 'formals fd)))
     766                                  (if (not (or (= (length fms) 3) (= (length fms) 2)))
     767                                      (picnic:error 'env-extend! "segmented process generating function must take two or three arguments"))
     768                                  ))
     769
    757770                              (if (not (and nsegs nsegpts))
    758771                                  (picnic:error 'env-extend! "segmented process definitions require number of points and number of segments"))
  • release/4/picnic/trunk/picnic.scm

    r30658 r30663  
    614614                                 (list
    615615                                  `(make-process
    616                                     ,(if init `(,gfun ,origin ,init-var) `(,gfun ,origin) )
     616                                    ,(if init
     617                                         `(,gfun gid ,origin ,init-var)
     618                                         `(,gfun gid ,origin) )
    617619                                    (inexact->exact ,npts))
    618620                                  init
     
    624626                                    (list
    625627                                     `(make-segmented-process
    626                                        ,(if init `(,gfun ,origin ,init-var) `(,gfun ,origin) )
     628                                       ,(if init
     629                                            `(,gfun gid ,origin ,init-var)
     630                                            `(,gfun gid ,origin) )
    627631                                       (inexact->exact ,nsegs)
    628632                                       (inexact->exact ,nsegpts))
Note: See TracChangeset for help on using the changeset viewer.