LINUX.ORG.RU

История изменений

Исправление ados, (текущая версия) :

А почему так не работает?

CL-FFTW-BINDINGS> (defctype c-complex-double-ptr :pointer)
C-COMPLEX-DOUBLE-PTR
CL-FFTW-BINDINGS> (defcfun cimag :double
                    (z c-complex-double-ptr))
WARNING: redefining CL-FFTW-BINDINGS::CIMAG in DEFUN
CIMAG
CL-FFTW-BINDINGS> (let ((lisp-z (complex 12 13)))
                    (with-foreign-object (x '(:struct c-complex-double))
                      (setf (mem-ref x '(:struct c-complex-double))
                            lisp-z)
                      (values
                       (cimag x)
                       (mem-ref x '(:struct c-complex-double)))))
1.4582406633972006d-303
#C(12.0d0 13.0d0)
CL-FFTW-BINDINGS> 

Исходная версия ados, :

А почему так не работает?

CL-FFTW-BINDINGS> (defctype c-complex-double-ptr :pointer)
C-COMPLEX-DOUBLE-PTR
CL-FFTW-BINDINGS> (defcfun cimag :double
                    (z c-complex-double-ptr))
WARNING: redefining CL-FFTW-BINDINGS::CIMAG in DEFUN
CIMAG
CL-FFTW-BINDINGS> (let ((lisp-z (complex 12 13)))
                    (with-foreign-object (x '(:struct c-complex-double))
                      (setf (mem-ref x '(:struct c-complex-double))
                            lisp-z)
                      (cimag x)))
1.4582406633972006d-303
CL-FFTW-BINDINGS>