//
// Gaussian procedure command
//
//this function is used to generate gaussian procedure accoding to the procedure on N dimmension.

//syntax 
gproc wave by id/
(option)
;
//option 
//parameters are refferd from PRML (6.63) 
//K(Xn,Xm) = theta exp(-sigma/2 ||Xn-Xm||^2) + delta + beta Xn'Xm
theta = 0.33 (default)  
sigma = 25.0 (default)
delta =  1.0 (default)
beta  = 12.0 (default)
num=nn    //view points interval is same and adjusted, if num > datasize . (100 default)
pitch=mm  //view points interval is adujusted same pich. (10 default)

//Examble 
//making point procedure on 2d plane.
hand t1 t2 stock20/
1	-18	  -1.992561
21	-12 	  -1.620277
41	-6 	  -1.591967
61	 0	  -1.046988
81	6	  0.057125
101	12	  0.495939
181	38	  0.892287
201	54	  1.373567
221	83	  0.76489
241	102	  0.184523
;
put work;

get work;
  //view point procedure 
  plot line stock20 by t1 t2;

//generage gaussian procedure with upper and lower side get work; gproc stock20 by t1 t2; anaput ana1; get ana1; plot line stock20 gaussProc gaussUp gaussLow by t1/ color=yellow ; get wave2; over line stock20 by t1/ marker=OF color=red ;

//view gaussian process on 3D. get ana1; plot scat t1 t2 gaussProc; marker=OF color=yellow ; over scat t1 t2 gaussUp; marker=OF color=blue ; over scat t1 t2 gaussLow; marker=OF color=gree ; get wave2; over scat t1 t2 stock20; marker=OF color=red ;