bitstring-lowlevel.scm - bitstring - A fork of the CHICKEN bitstring egg for CHICKEN 5
 (HTM) git clone git://vernunftzentrum.de/bitstring.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
       bitstring-lowlevel.scm (727B)
       ---
            1 (module bitstring-lowlevel
            2         (u8vector-not float->uint32 double->uint64 uint32->float uint64->double)
            3         (import scheme (chicken foreign))
            4 
            5 (define u8vector-not
            6    (foreign-primitive void ((u8vector data) (int size))
            7      "int i; for(i=0;i<size;++i) data[i] = ~data[i];"))
            8 
            9 (define float->uint32
           10   (foreign-primitive void ((u8vector i) (float f))
           11     "*(uint32_t*)i = *(uint32_t*)&f;"))
           12 
           13 (define double->uint64
           14   (foreign-primitive void ((u8vector i) (double d))
           15     "*(uint64_t*)i = *(uint64_t*)&d;"))
           16 
           17 (define uint32->float
           18   (foreign-primitive float ((blob i))
           19     "C_return(*(float*)i);"))
           20 
           21 (define uint64->double
           22   (foreign-primitive double ((blob i))
           23     "C_return(*(double*)i);"))
           24 
           25 )