home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / f / ilisp-2.lbr / STAT.LZP / STAT.LSP
Encoding:
Text File  |  1993-10-26  |  2.1 KB  |  42 lines

  1. (QUOTE iLISP-Library-File)
  2. 1906
  3.       (QUOTE %(C%)% Copyright% by% Computing% Insights,% 1983)
  4.                             
  5. ;(QUOTE (((MEAN L) - return the average value of a list of numbers) (DESCRIPTION: The mean is floating point, regardless of) (the types of the numbers in the list.)))
  6. (DEFINE MEAN (L) (/ (FLOAT (SUM L)) (LENGTH L)))
  7. (QUOTE ())
  8. ;(QUOTE (((SUM L) - add the elements of a list)))
  9. (DEFINE SUM (L) (MAP ID L + 0))
  10. (QUOTE ())
  11. ;(QUOTE (((MEDIAN L) - return the median value of a list of numbers) (DESCRIPTION: The list MUST be sorted.)))
  12. (DEFINE MEDIAN (L) (LET ((N (/ (LENGTH L) 2))) (IF (ODDP (LENGTH L)) (NTH L (ADD1 N)) (/ (+ (NTH L N) (NTH L (ADD1 N))) 2.))))
  13. (QUOTE ())
  14. ;(QUOTE (((ODDP N) - predicate for odd integers)))
  15. (DEFINE ODDP (N) (NULL (ZEROP (REM N 2))))
  16. (QUOTE ())
  17. ;(QUOTE (((Sort L) - sort a list of numbers) (DESCRIPTION: Returns a sorted copy of L.)))
  18. (DEFINE Sort (L) (MAP ID L Insert ()))
  19. (QUOTE ())
  20. ;(QUOTE ((Please Document Insert)))
  21. (DEFINE Insert (X L) (ADDEL X L (POS X L 0)))
  22. (QUOTE ())
  23. ;(QUOTE ((Please Document ADDEL)))
  24. (DEFINE ADDEL (N L P) (COND ((= (LENGTH L) P) (NCONC L (LIST N))) (T (LET ((L (CDRS L P))) (RPLACAD L (CONS N (CONS (CAR L) (CDR L))))) L)))
  25. (QUOTE ())
  26. ;(QUOTE ((Please Document POS)))
  27. (DEFINE POS (X L N) (IF L (IF (< X (CAR L)) N (POS X (CDR L) (ADD1 N))) N))
  28. (QUOTE ())
  29. ;(QUOTE (((STD L) - calculate the standard deviation of a list of numbers)))
  30. (DEFINE STD (L) (SQRT (VARIANCE L)))
  31. (QUOTE ())
  32. ;(QUOTE (((VARIANCE L) - calculate the variance of a list of numbers)))
  33. (DEFINE VARIANCE (L) (/ (SUMSQDEV L) (LENGTH L)))
  34. (QUOTE ())
  35. ;(QUOTE (((SUMSQDEV L) - calculate the sum of the squared deviations from the mean)))
  36. (DEFINE SUMSQDEV (L) (LET ((XBAR (MEAN L))) (MAP (LAMBDA (X) (SQUARE (- XBAR X))) L + 0.)))
  37. (QUOTE ())
  38. ;(QUOTE (((SQUARE N) - square a number)))
  39. (DEFINE SQUARE (N) (* N N))
  40. (QUOTE ())
  41. (QUOTE (SQUARE (1865 1823) SUMSQDEV (1717 1631) VARIANCE (1567 1495) STD (1444 1367) POS (1277 1244) ADDEL (1089 1054) Insert (994 958) Sort (905 815) ODDP (758 707) MEDIAN (566 455) SUM (409 359) MEAN (296 129)))
  42.