Ignore:
Timestamp:
04/09/14 09:02:54 (7 years ago)
Author:
Ivan Raikov
Message:

picnic: reformulated gid assignment based on layout; added mpi-aware write-layouts procedure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/picnic/trunk/picnic-utils.scm

    r30670 r30671  
    136136            (call-with-output-file (sprintf "~A.sorted.dat" name)
    137137              (lambda (out)
    138                 (for-each (lambda (x)
    139                             (fprintf out "~A ~A ~A~%"
    140                                      (coord 0 x)
    141                                      (coord 1 x)
    142                                      (coord 2 x)))
     138                (for-each (match-lambda
     139                           ((gid p)
     140                            (fprintf out "~A ~A ~A ~A~%"
     141                                     gid
     142                                     (coord 0 p)
     143                                     (coord 1 p)
     144                                     (coord 2 p))))
    143145                          pts))
    144146              ))
    145147
    146         (define (write-sections forest-name section-name sections)
    147           (call-with-output-file (sprintf "~A.~A.section.dat" forest-name section-name)
     148       
     149        (define (write-layout name pts #!optional rank)
     150            (call-with-output-file (if rank
     151                                       (sprintf "~A.~A.layout.dat" name rank)
     152                                       (sprintf "~A.layout.dat" name))
     153              (lambda (out)
     154                (for-each (match-lambda
     155                           ((gid p)
     156                            (fprintf out "~A ~A ~A ~A~%"
     157                                     gid
     158                                     (coord 0 p)
     159                                     (coord 1 p)
     160                                     (coord 2 p))))
     161                          pts))
     162              ))
     163
     164        (define (write-sections forest-name section-name layout sections #!optional rank)
     165          (call-with-output-file (if rank
     166                                     (sprintf "~A.~A.~A.section.dat" forest-name section-name rank)
     167                                     (sprintf "~A.~A.section.dat" forest-name section-name))
    148168            (lambda (out)
    149               (fold-right
    150                (lambda (section i)
    151                  (fprintf out "~A " i)
     169              (for-each
     170               (match-lambda*
     171                (((gid p) section)
     172                 (fprintf out "~A " gid)
    152173                 (for-each
    153174                  (lambda (neurites)
     
    160181                                  (coord 2 p))))
    161182                     (cdr neurites)))
    162                     (cdr section))
    163                   (fprintf out "~%")
    164                   (+ i 1))
    165                1
     183                  (cdr section))
     184                 (fprintf out "~%")
     185                 ))
     186               layout
    166187               sections))))
    167188
Note: See TracChangeset for help on using the changeset viewer.