diff --git a/code/math/implementation.lisp b/code/math/implementation.lisp index 50991689..544ca5e3 100644 --- a/code/math/implementation.lisp +++ b/code/math/implementation.lisp @@ -1,18 +1,18 @@ (in-package #:quaviver/math) (deftype word (arithmetic-size &optional (count 1)) - #+quaviver/bignum-elision - (ecase arithmetic-size - (32 (case count - (1 `(unsigned-byte 32)) - (2 `(unsigned-byte 64)) - (otherwise `(simple-array (unsigned-byte 64) (,(ceiling count 2)))))) - (64 (if (eql count 1) - `(unsigned-byte 64) - `(simple-array (unsigned-byte 64) (,count)))) - (128 `(simple-array (unsigned-byte 64) (,(ash count 1))))) - #-quaviver/bignum-elision - `(unsigned-byte ,(* arithmetic-size count))) + #+quaviver/bignum-elision + (ecase arithmetic-size + (32 (case count + (1 `(unsigned-byte 32)) + (2 `(unsigned-byte 64)) + (otherwise `(simple-array (unsigned-byte 64) (,(ceiling count 2)))))) + (64 (if (eql count 1) + `(unsigned-byte 64) + `(simple-array (unsigned-byte 64) (,count)))) + (128 `(unsigned-byte ,(* arithmetic-size count)))) + #-quaviver/bignum-elision + `(unsigned-byte ,(* arithmetic-size count))) ;;; Bignum elision ;;;