chickadee » srfi-179 » f8-storage-class

generic-storage-classconstant
s8-storage-classconstant
s16-storage-classconstant
s32-storage-classconstant
s64-storage-classconstant
u1-storage-classconstant
u8-storage-classconstant
u16-storage-classconstant
u32-storage-classconstant
u64-storage-classconstant
f8-storage-classconstant
f16-storage-classconstant
f32-storage-classconstant
f64-storage-classconstant
c64-storage-classconstant
c128-storage-classconstant

generic-storage-class is defined as if by

(define generic-storage-class
  (make-storage-class vector-ref
                      vector-set!
                      (lambda (arg) #t)
                      make-vector
                      vector-copy!
                      vector-length
                      #f))

Implementations shall define sX-storage-class for X=8, 16, 32, and 64 (which have default values 0 and manipulate exact integer values between $-2^{x-1}$ and $2^{X-1}-1$ inclusive), uX-storage-class for X=1, 8, 16, 32, and 64 (which have default values 0 and manipulate exact integer values between 0 and $2^X-1$ inclusive), fX-storage-class for X= 8, 16, 32, and 64 (which have default value 0.0 and manipulate 8-, 16-, 32-, and 64-bit floating-point numbers), and cX-storage-class for X= 64 and 128 (which have default value 0.0+0.0i and manipulate complex numbers with, respectively, 32- and 64-bit floating-point numbers as real and imaginary parts).

Implementations with an appropriate homogeneous vector type should define the associated global variable using make-storage-class, otherwise they shall define the associated global variable to #f.