/* Data for ParamBSpline2, a REXX program by Doug Rickman, GHCC/MSFC/NASA

/* Example input file. 
/* Compute a least squares bspline using 7 internal knots over the range 
/*    given by the variable MyU.  Output points are specified.  Note that 
/*    several of the requested ouput points are outside the input range and
/*    are therefore dropped from the evaluation.

/* Anything after the first "/*" on a line is ignored.  
/* Thus a line starting with "/* is a comment.
/* There is no variable typing, i.e. 1 = 1.0 = 1e+0

/* Blank lines are ignored.


/* Input Data    - - - - - - - - - - - - - - - - - - - - - -  - - - -

All Variables = SomeVar AnotherVar MyU W
             /* List all variable names, space delimited and CASE SENSITIVE.  
             /* Example, if using 3 variables and weight factors you could  
             /* enter "height width depth w".  There must be one column in the
             /* data table for each variable name.  There is no practical limit
             /* to the number of variables, i.e. columns.
             
Use Variables = SomeVar AnotherVar
             /* List in order the names of variables to use.  The maximum
             /*   number of variables, i.e. dimensions, must be less than 11.
             /*   It must also be no more than the total number of all variables.
             /*   The order listed need not match the order of appearance in the 
             /*   All Variables list.



/* BSpline Controls  - - - - - - - - - - - - - - - - - - - -  - - - -

Mode    = -1  
             /* -1  - weighted least squares spline (Knots must be specified).
             /*  0  - smoothing spline.

Knots   = 7
             /* Number of internal knots to use.  This is used when Mode = -1.
             /* Knots will be evenly spaced between start and stop of data. 
             /* Knots <= (Number of data points) - Degree - 1

Degree  = 3
             /* degree of spline.  1<= Degree <=5. 
             /* "It is recommended to use cubic splines (Degree=3).  
             /* The user is strongly dissuaded from choosing Degree even, together
             /* with a small s-value."

Smooth  =  1.0
             /* Smoothing.  Smooth>=0.  Start "big" and work your way down.  If 
             /* blank Smooth will be set to the number of points. 
             /* A value of 0 will create an interpolating spline, i.e. it will
             /* go through the input data points in all cases.  

uParam  =    MyU
             /* The name of the variable to use as the "u" parameter.  If this
             /* means nothing to you perhaps you should read the documentation.
             /* As a hint, this is why this program is called Parametric BSpline.
             /* If no value is provided the scaled distance in n dimensions 
             /* between subsequent points will be used with the total distance
             /* scaled to 1.  
             /* A variable used as the uParam can not also be present in Use Variables
             /* 
             /* WARNING - The numeric values of this variable MUST INCREASE 
             /* each subsequent point.  In other words  u(i-1) < u(i) < u(i+1).

Weights =   
             /* The name of the variable to use as the weighting factor. 
             /* If left blank a default weight of 1 is assigned to each point.
             /* Weights must be greater than 0.


/* Output Data   - - - - - - - - - - - - - - - - - - - - - -  - - - -

OutputMode    = Specified -0.25 1.333 5 .2 13
             /* Must be of the form
             /*     Interpolate  n,
             /*     Resample     n,
             /*     Fixed        n,
             /*     Specified    n1 n2 n3 n4 n5 ...,
             /*     DoLoop i = n to m by p
             /*  
             /*  "Interpolate n" will output values for each input point and 
             /*    create an additional n points in between each pair of 
             /*     adjacent input points.  
             /*  "Resample n"  will create n points between the first 
             /*    and last data points.
             /*  "Fixed n" will output points at uniform sample spacing.  
             /*     Points will be at integer multiple of n.  The units for
             /*     this are the same as the units of the DistanceParam. Points
             /*     for the start and stop of the data will also be output.
             /*  "Specified n1 n2 n3 n4 n5 ..." will output estimates for each
             /*     point, n1, n2, n3 ....  specified.
             /*  "DoLoop i = m to n by p" will output values starting with m and 
             /*     going toward n in p sized steps.  You MUST replace m, n AND
             /*     p with values appropriate for your needs. Warning, this option 
             /*     allows you to obtain output outside the range of input data!

OutputFile    = Data2.out
             /* If this file already exists it will be appended.


/* Data          - - - - - - - - - - - - - - - - - - - - - -  - - - -
Data  =      /* Flag which indicates the data table follows. Do not change this line. 

/* Data follows in filled columns, i.e. no missing values.  1 row per point
/* in n dimensional space.  1 column per dimension.  Columns are space or tab 
/* delimited.  Currently precision is set to 9 significant digits.  The number
/* of columns must match the number of variables in the list of All Variables.


   5.600    3.353E-2       0           .95
   6.502    1.542E-1       3.4783E-01  .90
   7.202    1.547E-1       6.1538E-01  0.0010
   8.102    1.552E-1       9.5937E-01   1
   9.101    9.578E-2       1.3419       .98
   1.000E+1    1.264E-1    1.6857       .97
   1.130E+1    1.873E-1    2.1831       .97
   1.280E+1    1.582E-1    2.7565       .99
   1.390E+1    1.288E-1    3.1771       1
   1.520E+1    6.957E-2    3.6745       1
   1.630E+1    1.904E-1    4.0975       1
   1.760E+1    3.413E-1    4.5977       1
   1.821E+1    5.219E-1    4.8408       1
   1.841E+1    9.124E-1    5.0085        1
   1.911E+1    1.273       5.3095       1
   1.982E+1    1.604       5.6089       1.0
   2.032E+1    1.845       5.8211       1
   2.092E+1    2.115       6.0725       1
   2.113E+1    2.506       6.2422       1
   2.123E+1    2.716       6.3311       1
   2.133E+1    2.836       6.3908       1
   2.193E+1    2.746       6.6227       1
   2.243E+1    2.537       6.8298       1
   2.252E+1    2.356       6.9071       1
   2.322E+1    2.117       7.1898       1
   2.392E+1    1.877       7.4726       1
   2.452E+1    1.727       7.7090       1
   2.482E+1    1.547       7.8427       1
   2.561E+1    1.367       8.1524       1
   2.641E+1    1.188       8.4657       1
   2.691E+1    1.158       8.6572       1
   2.741E+1    1.308       8.8567       1
   2.742E+1    1.849       9.0635       1
   2.762E+1    2.300       9.2521       1
   2.753E+1    2.750       9.4275       1
   2.783E+1    3.321       9.6740       1
   2.784E+1    3.741       9.8346       1
   2.794E+1    4.162      10.0000       1
