*
;

            options nosource;
%macro ray(data=_LAST_, result=_NEW_,  x =x,   y =y,
                                       x0=0.0, y0=0.0, add=no);

options nonotes nosymbolgen nostimer nosource;

data &result;
  set &data;
  output;
  &x=&x0; &y=&y0;
  output;
run;

%if %upcase(%str(&add)) = %str(YES) %then %do;
   proc append base=&result data=&data force; run;
   %put macro-note: dataset &data appended to &result;
%end;

options notes;
  data &result;
    set &result;
  run;
options stimer source;
%mend ray; options source;

/*
*Example;

data one;
  do x=-10 to 10 ;
     y=x**2 -x -10;
     k=1;
     output;
 end;
run;

%ray(data=one,result=two,x=x,y=y,x0=3,y0=20);

symbol i=join;
proc gplot data=two;
  plot y*x=k/nolegend;
run;

*End of Example;     */

*
;