(FILECREATED "25-Jun-86 12:29:12" {QV}<PEDERSEN>LISP>EARRAY-ARITHFNS.;15 39795 changes to: (VARS EARRAY-ARITHFNSCOMS) (FNS EARRAY-SAMPLE-VARIANCE-REDUCE EARRAY-SAMPLE-VARIANCE EARRAY-VARIANCE EARRAY-VARIANCE-REDUCE EARRAY-FLOAT-ABS EARRAY-FLOAT-DIFFERENCE EARRAY-FLOAT-FIX EARRAY-FLOAT-FLOAT EARRAY-FLOAT-MAX EARRAY-FLOAT-MIN EARRAY-FLOAT-MINUS EARRAY-FLOAT-PLUS EARRAY-FLOAT-QUOTIENT EARRAY-FLOAT-RECIPROCAL EARRAY-FLOAT-REMAINDER EARRAY-FLOAT-TIMES EARRAY-GENERIC-DIFFERENCE EARRAY-GENERIC-PLUS EARRAY-GENERIC-QUOTIENT EARRAY-GENERIC-TIMES) previous date: "23-Jun-86 14:05:47" {QV}<PEDERSEN>LISP>EARRAY-ARITHFNS.;12) (* Copyright (c) 1986 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT EARRAY-ARITHFNSCOMS) (RPAQQ EARRAY-ARITHFNSCOMS ((FNS EARRAY-ABS EARRAY-ABS-FN EARRAY-CEILING EARRAY-CEILING-FN EARRAY-DIFFERENCE EARRAY-DIFFERENCE-FN EARRAY-DIFFERENCE-SWEEP EARRAY-FIX EARRAY-FIX-FN EARRAY-FLOAT EARRAY-FLOAT-ABS EARRAY-FLOAT-DIFFERENCE EARRAY-FLOAT-FIX EARRAY-FLOAT-FLOAT EARRAY-FLOAT-FN EARRAY-FLOAT-MAX EARRAY-FLOAT-MAX-REDUCE EARRAY-FLOAT-MIN EARRAY-FLOAT-MIN-REDUCE EARRAY-FLOAT-MINUS EARRAY-FLOAT-PLUS EARRAY-FLOAT-PLUS-REDUCE EARRAY-FLOAT-PLUS-SCAN EARRAY-FLOAT-QUOTIENT EARRAY-FLOAT-RECIPROCAL EARRAY-FLOAT-REMAINDER EARRAY-FLOAT-TIMES EARRAY-FLOAT-TIMES-SCAN EARRAY-FLOOR EARRAY-FLOOR-FN EARRAY-GENERIC-DIFFERENCE EARRAY-GENERIC-PLUS EARRAY-GENERIC-PLUS-REDUCE EARRAY-GENERIC-QUOTIENT EARRAY-GENERIC-TIMES EARRAY-MAX EARRAY-MAX-FN EARRAY-MAX-REDUCE EARRAY-MAX-REDUCE-FN EARRAY-MEAN EARRAY-MEAN-REDUCE EARRAY-MIN EARRAY-MIN-FN EARRAY-MIN-REDUCE EARRAY-MIN-REDUCE-FN EARRAY-MINUS EARRAY-MINUS-FN EARRAY-PLUS EARRAY-PLUS-FN EARRAY-PLUS-REDUCE EARRAY-PLUS-REDUCE-FN EARRAY-PLUS-SCAN EARRAY-PLUS-SCAN-FN EARRAY-PLUS-SWEEP EARRAY-QUOTIENT EARRAY-QUOTIENT-FN EARRAY-QUOTIENT-SWEEP EARRAY-RECIPROCAL EARRAY-RECIPROCAL-FN EARRAY-REMAINDER EARRAY-REMAINDER-FN EARRAY-ROUND EARRAY-ROUND-FN EARRAY-SAMPLE-VARIANCE EARRAY-SAMPLE-VARIANCE-REDUCE EARRAY-TIMES EARRAY-TIMES-FN EARRAY-TIMES-SCAN EARRAY-TIMES-SCAN-FN EARRAY-TIMES-SWEEP EARRAY-VARIANCE EARRAY-VARIANCE-REDUCE) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (LOCALVARS . T)))) (DEFINEQ (EARRAY-ABS [LAMBDA (ARRAY RESULT) (* jop: "13-Jun-86 12:10") (* *) (EARRAY-MONADIC-APPLY (FUNCTION ABS) ARRAY RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-ABS-FN [LAMBDA (OP ARRAY RESULT) (* jop: "13-Jun-86 11:53") (* *) (if (AND (EQ (EARRAY-ELEMENT-TYPE ARRAY) (QUOTE SINGLE-FLOAT)) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-ABS ARRAY RESULT) else (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION ABS) ARRAY RESULT]) (EARRAY-CEILING [LAMBDA (ARRAY RESULT) (* jop: "15-Jun-86 15:39") (* *) (EARRAY-MONADIC-APPLY (FUNCTION CEILING) ARRAY RESULT]) (EARRAY-CEILING-FN [LAMBDA (OP ARRAY RESULT) (* jop: "23-Jun-86 12:04") (* *) (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION SCALAR-CEILING) ARRAY RESULT]) (EARRAY-DIFFERENCE [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:28") (* *) (EARRAY-DYADIC-APPLY (FUNCTION DIFFERENCE) ARRAY1 ARRAY2 RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-DIFFERENCE-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:20") (* *) (if (AND (USE-FLOAT-P ARRAY1 ARRAY2) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-DIFFERENCE ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-DIFFERENCE ARRAY1 ARRAY2 RESULT]) (EARRAY-DIFFERENCE-SWEEP [LAMBDA (ARRAY1 ARRAY2 AXIS RESULT) (* jop: "17-Jun-86 21:17") (* *) (EARRAY-SWEEP (FUNCTION DIFFERENCE) ARRAY1 ARRAY2 AXIS RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-FIX [LAMBDA (ARRAY RESULT) (* jop: "13-Jun-86 12:10") (* *) (EARRAY-MONADIC-APPLY (FUNCTION FIX) ARRAY RESULT]) (EARRAY-FIX-FN [LAMBDA (OP ARRAY RESULT) (* jop: "13-Jun-86 11:53") (* *) (if (EQ (EARRAY-ELEMENT-TYPE ARRAY) (QUOTE SINGLE-FLOAT)) then (EARRAY-FLOAT-FIX ARRAY RESULT) else (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION FIX) ARRAY RESULT]) (EARRAY-FLOAT [LAMBDA (ARRAY RESULT) (* jop: "13-Jun-86 12:10") (* *) (EARRAY-MONADIC-APPLY (FUNCTION FLOAT) ARRAY RESULT (QUOTE SINGLE-FLOAT]) (EARRAY-FLOAT-ABS [LAMBDA (ARRAY RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (EARRAY-SCALARP ARRAY) then (FABS ARRAY) else [bind (ARRAYBASE ←(ARRAYBASE ARRAY)) (RESULTBASE ←(ARRAYBASE RESULT)) for I from 0 upto (MUL2 ( EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (UFABS (\GETBASEFLOATP ARRAYBASE I] RESULT]) (EARRAY-FLOAT-DIFFERENCE [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (DIFFERENCE ARRAY1 ARRAY2) else (if (EARRAY-SCALARP ARRAY1) then [bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FDIFFERENCE SCALAR (\GETBASEFLOATP ARRAYBASE2 I] elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FDIFFERENCE (\GETBASEFLOATP ARRAYBASE1 I) SCALAR))) else (\BLKFDIFF (ARRAYBASE ARRAY1) (ARRAYBASE ARRAY2) (ARRAYBASE RESULT) (EARRAY-TOTAL-SIZE RESULT))) RESULT]) (EARRAY-FLOAT-FIX [LAMBDA (ARRAY RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (EARRAY-SCALARP ARRAY) then (FIX ARRAY) else (bind (ARRAYBASE ←(ARRAYBASE ARRAY)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (UFIX (\GETBASEFLOATP ARRAYBASE (MUL2 I))) LINEARIZEDRESULT I)) RESULT]) (EARRAY-FLOAT-FLOAT [LAMBDA (ARRAY RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (EARRAY-SCALARP ARRAY) then (FLOAT ARRAY) else [bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY)) (RESULTBASE ←(ARRAYBASE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (\PUTBASEFLOATP RESULTBASE (MUL2 I) (FLOAT (AREF LINEARIZEDARRAY I] RESULT]) (EARRAY-FLOAT-FN [LAMBDA (OP ARRAY RESULT) (* jop: "13-Jun-86 11:53") (* *) (if (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT)) then (EARRAY-FLOAT-FLOAT ARRAY RESULT) else (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION FLOAT) ARRAY RESULT]) (EARRAY-FLOAT-MAX [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (MAX ARRAY1 ARRAY2) else [if (EARRAY-SCALARP ARRAY1) then (bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY1)) ELT declare (TYPE FLOATP SCALAR ELT) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (SETQ ELT (\GETBASEFLOATP ARRAYBASE2 I)) (if (UFGREATERP SCALAR ELT) then (\PUTBASEFLOATP RESULTBASE I SCALAR) else (\PUTBASEFLOATP RESULTBASE I ELT))) elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY2)) ELT declare (TYPE FLOATP SCALAR ELT) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (SETQ ELT (\GETBASEFLOATP ARRAYBASE1 I)) (if (UFGREATERP ELT SCALAR) then (\PUTBASEFLOATP RESULTBASE I ELT) else (\PUTBASEFLOATP RESULTBASE I SCALAR))) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) ELT1 ELT2 declare (TYPE FLOATP ELT1 ELT2) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (SETQ ELT1 (\GETBASEFLOATP ARRAYBASE1 I)) (SETQ ELT2 (\GETBASEFLOATP ARRAYBASE2 I)) (if (UFGREATERP ELT1 ELT2) then (\PUTBASEFLOATP RESULTBASE I ELT1) else (\PUTBASEFLOATP RESULTBASE I ELT2] RESULT]) (EARRAY-FLOAT-MAX-REDUCE [LAMBDA (FLOATVECTOR) (* jop: "17-Jun-86 16:32") (* *) (LET ((SIZE (EARRAY-TOTAL-SIZE FLOATVECTOR))) (if (IGREATERP SIZE 0) then (AREF FLOATVECTOR (\BLKFMAX (ARRAYBASE FLOATVECTOR) 0 SIZE]) (EARRAY-FLOAT-MIN [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (MIN ARRAY1 ARRAY2) else [if (EARRAY-SCALARP ARRAY1) then (bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY1)) ELT declare (TYPE FLOATP SCALAR ELT) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (SETQ ELT (\GETBASEFLOATP ARRAYBASE2 I)) (if (UFLESSP SCALAR ELT) then (\PUTBASEFLOATP RESULTBASE I SCALAR) else (\PUTBASEFLOATP RESULTBASE I ELT))) elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY2)) ELT declare (TYPE FLOATP SCALAR ELT) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (SETQ ELT (\GETBASEFLOATP ARRAYBASE1 I)) (if (UFLESSP ELT SCALAR) then (\PUTBASEFLOATP RESULTBASE I ELT) else (\PUTBASEFLOATP RESULTBASE I SCALAR))) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) ELT1 ELT2 declare (TYPE FLOATP ELT1 ELT2) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (SETQ ELT1 (\GETBASEFLOATP ARRAYBASE1 I)) (SETQ ELT2 (\GETBASEFLOATP ARRAYBASE2 I)) (if (UFLESSP ELT1 ELT2) then (\PUTBASEFLOATP RESULTBASE I ELT1) else (\PUTBASEFLOATP RESULTBASE I ELT2] RESULT]) (EARRAY-FLOAT-MIN-REDUCE [LAMBDA (FLOATVECTOR) (* jop: "17-Jun-86 16:33") (* *) (LET ((SIZE (EARRAY-TOTAL-SIZE FLOATVECTOR))) (if (IGREATERP SIZE 0) then (AREF FLOATVECTOR (\BLKFMIN (ARRAYBASE FLOATVECTOR) 0 SIZE]) (EARRAY-FLOAT-MINUS [LAMBDA (ARRAY RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (EARRAY-SCALARP ARRAY) then (FMINUS ARRAY) else [bind (ARRAYBASE ←(ARRAYBASE ARRAY)) (RESULTBASE ←(ARRAYBASE RESULT)) for I from 0 upto (MUL2 ( EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (UFMINUS (\GETBASEFLOATP ARRAYBASE I] RESULT]) (EARRAY-FLOAT-PLUS [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (PLUS ARRAY1 ARRAY2) else (if (EARRAY-SCALARP ARRAY1) then [bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FPLUS SCALAR (\GETBASEFLOATP ARRAYBASE2 I] elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FPLUS (\GETBASEFLOATP ARRAYBASE1 I) SCALAR))) else (\BLKFPLUS (ARRAYBASE ARRAY1) (ARRAYBASE ARRAY2) (ARRAYBASE RESULT) (EARRAY-TOTAL-SIZE RESULT))) RESULT]) (EARRAY-FLOAT-PLUS-REDUCE [LAMBDA (FLOATVECTOR) (* jop: "17-Jun-86 16:30") (* *) (LET ((SIZE (EARRAY-TOTAL-SIZE FLOATVECTOR))) (if (IGREATERP SIZE 0) then (\POLYNOM 1.0 (ARRAYBASE FLOATVECTOR) (SUB1 SIZE]) (EARRAY-FLOAT-PLUS-SCAN [LAMBDA (FLOATSOURCE FLOATSINK) (* jop: "17-Jun-86 16:48") (* *) (LET ((SIZE (EARRAY-TOTAL-SIZE FLOATSOURCE))) (bind (SOURCEBASE ←(ARRAYBASE FLOATSOURCE)) (SINKBASE ←(ARRAYBASE FLOATSINK)) (TOTAL ← 0.0) declare (TYPE FLOATP TOTAL) for I from 0 upto (MUL2 SIZE) by 2 do (SETQ TOTAL (FPLUS TOTAL (\GETBASEFLOATP SOURCEBASE I))) (\PUTBASEFLOATP SINKBASE I TOTAL)) FLOATSINK]) (EARRAY-FLOAT-QUOTIENT [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (QUOTIENT ARRAY1 ARRAY2) else [if (EARRAY-SCALARP ARRAY1) then [bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FQUOTIENT SCALAR (\GETBASEFLOATP ARRAYBASE2 I] elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FQUOTIENT (\GETBASEFLOATP ARRAYBASE1 I) SCALAR))) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FQUOTIENT (\GETBASEFLOATP ARRAYBASE1 I) (\GETBASEFLOATP ARRAYBASE2 I] RESULT]) (EARRAY-FLOAT-RECIPROCAL [LAMBDA (ARRAY RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (EARRAY-SCALARP ARRAY) then (FQUOTIENT 1.0 ARRAY) else [bind (ARRAYBASE ←(ARRAYBASE ARRAY)) (RESULTBASE ←(ARRAYBASE RESULT)) for I from 0 upto (MUL2 ( EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FQUOTIENT 1.0 (\GETBASEFLOATP ARRAYBASE I] RESULT]) (EARRAY-FLOAT-REMAINDER [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (REMAINDER ARRAY1 ARRAY2) else [if (EARRAY-SCALARP ARRAY1) then [bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (UFREMAINDER SCALAR (\GETBASEFLOATP ARRAYBASE2 I] elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (UFREMAINDER (\GETBASEFLOATP ARRAYBASE1 I) SCALAR))) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (UFREMAINDER (\GETBASEFLOATP ARRAYBASE1 I) (\GETBASEFLOATP ARRAYBASE2 I] RESULT]) (EARRAY-FLOAT-TIMES [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:24") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (TIMES ARRAY1 ARRAY2) else (if (EARRAY-SCALARP ARRAY1) then [bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FTIMES SCALAR (\GETBASEFLOATP ARRAYBASE2 I] elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (RESULTBASE ←(ARRAYBASE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (MUL2 (EARRAY-TOTAL-SIZE RESULT)) by 2 do (\PUTBASEFLOATP RESULTBASE I (FTIMES (\GETBASEFLOATP ARRAYBASE1 I) SCALAR))) else (\BLKFTIMES (ARRAYBASE ARRAY1) (ARRAYBASE ARRAY2) (ARRAYBASE RESULT) (EARRAY-TOTAL-SIZE RESULT))) RESULT]) (EARRAY-FLOAT-TIMES-SCAN [LAMBDA (FLOATSOURCE FLOATSINK) (* jop: "17-Jun-86 16:47") (* *) (LET ((SIZE (EARRAY-TOTAL-SIZE FLOATSOURCE))) (bind (SOURCEBASE ←(ARRAYBASE FLOATSOURCE)) (SINKBASE ←(ARRAYBASE FLOATSINK)) (PROD ← 1.0) declare (TYPE FLOATP PROD) for I from 0 upto (MUL2 SIZE) by 2 do (SETQ PROD (FTIMES PROD (\GETBASEFLOATP SOURCEBASE I))) (\PUTBASEFLOATP SINKBASE I PROD)) FLOATSINK]) (EARRAY-FLOOR [LAMBDA (ARRAY RESULT) (* jop: "15-Jun-86 15:41") (* *) (EARRAY-MONADIC-APPLY (FUNCTION FLOOR) ARRAY RESULT]) (EARRAY-FLOOR-FN [LAMBDA (OP ARRAY RESULT) (* jop: "23-Jun-86 12:05") (* *) (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION SCALAR-FLOOR) ARRAY RESULT]) (EARRAY-GENERIC-DIFFERENCE [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:24") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (DIFFERENCE ARRAY1 ARRAY2) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (DIFFERENCE ARRAY1 (AREF LINEARIZEDARRAY I)) LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (DIFFERENCE (AREF LINEARIZEDARRAY I) ARRAY2) LINEARIZEDRESULT I)) else (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (DIFFERENCE (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I)) LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-PLUS [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:24") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (PLUS ARRAY1 ARRAY2) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (PLUS ARRAY1 (AREF LINEARIZEDARRAY I)) LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (PLUS (AREF LINEARIZEDARRAY I) ARRAY2) LINEARIZEDRESULT I)) else (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (PLUS (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I)) LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-PLUS-REDUCE [LAMBDA (VECTOR) (* jop: "17-Jun-86 16:30") (* *) (LET ((SIZE (EARRAY-TOTAL-SIZE VECTOR))) (if (IGREATERP SIZE 0) then (bind (RESULT ← 0) for I from 0 upto SIZE do (SETQ RESULT (PLUS RESULT (AREF VECTOR I))) finally (RETURN RESULT]) (EARRAY-GENERIC-QUOTIENT [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:24") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (PLUS ARRAY1 ARRAY2) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (QUOTIENT ARRAY1 (AREF LINEARIZEDARRAY I)) LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (QUOTIENT (AREF LINEARIZEDARRAY I) ARRAY2) LINEARIZEDRESULT I)) else (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (QUOTIENT (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I)) LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-TIMES [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:24") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (PLUS ARRAY1 ARRAY2) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (TIMES ARRAY1 (AREF LINEARIZEDARRAY I)) LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (TIMES (AREF LINEARIZEDARRAY I) ARRAY2) LINEARIZEDRESULT I)) else (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (TIMES (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I)) LINEARIZEDRESULT I))) RESULT]) (EARRAY-MAX [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:28") (* *) (EARRAY-DYADIC-APPLY (FUNCTION MAX) ARRAY1 ARRAY2 RESULT (EARRAY-COMMON-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-MAX-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:22") (* *) (if (AND (USE-FLOAT-P ARRAY1 ARRAY2) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-MAX ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION MAX) ARRAY1 ARRAY2 RESULT]) (EARRAY-MAX-REDUCE [LAMBDA (ARRAY AXIS RESULT) (* jop: "12-Jun-86 22:37") (* *) (EARRAY-REDUCE (FUNCTION MAX) ARRAY AXIS RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-MAX-REDUCE-FN [LAMBDA (VECTOR) (* jop: "17-Jun-86 16:32") (* *) (if (EQ (EARRAY-ELEMENT-TYPE VECTOR) (QUOTE SINGLE-FLOAT)) then (EARRAY-FLOAT-MAX-REDUCE VECTOR) else (EARRAY-GENERIC-VECTOR-REDUCE (FUNCTION MAX) VECTOR]) (EARRAY-MEAN [LAMBDA (VECTOR) (* jop: "17-Jun-86 16:07") (* *) (FQUOTIENT (EARRAY-PLUS-REDUCE VECTOR) (EARRAY-TOTAL-SIZE VECTOR]) (EARRAY-MEAN-REDUCE [LAMBDA (ARRAY AXIS RESULT) (* jop: "17-Jun-86 16:10") (* *) (EARRAY-REDUCE (FUNCTION MEAN) ARRAY AXIS RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-MIN [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:29") (* *) (EARRAY-DYADIC-APPLY (FUNCTION MIN) ARRAY1 ARRAY2 RESULT (EARRAY-COMMON-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-MIN-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:23") (* *) (if (AND (USE-FLOAT-P ARRAY1 ARRAY2) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-MIN ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION MIN) ARRAY1 ARRAY2 RESULT]) (EARRAY-MIN-REDUCE [LAMBDA (ARRAY AXIS RESULT) (* jop: "12-Jun-86 22:35") (* *) (EARRAY-REDUCE (FUNCTION MIN) ARRAY AXIS RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-MIN-REDUCE-FN [LAMBDA (VECTOR) (* jop: "17-Jun-86 16:33") (* *) (if (EQ (EARRAY-ELEMENT-TYPE VECTOR) (QUOTE SINGLE-FLOAT)) then (EARRAY-FLOAT-MIN-REDUCE VECTOR) else (EARRAY-GENERIC-VECTOR-REDUCE (FUNCTION MIN) VECTOR]) (EARRAY-MINUS [LAMBDA (ARRAY RESULT) (* jop: "13-Jun-86 12:12") (* *) (EARRAY-MONADIC-APPLY (FUNCTION MINUS) ARRAY RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-MINUS-FN [LAMBDA (OP ARRAY RESULT) (* jop: "13-Jun-86 11:53") (* *) (if (AND (EQ (EARRAY-ELEMENT-TYPE ARRAY) (QUOTE SINGLE-FLOAT)) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-MINUS ARRAY RESULT) else (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION MINUS) ARRAY RESULT]) (EARRAY-PLUS [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:29") (* *) (EARRAY-DYADIC-APPLY (FUNCTION PLUS) ARRAY1 ARRAY2 RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-PLUS-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:23") (* *) (if (AND (USE-FLOAT-P ARRAY1 ARRAY2) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-PLUS ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-PLUS ARRAY1 ARRAY2 RESULT]) (EARRAY-PLUS-REDUCE [LAMBDA (ARRAY AXIS RESULT) (* jop: "12-Jun-86 22:35") (* *) (EARRAY-REDUCE (FUNCTION PLUS) ARRAY AXIS RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-PLUS-REDUCE-FN [LAMBDA (VECTOR) (* jop: "17-Jun-86 16:30") (* *) (if (EQ (EARRAY-ELEMENT-TYPE VECTOR) (QUOTE SINGLE-FLOAT)) then (EARRAY-FLOAT-PLUS-REDUCE VECTOR) else (EARRAY-GENERIC-PLUS-REDUCE VECTOR]) (EARRAY-PLUS-SCAN [LAMBDA (ARRAY AXIS RESULT) (* jop: "12-Jun-86 22:56") (* *) (EARRAY-SCAN (FUNCTION PLUS) ARRAY AXIS RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-PLUS-SCAN-FN [LAMBDA (VECTOR RESULT) (* jop: "17-Jun-86 16:48") (* *) (if (AND (EQ (EARRAY-ELEMENT-TYPE VECTOR) (QUOTE SINGLE-FLOAT)) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-PLUS-SCAN VECTOR RESULT) else (EARRAY-GENERIC-VECTOR-SCAN (QUOTE PLUS) VECTOR RESULT]) (EARRAY-PLUS-SWEEP [LAMBDA (ARRAY1 ARRAY2 AXIS RESULT) (* jop: "17-Jun-86 21:17") (* *) (EARRAY-SWEEP (FUNCTION PLUS) ARRAY1 ARRAY2 AXIS RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-QUOTIENT [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:30") (* *) (EARRAY-DYADIC-APPLY (FUNCTION QUOTIENT) ARRAY1 ARRAY2 RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-QUOTIENT-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:24") (* *) (if (AND (USE-FLOAT-P ARRAY1 ARRAY2) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-QUOTIENT ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-QUOTIENT ARRAY1 ARRAY2 RESULT]) (EARRAY-QUOTIENT-SWEEP [LAMBDA (ARRAY1 ARRAY2 AXIS RESULT) (* jop: "17-Jun-86 21:18") (* *) (EARRAY-SWEEP (FUNCTION QUOTIENT) ARRAY1 ARRAY2 AXIS RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-RECIPROCAL [LAMBDA (ARRAY RESULT) (* jop: "15-Jun-86 15:37") (* *) (EARRAY-MONADIC-APPLY (FUNCTION RECIPROCAL) ARRAY RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-RECIPROCAL-FN [LAMBDA (OP ARRAY RESULT) (* jop: "13-Jun-86 11:45") (* *) (if (AND (EQ (EARRAY-ELEMENT-TYPE ARRAY) (QUOTE SINGLE-FLOAT)) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-RECIPROCAL ARRAY RESULT) else (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION SCALAR-RECIPROCAL) ARRAY RESULT]) (EARRAY-REMAINDER [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:31") (* *) (EARRAY-DYADIC-APPLY (FUNCTION REMAINDER) ARRAY1 ARRAY2 RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-REMAINDER-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:25") (* *) (if (AND (USE-FLOAT-P ARRAY1 ARRAY2) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-REMAINDER ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION REMAINDER) ARRAY1 ARRAY2 RESULT]) (EARRAY-ROUND [LAMBDA (ARRAY RESULT) (* jop: "15-Jun-86 15:42") (* *) (EARRAY-MONADIC-APPLY (FUNCTION ROUND) ARRAY RESULT]) (EARRAY-ROUND-FN [LAMBDA (OP ARRAY RESULT) (* jop: "23-Jun-86 12:05") (* *) (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION SCALAR-ROUND) ARRAY RESULT]) (EARRAY-SAMPLE-VARIANCE [LAMBDA (VECTOR) (* jop: "25-Jun-86 09:33") (* *) (LET ((M (EARRAY-MEAN VECTOR)) (SS (EARRAY-MATRIX-TIMES VECTOR VECTOR))) (FQUOTIENT (FDIFFERENCE SS (FTIMES M M)) (SUB1 (EARRAY-TOTAL-SIZE VECTOR]) (EARRAY-SAMPLE-VARIANCE-REDUCE [LAMBDA (ARRAY AXIS RESULT) (* jop: "25-Jun-86 09:08") (* *) (EARRAY-REDUCE (FUNCTION SAMPLE-VARIANCE) ARRAY AXIS RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-TIMES [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:30") (* *) (EARRAY-DYADIC-APPLY (FUNCTION TIMES) ARRAY1 ARRAY2 RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-TIMES-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:26") (* *) (if (AND (USE-FLOAT-P ARRAY1 ARRAY2) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-TIMES ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-TIMES ARRAY1 ARRAY2 RESULT]) (EARRAY-TIMES-SCAN [LAMBDA (ARRAY AXIS RESULT) (* jop: "12-Jun-86 22:56") (* *) (EARRAY-SCAN (FUNCTION TIMES) ARRAY AXIS RESULT (EARRAY-ELEMENT-TYPE ARRAY]) (EARRAY-TIMES-SCAN-FN [LAMBDA (VECTOR RESULT) (* jop: "17-Jun-86 16:48") (* *) (if (AND (EQ (EARRAY-ELEMENT-TYPE VECTOR) (QUOTE SINGLE-FLOAT)) (EQ (EARRAY-ELEMENT-TYPE RESULT) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-TIMES-SCAN VECTOR RESULT) else (EARRAY-GENERIC-VECTOR-SCAN (FUNCTION TIMES) VECTOR RESULT]) (EARRAY-TIMES-SWEEP [LAMBDA (ARRAY1 ARRAY2 AXIS RESULT) (* jop: "17-Jun-86 21:18") (* *) (EARRAY-SWEEP (FUNCTION TIMES) ARRAY1 ARRAY2 AXIS RESULT (EARRAY-ARITH-TYPE (EARRAY-ELEMENT-TYPE ARRAY1) (EARRAY-ELEMENT-TYPE ARRAY2]) (EARRAY-VARIANCE [LAMBDA (VECTOR) (* jop: "25-Jun-86 09:33") (* *) (LET ((M (EARRAY-MEAN VECTOR)) (SS (EARRAY-MATRIX-TIMES VECTOR VECTOR))) (FQUOTIENT (FDIFFERENCE SS (FTIMES M M)) (EARRAY-TOTAL-SIZE VECTOR]) (EARRAY-VARIANCE-REDUCE [LAMBDA (ARRAY AXIS RESULT) (* jop: "24-Jun-86 23:37") (* *) (EARRAY-REDUCE (FUNCTION VARIANCE) ARRAY AXIS RESULT (EARRAY-ELEMENT-TYPE ARRAY]) ) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (DECLARE: DOEVAL@COMPILE DONTCOPY (LOCALVARS . T) ) ) (PUTPROPS EARRAY-ARITHFNS COPYRIGHT ("Xerox Corporation" 1986)) (DECLARE: DONTCOPY (FILEMAP (NIL (2390 39605 (EARRAY-ABS 2400 . 2634) (EARRAY-ABS-FN 2636 . 3084) (EARRAY-CEILING 3086 . 3297) (EARRAY-CEILING-FN 3299 . 3527) (EARRAY-DIFFERENCE 3529 . 3851) (EARRAY-DIFFERENCE-FN 3853 . 4256) (EARRAY-DIFFERENCE-SWEEP 4258 . 4582) (EARRAY-FIX 4584 . 4787) (EARRAY-FIX-FN 4789 . 5141) ( EARRAY-FLOAT 5143 . 5374) (EARRAY-FLOAT-ABS 5376 . 5888) (EARRAY-FLOAT-DIFFERENCE 5890 . 7166) ( EARRAY-FLOAT-FIX 7168 . 7688) (EARRAY-FLOAT-FLOAT 7690 . 8198) (EARRAY-FLOAT-FN 8200 . 8559) ( EARRAY-FLOAT-MAX 8561 . 10423) (EARRAY-FLOAT-MAX-REDUCE 10425 . 10760) (EARRAY-FLOAT-MIN 10762 . 12615 ) (EARRAY-FLOAT-MIN-REDUCE 12617 . 12952) (EARRAY-FLOAT-MINUS 12954 . 13472) (EARRAY-FLOAT-PLUS 13474 . 14710) (EARRAY-FLOAT-PLUS-REDUCE 14712 . 15032) (EARRAY-FLOAT-PLUS-SCAN 15034 . 15577) ( EARRAY-FLOAT-QUOTIENT 15579 . 17099) (EARRAY-FLOAT-RECIPROCAL 17101 . 17649) (EARRAY-FLOAT-REMAINDER 17651 . 19185) (EARRAY-FLOAT-TIMES 19187 . 20434) (EARRAY-FLOAT-TIMES-SCAN 20436 . 20976) ( EARRAY-FLOOR 20978 . 21185) (EARRAY-FLOOR-FN 21187 . 21411) (EARRAY-GENERIC-DIFFERENCE 21413 . 22911) (EARRAY-GENERIC-PLUS 22913 . 24316) (EARRAY-GENERIC-PLUS-REDUCE 24318 . 24746) ( EARRAY-GENERIC-QUOTIENT 24748 . 26191) (EARRAY-GENERIC-TIMES 26193 . 27603) (EARRAY-MAX 27605 . 27915) (EARRAY-MAX-FN 27917 . 28336) (EARRAY-MAX-REDUCE 28338 . 28577) (EARRAY-MAX-REDUCE-FN 28579 . 28936) (EARRAY-MEAN 28938 . 29157) (EARRAY-MEAN-REDUCE 29159 . 29400) (EARRAY-MIN 29402 . 29712) ( EARRAY-MIN-FN 29714 . 30133) (EARRAY-MIN-REDUCE 30135 . 30374) (EARRAY-MIN-REDUCE-FN 30376 . 30733) ( EARRAY-MINUS 30735 . 30977) (EARRAY-MINUS-FN 30979 . 31437) (EARRAY-PLUS 31439 . 31749) ( EARRAY-PLUS-FN 31751 . 32136) (EARRAY-PLUS-REDUCE 32138 . 32379) (EARRAY-PLUS-REDUCE-FN 32381 . 32709) (EARRAY-PLUS-SCAN 32711 . 32946) (EARRAY-PLUS-SCAN-FN 32948 . 33407) (EARRAY-PLUS-SWEEP 33409 . 33721 ) (EARRAY-QUOTIENT 33723 . 34041) (EARRAY-QUOTIENT-FN 34043 . 34440) (EARRAY-QUOTIENT-SWEEP 34442 . 34762) (EARRAY-RECIPROCAL 34764 . 35012) (EARRAY-RECIPROCAL-FN 35014 . 35490) (EARRAY-REMAINDER 35492 . 35812) (EARRAY-REMAINDER-FN 35814 . 36251) (EARRAY-ROUND 36253 . 36460) (EARRAY-ROUND-FN 36462 . 36686) (EARRAY-SAMPLE-VARIANCE 36688 . 37032) (EARRAY-SAMPLE-VARIANCE-REDUCE 37034 . 37297) ( EARRAY-TIMES 37299 . 37611) (EARRAY-TIMES-FN 37613 . 38001) (EARRAY-TIMES-SCAN 38003 . 38240) ( EARRAY-TIMES-SCAN-FN 38242 . 38707) (EARRAY-TIMES-SWEEP 38709 . 39023) (EARRAY-VARIANCE 39025 . 39352) (EARRAY-VARIANCE-REDUCE 39354 . 39603))))) STOP