[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