(FILECREATED "25-Jun-86 01:28:45" {QV}<PEDERSEN>LISP>EARRAY-CMPFNS.;9 33450 changes to: (FNS EARRAY-GENERIC-NOT-EQUAL EARRAY-GENERIC-MEMBER EARRAY-GENERIC-INDEXOF EARRAY-FLOAT-EQP EARRAY-FLOAT-GEQ EARRAY-FLOAT-GREATERP EARRAY-FLOAT-INDEXOF EARRAY-FLOAT-LEQ EARRAY-FLOAT-LESSP EARRAY-FLOAT-MEMBER EARRAY-FLOAT-NOT-EQP EARRAY-GENERIC-EQUAL EARRAY-GENERIC-GEQ EARRAY-GENERIC-GREATERP EARRAY-GENERIC-LEQ EARRAY-GENERIC-LESSP) previous date: "23-Jun-86 14:08:56" {QV}<PEDERSEN>LISP>EARRAY-CMPFNS.;6) (* Copyright (c) 1986 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT EARRAY-CMPFNSCOMS) (RPAQQ EARRAY-CMPFNSCOMS ((FNS EARRAY-AND EARRAY-AND-FN EARRAY-EQP EARRAY-EQP-FN EARRAY-EQUAL EARRAY-EQUAL-FN EARRAY-FLOAT-EQP EARRAY-FLOAT-GEQ EARRAY-FLOAT-GREATERP EARRAY-FLOAT-INDEXOF EARRAY-FLOAT-LEQ EARRAY-FLOAT-LESSP EARRAY-FLOAT-MEMBER EARRAY-FLOAT-NOT-EQP EARRAY-GENERIC-EQUAL EARRAY-GENERIC-GEQ EARRAY-GENERIC-GREATERP EARRAY-GENERIC-INDEXOF EARRAY-GENERIC-LEQ EARRAY-GENERIC-LESSP EARRAY-GENERIC-MEMBER EARRAY-GENERIC-NOT-EQUAL EARRAY-GEQ EARRAY-GEQ-FN EARRAY-GREATERP EARRAY-GREATERP-FN EARRAY-INDEXOF EARRAY-LEQ EARRAY-LEQ-FN EARRAY-LESSP EARRAY-LESSP-FN EARRAY-MEMBER EARRAY-NAND EARRAY-NAND-FN EARRAY-NOR EARRAY-NOR-FN EARRAY-NOT EARRAY-NOT-EQP EARRAY-NOT-EQP-FN EARRAY-NOT-EQUAL EARRAY-NOT-EQUAL-FN EARRAY-NOT-FN EARRAY-OR EARRAY-OR-FN EARRAY-XOR EARRAY-XOR-FN) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (LOCALVARS . T)))) (DEFINEQ (EARRAY-AND [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:28") (* *) (EARRAY-DYADIC-APPLY (FUNCTION AND) ARRAY1 ARRAY2 RESULT]) (EARRAY-AND-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 12:09") (* *) (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION SCALAR-AND) ARRAY1 ARRAY2 RESULT]) (EARRAY-EQP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 14:48") (* *) (EARRAY-DYADIC-APPLY (FUNCTION EQP) ARRAY1 ARRAY2 RESULT]) (EARRAY-EQP-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:04") (* *) (if (USE-FLOAT-P ARRAY1 ARRAY2) then (EARRAY-FLOAT-EQP ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION SCALAR-EQP) ARRAY1 ARRAY2 RESULT]) (EARRAY-EQUAL [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:12") (* *) (EARRAY-DYADIC-APPLY (FUNCTION EQUAL) ARRAY1 ARRAY2 RESULT]) (EARRAY-EQUAL-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 12:08") (* *) (if (USE-FLOAT-P ARRAY1 ARRAY2) then (EARRAY-FLOAT-EQP ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-EQUAL ARRAY1 ARRAY2 RESULT]) (EARRAY-FLOAT-EQP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (EQP ARRAY1 ARRAY2)) else (if (EARRAY-SCALARP ARRAY1) then (bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFEQP SCALAR (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (UFEQP (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) SCALAR)) LINEARIZEDRESULT I)) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFEQP (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I))) RESULT]) (EARRAY-FLOAT-GEQ [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (GEQ ARRAY1 ARRAY2)) else (if (EARRAY-SCALARP ARRAY1) then (bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFGEQ SCALAR (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (UFGEQ (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) SCALAR)) LINEARIZEDRESULT I)) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFGEQ (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I))) RESULT]) (EARRAY-FLOAT-GREATERP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (GREATERP ARRAY1 ARRAY2)) else (if (EARRAY-SCALARP ARRAY1) then (bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFGREATERP SCALAR (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (UFGREATERP (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) SCALAR)) LINEARIZEDRESULT I)) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFGREATERP (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I))) RESULT]) (EARRAY-FLOAT-INDEXOF [LAMBDA (ARRAY VECTOR RESULT) (* jop: "23-Jun-86 22:23") (* *) (LET ((VECTORSIZE (EARRAY-TOTAL-SIZE VECTOR)) (VECTORBASE (ARRAYBASE VECTOR))) (if (EARRAY-SCALARP ARRAY) then (OR [bind (SCALAR ←(FLOAT ARRAY)) declare (TYPE FLOATP SCALAR) for I from 0 upto VECTORSIZE thereis (UFEQP SCALAR (\GETBASEFLOATP VECTORBASE (MUL2 I] VECTORSIZE) else (bind (ARRAYBASE ←(ARRAYBASE ARRAY)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (OR [bind (SCALAR ←(\GETBASEFLOATP ARRAYBASE (MUL2 I))) declare (TYPE FLOATP SCALAR) for J from 0 upto VECTORSIZE thereis (UFEQP SCALAR (\GETBASEFLOATP VECTORBASE (MUL2 J] VECTORSIZE) LINEARIZEDRESULT I)) RESULT]) (EARRAY-FLOAT-LEQ [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LEQ ARRAY1 ARRAY2) else (if (LOGICAL-VALUE (EARRAY-SCALARP ARRAY1)) then (bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFLEQ SCALAR (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (UFLEQ (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) SCALAR)) LINEARIZEDRESULT I)) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFLEQ (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I))) RESULT]) (EARRAY-FLOAT-LESSP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (LESSP ARRAY1 ARRAY2)) else (if (EARRAY-SCALARP ARRAY1) then (bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFLESSP SCALAR (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (UFLESSP (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) SCALAR)) LINEARIZEDRESULT I)) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (UFLESSP (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I))) RESULT]) (EARRAY-FLOAT-MEMBER [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (EARRAY-SCALARP ARRAY1) then [LOGICAL-VALUE (if (EARRAY-SCALARP ARRAY2) then (EQP ARRAY1 ARRAY2) else (bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE ARRAY2) thereis (UFEQP SCALAR (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] else (if (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (UFEQP (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) SCALAR)) LINEARIZEDRESULT I)) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (bind (SCALAR ←(\GETBASEFLOATP ARRAYBASE1 (MUL2 I))) declare (TYPE FLOATP SCALAR) for J from 0 upto (EARRAY-TOTAL-SIZE ARRAY2) thereis (UFEQP SCALAR (\GETBASEFLOATP ARRAYBASE2 (MUL2 J] LINEARIZEDRESULT I))) RESULT]) (EARRAY-FLOAT-NOT-EQP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (NOT (EQP ARRAY1 ARRAY2))) else (if (EARRAY-SCALARP ARRAY1) then (bind (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (NOT (UFEQP SCALAR (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) declare (TYPE FLOATP SCALAR) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (NOT (UFEQP (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) SCALAR))) LINEARIZEDRESULT I)) else (bind (ARRAYBASE1 ←(ARRAYBASE ARRAY1)) (ARRAYBASE2 ←(ARRAYBASE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (NOT (UFEQP (\GETBASEFLOATP ARRAYBASE1 (MUL2 I)) (\GETBASEFLOATP ARRAYBASE2 (MUL2 I] LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-EQUAL [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (NOT (EQUAL ARRAY1 ARRAY2))) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (NOT (EQUAL ARRAY1 (AREF LINEARIZEDARRAY2 I] LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (NOT (EQUAL (AREF LINEARIZEDARRAY1 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 [LOGICAL-VALUE (NOT (EQUAL (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I] LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-GEQ [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (GEQ ARRAY1 ARRAY2)) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) for I from 0 upto ( EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (GEQ SCALAR (AREF LINEARIZEDARRAY2 I))) LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) for I from 0 upto ( EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (GEQ (AREF LINEARIZEDARRAY1 I) SCALAR)) 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 (LOGICAL-VALUE (GEQ (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I))) LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-GREATERP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (GREATERP ARRAY1 ARRAY2)) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) for I from 0 upto ( EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (GREATERP SCALAR (AREF LINEARIZEDARRAY2 I)) ) LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) for I from 0 upto ( EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (GREATERP (AREF LINEARIZEDARRAY1 I) SCALAR)) 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 (LOGICAL-VALUE (GREATERP (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I))) LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-INDEXOF [LAMBDA (ARRAY VECTOR RESULT) (* jop: "24-Jun-86 00:28") (* *) (if (EARRAY-SCALARP ARRAY) then (OR (for I from 0 upto (EARRAY-TOTAL-SIZE VECTOR) thereis (EQUAL ARRAY (AREF VECTOR I))) (EARRAY-TOTAL-SIZE VECTOR)) else (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (VECTORSIZE ←(EARRAY-TOTAL-SIZE VECTOR)) for I from 0 upto ( EARRAY-TOTAL-SIZE RESULT) do (ASET (OR (bind (ELT ←(AREF LINEARIZEDARRAY I)) for J from 0 upto VECTORSIZE thereis (EQUAL ELT (AREF VECTOR J))) VECTORSIZE) LINEARIZEDRESULT I)) RESULT]) (EARRAY-GENERIC-LEQ [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (LEQ ARRAY1 ARRAY2)) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) for I from 0 upto ( EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (LEQ SCALAR (AREF LINEARIZEDARRAY2 I))) LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) for I from 0 upto ( EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (LEQ (AREF LINEARIZEDARRAY1 I) SCALAR)) 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 (LOGICAL-VALUE (LEQ (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I))) LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-LESSP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 22:23") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (LESSP ARRAY1 ARRAY2)) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY1)) for I from 0 upto ( EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (LESSP SCALAR (AREF LINEARIZEDARRAY2 I))) LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) (SCALAR ←(FLOAT ARRAY2)) for I from 0 upto ( EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (LESSP (AREF LINEARIZEDARRAY1 I) SCALAR)) 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 (LOGICAL-VALUE (LESSP (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I))) LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-MEMBER [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "24-Jun-86 00:28") (* *) (if (EARRAY-SCALARP ARRAY1) then [LOGICAL-VALUE (if (EARRAY-SCALARP ARRAY2) then (EQUAL ARRAY1 ARRAY2) else (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY2)) for I from 0 upto (EARRAY-TOTAL-SIZE ARRAY2) thereis (EQUAL ARRAY1 (AREF LINEARIZEDARRAY I] else (if (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (EQUAL (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 [LOGICAL-VALUE (bind (ELT ←(AREF LINEARIZEDARRAY1 I)) for J from 0 upto (EARRAY-TOTAL-SIZE ARRAY2) thereis (EQUAL ELT (AREF LINEARIZEDARRAY2 J] LINEARIZEDRESULT I))) RESULT]) (EARRAY-GENERIC-NOT-EQUAL [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "25-Jun-86 01:14") (* *) (if (AND (EARRAY-SCALARP ARRAY1) (EARRAY-SCALARP ARRAY2)) then (LOGICAL-VALUE (NOT (EQUAL ARRAY1 ARRAY2))) else (if (EARRAY-SCALARP ARRAY1) then (bind (LINEARIZEDARRAY2 ←(EARRAY-LINEARIZE ARRAY2)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET [LOGICAL-VALUE (NOT (EQUAL ARRAY1 (AREF LINEARIZEDARRAY2 I] LINEARIZEDRESULT I)) elseif (EARRAY-SCALARP ARRAY2) then (bind (LINEARIZEDARRAY1 ←(EARRAY-LINEARIZE ARRAY1)) (LINEARIZEDRESULT ←(EARRAY-LINEARIZE RESULT)) for I from 0 upto (EARRAY-TOTAL-SIZE RESULT) do (ASET (LOGICAL-VALUE (NOT (EQUAL (AREF LINEARIZEDARRAY1 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 [LOGICAL-VALUE (NOT (EQUAL (AREF LINEARIZEDARRAY1 I) (AREF LINEARIZEDARRAY2 I] LINEARIZEDRESULT I))) RESULT]) (EARRAY-GEQ [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:53") (* *) (EARRAY-DYADIC-APPLY (FUNCTION GEQ) ARRAY1 ARRAY2 RESULT]) (EARRAY-GEQ-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:25") (* *) (if (USE-FLOAT-P ARRAY1 ARRAY2) then (EARRAY-FLOAT-GEQ ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-GEQ ARRAY1 ARRAY2 RESULT]) (EARRAY-GREATERP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:54") (* *) (EARRAY-DYADIC-APPLY (FUNCTION GREATERP) ARRAY1 ARRAY2 RESULT]) (EARRAY-GREATERP-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:25") (* *) (if (USE-FLOAT-P ARRAY1 ARRAY2) then (EARRAY-FLOAT-GREATERP ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-GREATERP ARRAY1 ARRAY2 RESULT]) (EARRAY-INDEXOF [LAMBDA (ARRAY VECTOR RESULT) (* jop: " 9-Jun-86 16:15") (* *) (if (NOT (EQ (EARRAY-RANK VECTOR) 1)) then (ERROR "Not a vector" VECTOR)) (SETQ RESULT (TEST-RESULT RESULT (EARRAY-DIMENSIONS ARRAY))) (if (AND (OR (EQ (EARRAY-ELEMENT-TYPE ARRAY) (QUOTE SINGLE-FLOAT)) (FIXP ARRAY)) (EQ (EARRAY-ELEMENT-TYPE VECTOR) (QUOTE SINGLE-FLOAT))) then (EARRAY-FLOAT-INDEXOF ARRAY VECTOR RESULT) else (EARRAY-GENERIC-INDEXOF ARRAY VECTOR RESULT]) (EARRAY-LEQ [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:55") (* *) (EARRAY-DYADIC-APPLY (FUNCTION LEQ) ARRAY1 ARRAY2 RESULT]) (EARRAY-LEQ-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:25") (* *) (if (USE-FLOAT-P ARRAY1 ARRAY2) then (EARRAY-FLOAT-LEQ ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-LEQ ARRAY1 ARRAY2 RESULT]) (EARRAY-LESSP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "13-Jun-86 12:55") (* *) (EARRAY-DYADIC-APPLY (FUNCTION LESSP) ARRAY1 ARRAY2 RESULT]) (EARRAY-LESSP-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:25") (* *) (if (USE-FLOAT-P ARRAY1 ARRAY2) then (EARRAY-FLOAT-LESSP ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-LESSP ARRAY1 ARRAY2 RESULT]) (EARRAY-MEMBER [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: " 9-Jun-86 15:52") (* *) (SETQ RESULT (EARRAY-TEST-RESULT RESULT (EARRAY-DIMENSIONS ARRAY1))) (if (AND (OR (EQ (EARRAY-ELEMENT-TYPE ARRAY1) (QUOTE SINGLE-FLOAT)) (FIXP ARRAY1)) (OR (EQ (EARRAY-ELEMENT-TYPE ARRAY2) (QUOTE SINGLE-FLOAT)) (FIXP ARRAY2))) then (EARRAY-FLOAT-MEMBER ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-MEMBER ARRAY1 ARRAY2 RESULT]) (EARRAY-NAND [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:29") (* *) (EARRAY-DYADIC-APPLY (FUNCTION NAND) ARRAY1 ARRAY2 RESULT]) (EARRAY-NAND-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 12:09") (* *) (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION SCALAR-NAND) ARRAY1 ARRAY2 RESULT]) (EARRAY-NOR [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:30") (* *) (EARRAY-DYADIC-APPLY (FUNCTION NOR) ARRAY1 ARRAY2 RESULT]) (EARRAY-NOR-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 12:09") (* *) (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION SCALAR-NOR) ARRAY1 ARRAY2 RESULT]) (EARRAY-NOT [LAMBDA (ARRAY RESULT) (* jop: "15-Jun-86 15:31") (* *) (EARRAY-MONADIC-APPLY (FUNCTION NOT) ARRAY RESULT]) (EARRAY-NOT-EQP [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 14:54") (* *) (EARRAY-DYADIC-APPLY (FUNCTION NOT-EQP) ARRAY1 ARRAY2 RESULT]) (EARRAY-NOT-EQP-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:07") (* *) (if (USE-FLOAT-P ARRAY1 ARRAY2) then (EARRAY-FLOAT-NOT-EQP ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION SCALAR-NOT-EQP) ARRAY1 ARRAY2 RESULT]) (EARRAY-NOT-EQUAL [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:14") (* *) (EARRAY-DYADIC-APPLY (FUNCTION NOT-EQUAL) ARRAY1 ARRAY2 RESULT]) (EARRAY-NOT-EQUAL-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 12:08") (* *) (if (USE-FLOAT-P ARRAY1 ARRAY2) then (EARRAY-FLOAT-NOT-EQP ARRAY1 ARRAY2 RESULT) else (EARRAY-GENERIC-NOT-EQUAL ARRAY1 ARRAY2 RESULT]) (EARRAY-NOT-FN [LAMBDA (OP ARRAY RESULT) (* jop: "23-Jun-86 12:05") (* *) (EARRAY-GENERIC-MONADIC-APPLY (FUNCTION SCALAR-NOT) ARRAY RESULT]) (EARRAY-OR [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:31") (* *) (EARRAY-DYADIC-APPLY (FUNCTION OR) ARRAY1 ARRAY2 RESULT]) (EARRAY-OR-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 12:09") (* *) (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION SCALAR-OR) ARRAY1 ARRAY2 RESULT]) (EARRAY-XOR [LAMBDA (ARRAY1 ARRAY2 RESULT) (* jop: "15-Jun-86 15:32") (* *) (EARRAY-DYADIC-APPLY (FUNCTION XOR) ARRAY1 ARRAY2 RESULT]) (EARRAY-XOR-FN [LAMBDA (OP ARRAY1 ARRAY2 RESULT) (* jop: "23-Jun-86 12:09") (* *) (EARRAY-GENERIC-DYADIC-APPLY (FUNCTION SCALAR-XOR) ARRAY1 ARRAY2 RESULT]) ) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (DECLARE: DOEVAL@COMPILE DONTCOPY (LOCALVARS . T) ) ) (PUTPROPS EARRAY-CMPFNS COPYRIGHT ("Xerox Corporation" 1986)) (DECLARE: DONTCOPY (FILEMAP (NIL (1560 33262 (EARRAY-AND 1570 . 1781) (EARRAY-AND-FN 1783 . 2009) (EARRAY-EQP 2011 . 2222 ) (EARRAY-EQP-FN 2224 . 2561) (EARRAY-EQUAL 2563 . 2778) (EARRAY-EQUAL-FN 2780 . 3077) ( EARRAY-FLOAT-EQP 3079 . 4649) (EARRAY-FLOAT-GEQ 4651 . 6221) (EARRAY-FLOAT-GREATERP 6223 . 7846) ( EARRAY-FLOAT-INDEXOF 7848 . 8938) (EARRAY-FLOAT-LEQ 8940 . 10510) (EARRAY-FLOAT-LESSP 10512 . 12099) ( EARRAY-FLOAT-MEMBER 12101 . 13733) (EARRAY-FLOAT-NOT-EQP 13735 . 15376) (EARRAY-GENERIC-EQUAL 15378 . 16837) (EARRAY-GENERIC-GEQ 16839 . 18352) (EARRAY-GENERIC-GREATERP 18354 . 19902) ( EARRAY-GENERIC-INDEXOF 19904 . 20767) (EARRAY-GENERIC-LEQ 20769 . 22282) (EARRAY-GENERIC-LESSP 22284 . 23804) (EARRAY-GENERIC-MEMBER 23806 . 25197) (EARRAY-GENERIC-NOT-EQUAL 25199 . 26662) (EARRAY-GEQ 26664 . 26875) (EARRAY-GEQ-FN 26877 . 27170) (EARRAY-GREATERP 27172 . 27393) (EARRAY-GREATERP-FN 27395 . 27703) (EARRAY-INDEXOF 27705 . 28362) (EARRAY-LEQ 28364 . 28575) (EARRAY-LEQ-FN 28577 . 28870) ( EARRAY-LESSP 28872 . 29087) (EARRAY-LESSP-FN 29089 . 29388) (EARRAY-MEMBER 29390 . 29977) (EARRAY-NAND 29979 . 30188) (EARRAY-NAND-FN 30190 . 30418) (EARRAY-NOR 30420 . 30631) (EARRAY-NOR-FN 30633 . 30859 ) (EARRAY-NOT 30861 . 31064) (EARRAY-NOT-EQP 31066 . 31281) (EARRAY-NOT-EQP-FN 31283 . 31632) ( EARRAY-NOT-EQUAL 31634 . 31853) (EARRAY-NOT-EQUAL-FN 31855 . 32164) (EARRAY-NOT-FN 32166 . 32386) ( EARRAY-OR 32388 . 32597) (EARRAY-OR-FN 32599 . 32823) (EARRAY-XOR 32825 . 33032) (EARRAY-XOR-FN 33034 . 33260))))) STOP