The following files are based on the work of others.

src/ppr.f
  J. H. Friedman's (1984) SMART package.
  Converted to double precision and interface to smoothing splines by
  B. D. Ripley.

src/bsplvd.f
src/bvalue.f
src/bvalus.f
src/qsbart.f
src/sbart.f
src/sgram.f
src/sinerp.f
src/sslvrg.f
src/stxwx.f
  From the public domain source of the package GAMFIT by T. Hastie and
  R. Tibshirani, converted to double precision and with consistency
  changes to the calls to bvalue. 
  Originally derived from http://lib.stat.cmu.edu/general/gamfit (now defunct).

src/loessc.c
src/loessf.f
  From the cloess package on netlib (section a).  The following
  statement applies to these files:

    The authors of this software are Cleveland, Grosse, and Shyu.
    Copyright (c) 1989, 1992 by AT&T.
    Permission to use, copy, modify, and distribute this software for
    any purpose without fee is hereby granted, provided that this entire
    notice is included in all copies of any software which is or
    includes a copy or modification of this software and in all copies
    of the supporting documentation for such software.
    THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
    IMPLIED WARRANTY.  IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE
    ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
    MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
    PURPOSE.

  The files are unchanged apart from the insertion of that statement.

All other files are copyright the R Core Team and/or B. D. Ripley.

