- 16 Nov, 2009 1 commit
-
-
Liam M. Healy authored
Eliminate defparameter *pass-complex-scalar-as-two-reals* and associate comments which predate FSBV.
-
- 05 Jun, 2009 1 commit
-
-
Liam Healy authored
The reader macro #m now evaluates its arguments, so creating a vector with e.g. #m(pi (sqrt 3) (cos (/ pi 4))) is now possible. Matrices are specified by using ^ in the list to separate rows. GSLL now requires cl-utilities once again.
-
- 03 May, 2009 1 commit
-
-
Liam Healy authored
All source code is now conditionalized so that FSBV is optional. If present, functions using complex scalars will work. If absent, GSLL will compile and load correctly, and all functions except those using complex scalars will work. The examples and tests are defined appropriately. Documentation on FSBV dependence has been added to index.html.
-
- 26 Apr, 2009 1 commit
-
-
Liam Healy authored
Define complex-float-c and complex-double-c using fsbv:defcstruct so that they can be passed by value. A type specification of the form (:pointer type) is accepted for allocated objects passed by reference to foreign functions so that their values can be set and returned from the CL function. This expands correctly for #'minmax, not tested yet.
-
- 12 Apr, 2009 1 commit
-
-
Liam Healy authored
Use Foreign Structures By Value (FSBV) to handle passing and returning complex scalars defined by one of the GSL structs. This works correctly for the four functions in complex.lisp, but there is compiler error in SBCL on set-all: "cannot use values types here", though the expansion looks correct. Does not work on solve-quadratic-complex and solve-cubic-complex in polynomial.lisp because defmfun takes the structure type specified and converts it to :pointer automatically. Not tried on functions that return complex scalars yet.
-
- 15 Jan, 2009 1 commit
-
-
Liam Healy authored
By sending the two parts of a complex as separate doubles (complex double-float), or packing the two parts into a one double-float argument (complex single-float), it is possible to pass complex numbers in GSL function calls. This is very likely to be non-portable, so a test is conducted and the results in *pass-complex-scalar-as-two-reals* determine whether defmfun does this translation or just creates a function that signals an error. The complex tests have been modified so that no longer expect an error: SBCL 64: TOTAL: 1223 assertions passed, 5 failed, 0 execution errors. CCL 64: TOTAL: 1228 assertions passed, 0 failed, 0 execution errors. This also works in 32 bit SBCL.
-