From 64d6a29ab9bda0d7ea19cead842bebcc8f42cd9b Mon Sep 17 00:00:00 2001 From: "O'Keefe, Colin B" Date: Thu, 12 Oct 2023 14:41:04 -0700 Subject: [PATCH] removed dependency on optima --- cl-quil.asd | 2 -- src/build-gate.lisp | 30 ++++++++++++------------------ 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/cl-quil.asd b/cl-quil.asd index c369db878..8ebb326ca 100644 --- a/cl-quil.asd +++ b/cl-quil.asd @@ -19,7 +19,6 @@ #:uiop #:split-sequence #:closer-mop - #:optima #:cl-algebraic-data-type #:global-vars #:trivial-garbage ; weak hash tables @@ -112,7 +111,6 @@ #:magicl/ext-lapack ; for gate fusion #:global-vars ; Static globals #:salza2 ; God table compression - #:optima #+sbcl #:sb-rotate-byte ) :pathname "src/" diff --git a/src/build-gate.lisp b/src/build-gate.lisp index 5ee7a5792..e99175526 100644 --- a/src/build-gate.lisp +++ b/src/build-gate.lisp @@ -116,24 +116,18 @@ Comes in two flavors: "Binary operator that safely applies to possibly mixed arguments of NUMBER / DELAYED-EXPRESSION objects. Returns a NUMBER when possible, and a DELAYED-EXPRESSION otherwise." (flet ((decompose (arg) "Returns a values tuple: PARAMS LAMBDA-PARAMS EXPRESSION DELAYEDP" - (optima:match arg - ((delayed-expression (params arg-params) - (lambda-params arg-lambda-params) - (expression arg-expression)) - (values - arg-params - arg-lambda-params - arg-expression - t)) - ((memory-ref) - (values - nil - nil - arg - t)) - ((constant (value val)) - (values nil nil val nil)) - (_ + (typecase arg + (delayed-expression + (with-slots (params lambda-params expression) arg + (values params lambda-params expression t))) + + (memory-ref + (values nil nil arg t)) + + (constant + (values nil nil (constant-value arg) nil)) + + (t (values nil nil arg nil))))) (multiple-value-bind (params-1 lambda-params-1 expression-1 delayedp-1) (decompose arg1) (multiple-value-bind (params-2 lambda-params-2 expression-2 delayedp-2) (decompose arg2)