[Swift-devel] readData

Mihael Hategan hategan at mcs.anl.gov
Wed Oct 10 10:32:44 CDT 2007


String[] cols = line.split("\\s+");

Maybe I'm missing something.

On Wed, 2007-10-10 at 10:12 -0500, Michael Wilde wrote:
> Thats not what I encountered when I tested (which surprised me).
> I will restest and see what confused me (or my code).
> 
> - Mike
> 
> On 10/10/07 9:31 AM, Mihael Hategan wrote:
> > On Wed, 2007-10-10 at 09:00 -0500, Michael Wilde wrote:
> >> Mihael, all - readdata() works great, and I think gives Andrew exactly 
> >> what he asked for.
> >>
> >> I updated the example parameter-sweep loop to use readdata to grab the 
> >> multi-column input file.
> >>
> >> One note: as far as I can tell, you use the conventions the data columns 
> >> must be exactly 16 characters wide, space separated. Is that correct? (I 
> >> assume we'll generalize this time permits).
> > 
> > No. They must be horizontal-whitespace separated. The 16 characters wide
> > restriction does not exist. The following is valid:
> > a b           c                        d
> > 1 2 3 4
> > 5             6 7 8
> > 9                        10        11		12
> > 
> >> Here's the new example, Andrew.
> >>
> >> - Mike
> >>
> >> type file;
> >>
> >> // Simulate encapsulating an app's parameters as a struct
> >>
> >> type params {
> >>    int x;
> >>    int y;
> >>    float r;
> >>    boolean b;
> >>    string infilename;
> >>    string outfilename;
> >> };
> >>
> >> // Simulate an app
> >>
> >> myapp(params p, file infile, file outfile )
> >> {
> >>      app {
> >>          db "pecho:" p.x p.y p.r p.b p.infilename p.outfilename  @infile 
> >> @outfile ;
> >>      }
> >> }
> >>
> >> // Loop over the parameter array, calling app in parallel
> >>
> >> doall(params plist[])
> >> {
> >>    foreach pval,j in plist {
> >>
> >>      // convert filename string to mapped file reference
> >>      file infile <single_file_mapper;file=pval.infilename>;
> >>      file outfile <single_file_mapper;file=pval.outfilename>;
> >>
> >>      // Call the application
> >>      myapp(pval,infile, outfile);
> >>    }
> >> }
> >>
> >> // Main
> >>
> >> params plist[];
> >> plist = readdata("parameters");
> >> doall(plist);
> >>
> >> // Data File "parameters" follows.  Data files listed in it must exist.
> >> // each line is greater than 80 bytes and is only wrapped here by email
> >> // (actual files attached)
> >>
> >> x               y               r               b 
> >> infilename      outfilename
> >> 1               2               1.234           1 
> >> inf001.data     outf001.data
> >> 3               4               5.678           0 
> >> inf002.data     outf002.data
> >>
> >>
> >>
> >>
> >>
> >> On 10/10/07 5:23 AM, Ben Clifford wrote:
> >>> Mihael added the below language construct to the language the other day.
> >>>
> >>> This might be useful where the csv_mapper was being used before to read in 
> >>> non-file data.
> >>>
> >>> Its in the SVN.
> >>>
> >>>
> >>> Mihael Hategan wrote:
> >>>
> >>> There's a new function: readData. It's not an @function, so don't use it
> >>> that way because it won't work (it needs to know what variable it
> >>> assigns to, so that it knows how to interpret the contents of the
> >>> file). 
> >>>
> >>> It can read primitive things, arrays of primitive things, structs and
> >>> arrays of structs. 
> >>>
> >>> It can either take a file or a string as a parameter, although I
> >>> recommend the former since it can deal with data dependencies.
> >>>
> >>> For example usage, see tests/language-behaviour/readData.swift.
> >>>
> >>> Here's a short preview:
> >>> type circle {
> >>>         int x;
> >>>         int y;
> >>>         float r;
> >>>         string name;
> >>> }
> >>>
> >>> circle ca[];
> >>>
> >>> ca = readData("readData.circleArray.in");
> >>>
> >>> readData.circleArray.in:
> >>> x               y               r               name
> >>> 1               1               5               CircleOne
> >>> 2               2               7               CircleTwo
> >>>
> >>> It doesn't deal with spaces in strings in the CSV format for now, but
> >>> it's a start.
> >>>
> >>> Mihael
> >>>
> >> plain text document attachment (t5g.swift)
> >> type file;
> >>
> >> // Simulate encapsulating an app's parameters as a struct
> >>
> >> type params {
> >>   int x;
> >>   int y;
> >>   float r;
> >>   boolean b;
> >>   string infilename;
> >>   string outfilename;
> >> };
> >>
> >> // Simulate an app
> >>
> >> myapp(params p, file infile, file outfile )
> >> {  
> >>     app {  
> >>         db "pecho:" p.x p.y p.r p.b p.infilename p.outfilename  @infile @outfile ;
> >>     }  
> >> }  
> >>
> >> // Loop over the parameter array, calling app in parallel
> >>
> >> doall(params plist[])
> >> {
> >>   foreach pval,j in plist {
> >>
> >>     // convert filename string to mapped file reference
> >>     file infile <single_file_mapper;file=pval.infilename>;
> >>     file outfile <single_file_mapper;file=pval.outfilename>;
> >>
> >>     // Call the application
> >>     myapp(pval,infile, outfile);
> >>   }
> >> }
> >>
> >> // Main
> >>
> >> params plist[];
> >> plist = readdata("parameters");
> >> doall(plist);
> >> plain text document attachment (parameters)
> >> x               y               r               b               infilename      outfilename
> >> 1               2               1.234           1               inf001.data     outf001.data
> >> 3               4               5.678           0               inf002.data     outf002.data
> >> _______________________________________________
> >> Swift-devel mailing list
> >> Swift-devel at ci.uchicago.edu
> >> http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel
> > 
> > 
> 




More information about the Swift-devel mailing list