(FILECREATED "24-Jun-86 00:07:10" {QV}<PEDERSEN>LISP>EARRAY-MATHFNS.;7 15085  

      changes to:  (FNS EARRAY-FLOAT-POLY EARRAY-GENERIC-POLY EARRAY-BETA-CDF EARRAY-CAUCHY-CDF 
			EARRAY-F-CDF EARRAY-GAUSSIAN-CDF EARRAY-INV-BETA-CDF EARRAY-INV-CAUCHY-CDF 
			EARRAY-INV-F-CDF EARRAY-INV-GAUSSIAN-CDF EARRAY-INV-LOGISTIC-CDF 
			EARRAY-INV-LOGNORMAL-CDF EARRAY-LOGISTIC-CDF EARRAY-LOGNORMAL-CDF)

      previous date: "23-Jun-86 14:14:31" {QV}<PEDERSEN>LISP>EARRAY-MATHFNS.;6)


(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT EARRAY-MATHFNSCOMS)

(RPAQQ EARRAY-MATHFNSCOMS ((FNS EARRAY-BETA-CDF EARRAY-CAUCHY-CDF EARRAY-CHISQUARED-CDF 
				  EARRAY-CHOOSE EARRAY-CHOOSE-FN EARRAY-COS EARRAY-DEAL 
				  EARRAY-EXPONENTIAL-CDF EARRAY-EXPT EARRAY-F-CDF EARRAY-FACTORIAL 
				  EARRAY-FACTORIAL-FN EARRAY-FLOAT-POLY EARRAY-GAMMA EARRAY-GAMMA-CDF 
				  EARRAY-GAUSSIAN-CDF EARRAY-GENERIC-POLY EARRAY-INV-BETA-CDF 
				  EARRAY-INV-CAUCHY-CDF EARRAY-INV-CHISQUARED-CDF 
				  EARRAY-INV-EXPONENTIAL-CDF EARRAY-INV-F-CDF EARRAY-INV-GAMMA-CDF 
				  EARRAY-INV-GAUSSIAN-CDF EARRAY-INV-LOGISTIC-CDF 
				  EARRAY-INV-LOGNORMAL-CDF EARRAY-INV-STD-GAUSSIAN-CDF 
				  EARRAY-INV-T-CDF EARRAY-POLY EARRAY-RAND EARRAY-RAND-GAUSS 
				  EARRAY-T-CDF EARRAY-TAN EARRAY-ANTILOG EARRAY-ARCCOS EARRAY-ARCSIN 
				  EARRAY-ARCTAN EARRAY-LOG EARRAY-LOGGAMMA EARRAY-LOGISTIC-CDF 
				  EARRAY-LOGNORMAL-CDF EARRAY-SIN EARRAY-SQRT EARRAY-STD-GAUSSIAN-CDF)
	(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (LOCALVARS . T))))
(DEFINEQ

(EARRAY-BETA-CDF
  [LAMBDA (ARRAY A B RESULT)                               (* jop: "10-Jun-86 16:53")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION BETA-CDF)
			(ARRAY A B)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-CAUCHY-CDF
  [LAMBDA (ARRAY MU SCALE RESULT)                          (* jop: "10-Jun-86 16:54")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION CAUCHY-CDF)
			(ARRAY MU SCALE)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-CHISQUARED-CDF
  [LAMBDA (ARRAY DF RESULT)                                (* jop: "10-Jun-86 14:57")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION CHISQUARED-CDF)
			   ARRAY DF RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-CHOOSE
  [LAMBDA (ARRAY1 ARRAY2 RESULT)                             (* jop: "15-Jun-86 15:46")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION CHOOSE)
			   ARRAY1 ARRAY2 RESULT (EARRAY-COMMON-TYPE (EARRAY-ELEMENT-TYPE ARRAY1)
								      (EARRAY-ELEMENT-TYPE ARRAY2])

(EARRAY-CHOOSE-FN
  [LAMBDA (OP ARRAY1 ARRAY2 RESULT)                          (* jop: "23-Jun-86 12:06")

          (* *)


    (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION SCALAR-CHOOSE)
				   ARRAY1 ARRAY2 RESULT])

(EARRAY-COS
  [LAMBDA (ARRAY RADIANS-P RESULT)                         (* jop: "10-Jun-86 11:31")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION COS)
			   ARRAY RADIANS-P RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-DEAL
  [LAMBDA (VECTOR NUMITEMS RESULT)                         (* jop: "10-Jun-86 11:58")

          (* *)


    (if [NOT (OR (FIXP VECTOR)
		       (EQ 1 (EARRAY-RANK VECTOR]
	then (ERROR "Vector of incorrect form" VECTOR))
    (if (NULL NUMITEMS)
	then (SETQ NUMITEMS (if (FIXP VECTOR)
				    then VECTOR
				  else (EARRAY-TOTAL-SIZE VECTOR)))
      elseif (NOT (FIXP NUMITEMS))
	then (ERROR "Not an integer" NUMITEMS))
    (LET* [(ARGLST (if (FIXP VECTOR)
		       then (for I from 0 upto VECTOR collect I)
		     else (EARRAY-ASLIST VECTOR)))
	   (PERMLIST (RAND-PERMUTATION (FNTH ARGLST (ADD1 (IDIFFERENCE (LENGTH ARGLST)
									       NUMITEMS]
          (SETQ RESULT (EARRAY-TEST-RESULT RESULT (LIST (LENGTH PERMLIST))
					       (EARRAY-ELEMENT-TYPE VECTOR)))
          (bind (LRESULT ← (EARRAY-LINEARIZE RESULT)) for I from 0 upto (LENGTH PERMLIST)
	     as P in PERMLIST do (ASET P LRESULT I))
      RESULT])

(EARRAY-EXPONENTIAL-CDF
  [LAMBDA (ARRAY MU RESULT)                                (* jop: "10-Jun-86 14:59")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION EXPONENTIAL-CDF)
			   ARRAY MU RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-EXPT
  [LAMBDA (ARRAY1 ARRAY2 RESULT)                             (* jop: "10-Jun-86 11:15")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION EXPT)
			   ARRAY1 ARRAY2 RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1)
								     (EARRAY-ELEMENT-TYPE ARRAY2])

(EARRAY-F-CDF
  [LAMBDA (ARRAY P Q RESULT)                               (* jop: "10-Jun-86 16:56")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION F-CDF)
			(ARRAY P Q)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-FACTORIAL
  [LAMBDA (ARRAY RESULT)                                   (* jop: "23-Jun-86 13:27")

          (* *)


    (EARRAY-MONADIC-APPLY (FUNCTION SCALAR-FACTORIAL)
			    ARRAY RESULT (EARRAY-ELEMENT-TYPE ARRAY])

(EARRAY-FACTORIAL-FN
  [LAMBDA (OP ARRAY RESULT)                                  (* jop: "23-Jun-86 12:07")

          (* *)


    (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION SCALAR-FACTORIAL)
				    ARRAY RESULT])

(EARRAY-FLOAT-POLY
  [LAMBDA (VECTOR ARRAY RESULT)                            (* jop: "23-Jun-86 22:23")

          (* *)


    (LET ((VSIZE (EARRAY-TOTAL-SIZE VECTOR))
	  (VECTORBASE (ARRAYBASE VECTOR)))
         (if (EARRAY-SCALARP ARRAY)
	     then (\POLYNOM ARRAY VECTORBASE VSIZE)
	   else (bind (ARRAYBASE ←(ARRAYBASE ARRAY))
			  (RESULTBASE ←(ARRAYBASE RESULT)) for I from 0
		     upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2
		     do (\PUTBASEFLOATP RESULTBASE I (\POLYNOM (\GETBASEFLOATP ARRAYBASE I)
								     VECTORBASE VSIZE)))
		  RESULT])

(EARRAY-GAMMA
  [LAMBDA (ARRAY RESULT)                                   (* jop: "10-Jun-86 14:36")

          (* *)


    (EARRAY-MONADIC-APPLY (FUNCTION GAMMA)
			    ARRAY RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-GAMMA-CDF
  [LAMBDA (ARRAY ETA RESULT)                               (* jop: "10-Jun-86 15:00")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION GAMMA-CDF)
			   ARRAY ETA RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-GAUSSIAN-CDF
  [LAMBDA (ARRAY MU SIGMA RESULT)                          (* jop: "10-Jun-86 16:59")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION GAUSSIAN-CDF)
			(ARRAY MU SIGMA)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-GENERIC-POLY
  [LAMBDA (VECTOR ARRAY RESULT)                            (* jop: "23-Jun-86 22:23")

          (* *)


    (LET ((VSIZE (EARRAY-TOTAL-SIZE VECTOR))
	  (VECTORBASE (ARRAYBASE VECTOR)))
         (if (EARRAY-SCALARP ARRAY)
	     then (\POLYNOM (FLOAT ARRAY)
				VECTORBASE VSIZE)
	   else (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY))
			  (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0
		     upto (EARRAY-TOTAL-SIZE RESULT)
		     do (ASET (\POLYNOM (FLOAT (AREF LINEARIZEDARRAY I))
					      VECTORBASE VSIZE)
				  LINEARIZEDRESULT I))
		  RESULT])

(EARRAY-INV-BETA-CDF
  [LAMBDA (ARRAY A B RESULT)                               (* jop: "10-Jun-86 16:53")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION INV-BETA-CDF)
			(ARRAY A B)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-INV-CAUCHY-CDF
  [LAMBDA (ARRAY MU SCALE RESULT)                          (* jop: "10-Jun-86 16:55")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION INV-CAUCHY-CDF)
			(ARRAY MU SCALE)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-INV-CHISQUARED-CDF
  [LAMBDA (ARRAY DF RESULT)                                (* jop: "10-Jun-86 14:58")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION INV-CHISQUARED-CDF)
			   ARRAY DF RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-INV-EXPONENTIAL-CDF
  [LAMBDA (ARRAY MU RESULT)                                (* jop: "10-Jun-86 14:59")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION INV-EXPONENTIAL-CDF)
			   ARRAY MU RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-INV-F-CDF
  [LAMBDA (ARRAY P Q RESULT)                               (* jop: "10-Jun-86 16:56")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION INV-F-CDF)
			(ARRAY P Q)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-INV-GAMMA-CDF
  [LAMBDA (ARRAY ETA RESULT)                               (* jop: "10-Jun-86 15:01")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION INV-GAMMA-CDF)
			   ARRAY ETA RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-INV-GAUSSIAN-CDF
  [LAMBDA (ARRAY MU SIGMA RESULT)                          (* jop: "10-Jun-86 16:59")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION INV-GAUSSIAN-CDF)
			(ARRAY MU SIGMA)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-INV-LOGISTIC-CDF
  [LAMBDA (ARRAY MU SCALE RESULT)                          (* jop: "10-Jun-86 16:58")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION INV-LOGISTIC-CDF)
			(ARRAY MU SCALE)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-INV-LOGNORMAL-CDF
  [LAMBDA (ARRAY MU SCALE RESULT)                          (* jop: "10-Jun-86 17:00")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION INV-LOGNORMAL-CDF)
			(ARRAY MU SCALE)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-INV-STD-GAUSSIAN-CDF
  [LAMBDA (ARRAY RESULT)                                   (* jop: "10-Jun-86 14:55")

          (* *)


    (EARRAY-MONADIC-APPLY (FUNCTION INV-STD-GAUSSIAN-CDF)
			    ARRAY RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-INV-T-CDF
  [LAMBDA (ARRAY DF RESULT)                                (* jop: "10-Jun-86 15:02")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION INV-T-CDF)
			   ARRAY DF RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-POLY
  [LAMBDA (VECTOR ARRAY RESULT)                            (* jop: "23-Jun-86 13:34")

          (* *)


    (if [NOT (AND (EQ 1 (EARRAY-RANK VECTOR))
			(EQ (EARRAY-ELEMENT-TYPE VECTOR)
			      (QUOTE SINGLE-FLOAT]
	then (ERROR "Vector of incorrect form" VECTOR))
    (SETQ RESULT (EARRAY-TEST-RESULT RESULT (EARRAY-DIMENSIONS ARRAY)
					 (QUOTE SINGLE-FLOAT)))
    (if (AND (EQ (EARRAY-ELEMENT-TYPE ARRAY)
		       (QUOTE SINGLE-FLOAT))
		 (EQ (EARRAY-ELEMENT-TYPE RESULT)
		       (QUOTE SINGLE-FLOAT)))
	then (EARRAY-FLOAT-POLY VECTOR ARRAY RESULT)
      else (EARRAY-GENERIC-POLY VECTOR ARRAY RESULT])

(EARRAY-RAND
  [LAMBDA (ARRAY1 ARRAY2 RESULT)                             (* jop: "10-Jun-86 11:41")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION RAND)
			   ARRAY1 ARRAY2 RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1)
								     (EARRAY-ELEMENT-TYPE ARRAY2])

(EARRAY-RAND-GAUSS
  [LAMBDA (MU SIGMA RESULT)                                  (* jop: "10-Jun-86 12:01")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION RAND-GAUSS)
			   MU SIGMA RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-T-CDF
  [LAMBDA (ARRAY DF RESULT)                                (* jop: "10-Jun-86 15:02")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION T-CDF)
			   ARRAY DF RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-TAN
  [LAMBDA (ARRAY RADIANS-P RESULT)                         (* jop: "10-Jun-86 11:31")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION TAN)
			   ARRAY RADIANS-P RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-ANTILOG
  [LAMBDA (ARRAY RESULT)                                   (* jop: "10-Jun-86 11:16")

          (* *)


    (EARRAY-MONADIC-APPLY (FUNCTION ANTILOG)
			    ARRAY RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-ARCCOS
  [LAMBDA (ARRAY RADIANS-P RESULT)                         (* jop: "10-Jun-86 11:32")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION ARCCOS)
			   ARRAY RADIANS-P RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-ARCSIN
  [LAMBDA (ARRAY RADIANS-P RESULT)                         (* jop: "10-Jun-86 11:33")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION ARCSIN)
			   ARRAY RADIANS-P RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-ARCTAN
  [LAMBDA (ARRAY RADIANS-P RESULT)                         (* jop: "10-Jun-86 11:33")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION ARCTAN)
			   ARRAY RADIANS-P RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-LOG
  [LAMBDA (ARRAY RESULT)                                   (* jop: "10-Jun-86 11:17")

          (* *)


    (EARRAY-MONADIC-APPLY (FUNCTION LOG)
			    ARRAY RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-LOGGAMMA
  [LAMBDA (ARRAY RESULT)                                   (* jop: "10-Jun-86 14:36")

          (* *)


    (EARRAY-MONADIC-APPLY (FUNCTION GAMLOG)
			    ARRAY RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-LOGISTIC-CDF
  [LAMBDA (ARRAY MU SCALE RESULT)                          (* jop: "10-Jun-86 16:57")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION LOGISTIC-CDF)
			(ARRAY MU SCALE)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-LOGNORMAL-CDF
  [LAMBDA (ARRAY MU SCALE RESULT)                          (* jop: "10-Jun-86 17:00")

          (* *)


    (EARRAY-NADIC-APPLY (FUNCTION LOGNORMAL-CDF)
			(ARRAY MU SCALE)
			RESULT
			(QUOTE SINGLE-FLOAT])

(EARRAY-SIN
  [LAMBDA (ARRAY RADIANS-P RESULT)                         (* jop: "10-Jun-86 11:30")

          (* *)


    (EARRAY-DYADIC-APPLY (FUNCTION SIN)
			   ARRAY RADIANS-P RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-SQRT
  [LAMBDA (ARRAY RESULT)                                   (* jop: "10-Jun-86 11:34")

          (* *)


    (EARRAY-MONADIC-APPLY (FUNCTION SQRT)
			    ARRAY RESULT (QUOTE SINGLE-FLOAT])

(EARRAY-STD-GAUSSIAN-CDF
  [LAMBDA (ARRAY RESULT)                                   (* jop: "10-Jun-86 14:54")

          (* *)


    (EARRAY-MONADIC-APPLY (FUNCTION STD-GAUSSIAN-CDF)
			    ARRAY RESULT (QUOTE SINGLE-FLOAT])
)
(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY 
(DECLARE: DOEVAL@COMPILE DONTCOPY

(LOCALVARS . T)
)
)
(PUTPROPS EARRAY-MATHFNS COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (1549 14896 (EARRAY-BETA-CDF 1559 . 1802) (EARRAY-CAUCHY-CDF 1804 . 2056) (
EARRAY-CHISQUARED-CDF 2058 . 2308) (EARRAY-CHOOSE 2310 . 2626) (EARRAY-CHOOSE-FN 2628 . 2860) (
EARRAY-COS 2862 . 3097) (EARRAY-DEAL 3099 . 4251) (EARRAY-EXPONENTIAL-CDF 4253 . 4505) (EARRAY-EXPT 
4507 . 4817) (EARRAY-F-CDF 4819 . 5056) (EARRAY-FACTORIAL 5058 . 5311) (EARRAY-FACTORIAL-FN 5313 . 
5545) (EARRAY-FLOAT-POLY 5547 . 6196) (EARRAY-GAMMA 6198 . 6429) (EARRAY-GAMMA-CDF 6431 . 6672) (
EARRAY-GAUSSIAN-CDF 6674 . 6930) (EARRAY-GENERIC-POLY 6932 . 7613) (EARRAY-INV-BETA-CDF 7615 . 7866) (
EARRAY-INV-CAUCHY-CDF 7868 . 8128) (EARRAY-INV-CHISQUARED-CDF 8130 . 8388) (EARRAY-INV-EXPONENTIAL-CDF
 8390 . 8650) (EARRAY-INV-F-CDF 8652 . 8897) (EARRAY-INV-GAMMA-CDF 8899 . 9148) (
EARRAY-INV-GAUSSIAN-CDF 9150 . 9414) (EARRAY-INV-LOGISTIC-CDF 9416 . 9680) (EARRAY-INV-LOGNORMAL-CDF 
9682 . 9948) (EARRAY-INV-STD-GAUSSIAN-CDF 9950 . 10211) (EARRAY-INV-T-CDF 10213 . 10453) (EARRAY-POLY 
10455 . 11196) (EARRAY-RAND 11198 . 11508) (EARRAY-RAND-GAUSS 11510 . 11750) (EARRAY-T-CDF 11752 . 
11984) (EARRAY-TAN 11986 . 12221) (EARRAY-ANTILOG 12223 . 12458) (EARRAY-ARCCOS 12460 . 12701) (
EARRAY-ARCSIN 12703 . 12944) (EARRAY-ARCTAN 12946 . 13187) (EARRAY-LOG 13189 . 13416) (EARRAY-LOGGAMMA
 13418 . 13653) (EARRAY-LOGISTIC-CDF 13655 . 13911) (EARRAY-LOGNORMAL-CDF 13913 . 14171) (EARRAY-SIN 
14173 . 14408) (EARRAY-SQRT 14410 . 14639) (EARRAY-STD-GAUSSIAN-CDF 14641 . 14894)))))
STOP