Changeset 417


Ignore:
Timestamp:
Jan 29, 2004, 9:45:21 AM (21 years ago)
Author:
Gary Byers
Message:

CTYPE-SUBTYPE: no specialized (COMPLEX ) arrays, so check
NUMERIC-CTYPE-COMPLEXP first.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/level-0/l0-array.lisp

    r381 r417  
    516516       ppc32::subtag-simple-vector))
    517517    (numeric-ctype
    518      (case (numeric-ctype-class ctype)
    519        (integer
    520         (let* ((low (numeric-ctype-low ctype))
    521                (high (numeric-ctype-high ctype)))
    522           (cond ((or (null low) (null high)) ppc32::subtag-simple-vector)
    523                 ((and (>= low 0) (<= high 1) ppc32::subtag-bit-vector))
    524                 ((and (>= low 0) (<= high 255)) ppc32::subtag-u8-vector)
    525                 ((and (>= low 0) (<= high 65535)) ppc32::subtag-u16-vector)
    526                 ((and (>= low 0) (<= high #xffffffff) ppc32::subtag-u32-vector))
    527                 ((and (>= low -128) (<= high 127)) ppc32::subtag-s8-vector)
    528                 ((and (>= low -32768) (<= high 32767) ppc32::subtag-s16-vector))
    529                 ((and (>= low (ash -1 31)) (<= high (1- (ash 1 31))))
    530                  ppc32::subtag-s32-vector)
    531                 (t ppc32::subtag-simple-vector))))
    532        (float
    533         (case (numeric-ctype-format ctype)
    534           ((double-float long-float) ppc32::subtag-double-float-vector)
    535           ((single-float short-float) ppc32::subtag-single-float-vector)
    536           (t ppc32::subtag-simple-vector)))
    537        (t ppc32::subtag-simple-vector)))
     518     (if (eq (numeric-ctype-complexp ctype) :complex)
     519       ppc32::subtag-simple-vector
     520       (case (numeric-ctype-class ctype)
     521         (integer
     522          (let* ((low (numeric-ctype-low ctype))
     523                 (high (numeric-ctype-high ctype)))
     524            (cond ((or (null low) (null high)) ppc32::subtag-simple-vector)
     525                  ((and (>= low 0) (<= high 1) ppc32::subtag-bit-vector))
     526                  ((and (>= low 0) (<= high 255)) ppc32::subtag-u8-vector)
     527                  ((and (>= low 0) (<= high 65535)) ppc32::subtag-u16-vector)
     528                  ((and (>= low 0) (<= high #xffffffff) ppc32::subtag-u32-vector))
     529                  ((and (>= low -128) (<= high 127)) ppc32::subtag-s8-vector)
     530                  ((and (>= low -32768) (<= high 32767) ppc32::subtag-s16-vector))
     531                  ((and (>= low (ash -1 31)) (<= high (1- (ash 1 31))))
     532                   ppc32::subtag-s32-vector)
     533                  (t ppc32::subtag-simple-vector))))
     534         (float
     535          (case (numeric-ctype-format ctype)
     536            ((double-float long-float) ppc32::subtag-double-float-vector)
     537            ((single-float short-float) ppc32::subtag-single-float-vector)
     538            (t ppc32::subtag-simple-vector)))
     539         (t ppc32::subtag-simple-vector))))
    538540    (t ppc32::subtag-simple-vector)))
    539541
Note: See TracChangeset for help on using the changeset viewer.