- Dec 08, 2009
-
-
Liam Healy authored
Continued separation of GSLL into two packages and eventually systems, the definitions in element-types.lisp are now in the c-array package.
-
Liam Healy authored
Eventually, the definitions used for dealing with types and foreign arrays that aren't specific to GSL will be split off into another system, so that it will be easier to build other foreign library interfaces using these definitions. As a start, the grid/ directory defines a package 'c-array and some of the type definitions formerly in init/. Everything compiles and tests as before, on SBCL TOTAL: 1627 assertions passed, 6 failed, 0 execution errors.
-
- Nov 30, 2009
-
-
Liam M. Healy authored
Function #'number-class finds the CL class from the number type, replacing the previous function #'number-class-from-type in init/defmfun-array.lisp. It is a bit more general.
-
- Nov 18, 2009
-
-
Liam M. Healy authored
The functions elt* and elt+ which used with a scalar use complex, not double, scalars; GSL functions are gsl_vector_complex_scale, gsl_vector_complex_add_constant, gsl_vector_complex_float_scale, gsl_vector_complex_float_add_constant.
-
- Nov 16, 2009
-
-
Liam M. Healy authored
Eliminate defparameter *pass-complex-scalar-as-two-reals* and associate comments which predate FSBV.
-
- Nov 14, 2009
-
-
Liam Healy authored
A few overlooked function symbols have been exported and some unused function definitions eliminated. Added an example solve-tridiagonal-example thanks to Mirko Vukovic.
-
- Nov 13, 2009
-
-
Liam Healy authored
-
- Nov 07, 2009
-
-
Liam Healy authored
Use make-fft-wavetable and make-fft-workspace to make the FFT objects. The specific FFT wavetable and workspace mobjects are not exported, which is now possible to specify in defmobject with :export nil.
-
- Nov 01, 2009
-
-
Liam Healy authored
The individual real and complex defmfuns for forward transforms have been removed from fft-real.lisp and fft-complex.lisp and unified in fft-interface.lisp as forward-fourier-transform-radix2 and forward-fourier-transform-nonradix2. This is untested and is meant to experiment with unification of the functions; if successful, the other functions should be changed as similarly, and radix2/non-radix2 switch incorporated if possible.
-
- Oct 25, 2009
-
-
Sumant Oemrawsingh authored
Only complex fast fourier transforms have been added. The radix-2 versions have been tested and found to work. The decimation-in-frequency versions have been added, but not tested. The mixed-radix versions only work for complex double-float at the moment.
-
- Oct 18, 2009
-
-
Liam Healy authored
For methods on marrays, all default values for optional and key arguments were wrongly coerced to the array element type. This doesn't affect any current definitions in GSLL, but FFT functions with the stride specified, it will wrongly change the default value to the element type. This has been fixed by changing #'actual-class-arglist so that it looks up the type intended to be passed to the C function and coerces to that if it is available. Otherwise the expansion leaves the default value alone.
-
- Aug 26, 2009
-
-
Liam Healy authored
A list argument to defmobject :initialize-suffix now means what a list argument to defmfun to defmfun c-arguments does: there are two foreign functions corresponding to the Lisp function; in this case, to reinitialize-instance. The old meaning of having the second element specify the c-return reinitialize-instance has been eliminated; instead, this information is conveyed in a new key argument :ri-c-return.
-
- Aug 24, 2009
-
-
Liam Healy authored
It is now possible to specify two foreign functions for the reinitialize-instance for defmobject. The switch between the function depends on the presence or absence of optional/key arguments. This is used in the definition of one-dimensional-minimizer to switch between gsl_min_fminimizer_set and gsl_min_fminimizer_set_with_values depending on the non-NIL value of f-minimum. The set-with-values case has not yet been tested.
-
- Aug 23, 2009
-
-
Liam Healy authored
Handle conditional cflags in the grovel file instead of modifying the cffi-grovel::*cc-flags* variable. Also use strings for depends-on in asdf file.
-
- Aug 22, 2009
-
-
Liam Healy authored
Darwin ports installs .h files under /opt/local/include/, so put -I option onto cffi-grovel::*cc-flags*.
-
Liam Healy authored
The GSL condition code defconstants are now enclosed in an eval-when so that they can be used later in the same file.
-
- Jun 16, 2009
-
-
Liam Healy authored
The constants used for GSL conditions (+EDOM+ etc.) are defined inside an eval-when so that implementations like CLISP that don't evaluate at compile time will still be able to use the constants in the following parts of the file. This now compiles in CLISP (as well as SBCL and CCL).
-
- Jun 10, 2009
-
-
Liam Healy authored
In the previous conversion of callbacks, ntuple was somehow missed.
-
- Jun 06, 2009
-
-
Liam Healy authored
Almost all GSL structures are now defined using CFFI-grovel, which makes the code more robust should there be changes in GSL. The exceptions are complex-float-c, complex-double-c, and simulated-annealing-parameters; because these structures are used by value, they need to be defined with fsbv:defcstruct at the present.
-
- Jun 05, 2009
-
-
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.
-
- May 25, 2009
-
-
Liam Healy authored
Instead of hardwiring GSL's #define or enum values, define them in init/libgsl-unix.lisp and run CFFI-grovel on them. This has the advantage that if these values change in GSL, GSLL will automatically get the new values; also, there was an error in the 'integrate-method enum due to an incorrect starting value. It has the disadvantage that building GSLL now requires a C compiler and some of the header (.h) files for GSL. Also, it's not clear what the form for libgsl-*.lisp files are for non-unix OSes.
-
Liam Healy authored
A new generic function #'size replaces the old ordinary functions #'size (for Chebyshev) and #'combination-size, #'permutation-size, #'rng-size, and #'mfminimizer-size.
-
Liam Healy authored
The random number distribution functions have been made methods of #'sample, with 'source being the generator.
-
- May 08, 2009
-
-
Liam Healy authored
Print random number generator instances with type. Don't assume that :slug is in the argument list of a defmcallback; make declare ignore form only if it's there. Update docstring for +taus2+. Continued development of the simulated annealing renovation.
-
- May 04, 2009
-
-
Liam Healy authored
Simulated annealing uses a structure called by value; this has been ported to FSBV. Callbacks still need to be ported.
-
- May 03, 2009
-
-
Liam Healy authored
Additional definition of functions of complex numbers and/or returning complex numbers. Most of these duplicate functions that Lisp has already, so everything is defined with a "cx-" prefix. No effort has been made to unify the interface; this requires some thought. A fix has been made to body-expand; previously, it would not properly compile a function that returned a structure by value but didn't have structures by value as arguments.
-
Liam Healy authored
For FSBV calls, define fsbv:defcfun in the defmfun expansion, then in the fsbv:foreign-funcall, refer to the symbol function name rather than string function name. This tells FSBV to use the prepared closure associated with that function by the fsbv:defcfun, meaning that the definitions in that lexical environment are reused. Fix conditionalization for #'conjugate-rank-1-update in blas2.lisp. Test results: SBCL 64 #+fsbv TOTAL: 1522 assertions passed, 5 failed, 0 execution errors. CCL 64 #+fsbv TOTAL: 1522 assertions passed, 5 failed, 0 execution errors. SBCL 64 #-fsbv TOTAL: 1502 assertions passed, 5 failed, 0 execution errors. CCL 64 #-fsbv TOTAL: 1502 assertions passed, 5 failed, 0 execution errors.
-
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.
-
Liam Healy authored
With improved fsbv:foreign-funcall that does the conversion of values between Lisp and C, the function foreign-funcall-indirect has been eliminated in favor of using fsbv:foreign-funcall directly. Spot checks on various functions that use complex scalars like #'evaluate polynomials at a complex point, or set-all on complex marrays, or the functions in complex.lisp, show that these all work. Everything compiles/loads and the usual tests pass in SBCL.
-
- Apr 30, 2009
-
-
Liam Healy authored
The BLAS matrix-product functions now work on complex arrays using FSBV, but there are no tests yet. New tests vector-set-all and matrix-set-all replace set-all tests with addition, and work for all types including complex using FSBV. Default optional argument marrays are initialized to 0. Polynomial evaluation with complex argument uncommented, but not yet working.
-
- Apr 28, 2009
-
-
Liam Healy authored
Also cdot, solve-quadratic-complex, solve-cubic-complex generate complex scalars in the argument returned by reference.
-
- Apr 27, 2009
-
-
Liam Healy authored
Variables called using with-foreign-objects that are passed to GSL for the purposes of returning computed values (i.e., are not mentioned in the CL arglist) need to be declared (:pointer type) because they are calls by reference. Everything now compiles though there are execution errors in the tests.
-
- Apr 26, 2009
-
-
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.
-
- Apr 20, 2009
-
-
Liam Healy authored
The setting of foreign structures will now be handled by fsbv:with-foreign-objects for a suitably defined fsbv:defcstruct. The new definitions are loaded but GSLL will not compile completely.
-
- Apr 16, 2009
-
-
Liam Healy authored
Move body-expand and the supporting cast to a new file body-expand.lisp, and introduce foreign-funcall-indirect which will use with-foreign-objects to allocate all arguments at additional level of indirection and make the appropriate assignments. This appears to expand correctly except for values that are not symbols, e.g. (mpointer object) used in set-all. I will need a new syntax for specifying structures that are passed by pointer but which need to have the structure type stated, e.g. solve-cubic-complex, because for now it defmfun will expand into the foreign-funcall-indirect.
-
- Apr 12, 2009
-
-
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.
-
- Apr 05, 2009
-
-
Liam Healy authored
All defcstruct definitions for functions are in the new file init/callback-struct.lisp. They all have standard name format beginning with "fnstruct" and have been consolidated where there were redundant definitions.
-
Liam Healy authored
Internally call the :callbacks argument to defmobject or defmfun 'cbinfo, to better distinguish it in the source code. In numerical integration example functions, apply #'realpart, because implementations are permitted to return complex numbers from #'expt when the second argument is a float.
-
- Apr 04, 2009
-
-
Liam Healy authored
Integration methods integration-QAWS: adaptive integration for singular functions integration-QAWO: adaptive integration for oscillatory functions integration-QAWF: adaptive integration for Fourier integrals have been added in a file numerical-integration-with-tables.lisp. These require tables with are new mobjects. All of the tests from GSL in gsl-1.11/integration/test.c and gsl-1.11/integration/tests.c for ported functions are now in either this file or numerical-integration.lisp. SBCL 64: TOTAL: 1522 assertions passed, 5 failed, 0 execution errors. CCL 64: TOTAL: 1525 assertions passed, 2 failed, 0 execution errors.
-
Liam Healy authored
The defmobject argument 'class-slots-instance is no longer used, so #'callback-arg-p and the only use of with-unique-names can be eliminated, and thus the dependency on cl-utilities. Constant GSL functions in the library (such as minimizers) which were introduced in a GSL version newer than loaded now expand as symbol macros which signal the 'obsolete-gsl-version error.
-