program bcvwarpf; {(snp9: STB-27) First written: September 27, 1994. Last revised: March 7, 1995. Authors: Isaias Hazarmabeth Salgado Ugarte, Makoto Shimizu and Toru Taniuchi. Univ. of Tokyo, Fac. of Agriculture, Dept. of Fisheries. Yayoi 1-1-1, Bunkyo-ku, Tokyo 113, Japan. No results to screen, only to text file. This Pascal program performs least squares cross validation for WARPing density estimation, using modified algorithms from Haerdle (1991) "Smoothing Techniques with Implementations in S. Springer-Verlag Series in Statistics, New York } const maxsize = 1000; maxsize2 = 1000; type vector = array[0..maxsize] of real; striname = string[30]; vectorint = array[0..maxsize2] of integer; var n,i,M,mstart,mend,mnumber,numbin,kerneltype,indexi,nl :integer; start,delta,h,origin,maxval,minval,cm,score,tau,kappa,zeta : real; bin,frequ,index,mv : vectorint; x,kwe,fm,bcv,hv,ma : vector; inpval,data,resul : text; function Power(x:real; n:integer): real; begin if n=1 then Power:=x else if odd(n) then Power:=x*sqr(Power(x, n div 2)) else Power:=sqr(Power(x, n div 2)) end; procedure InputValues; var i: integer; begin assign(data,'_data2.raw'); reset(data); i:=1; while (not eof(data)) do begin read(data,x[i]); i:=i+1; end; close(data); n:=i-2; assign(inpval,'_inpval.raw'); reset(inpval); read(inpval,delta,kerneltype,mstart,mend); close(inpval); end; procedure InitialCalc; var maxnoemp,ib: integer; begin mnumber:=mend-mstart+1; maxval:=x[n]; minval:=x[1]; start:=minval-delta*(Mend+0.1); if (start<0) then origin:=(round((start/delta)-0.5)-0.5)*delta else origin:=(trunc(start/delta)-0.5)*delta; numbin:=round(((maxval+delta*(Mend+0.1)-origin)/delta)+0.5)+1; if (n+1