- Nov 25, 2010
-
-
Liam Healy authored
New macros #'maref and #'(setf maref) get and set elements of the GSL array directly from the mpointer. These are not used by users, but in the make-funcallable-form expansion of callbacks when scalarsp = T is specified. This fixes an error in the argument order in the (setf get-value) generic function that this replaces.
-
- Nov 24, 2010
-
-
Liam M. Healy authored
New macro access-value to call gsl_*_set and gsl_*_get, as yet unused. It will eventually replace get-value and (setf get-value) as used in reference-foreign-element, but has the arguments in the right order and because it's a macro, expands immediately to a cffi:foreign-funcall instead of doing a generic function dispatch on an eql spcializer of the class name.
-
- Jul 14, 2010
-
-
Liam Healy authored
Define get-value and (setf get-value) methods for matrices, and compute two indices when used, by making use of affi::delinearize-index. Add &rest to *defmfun-llk* so that it won't be included in the ignore list. Minor fixes to make more tests work.
-
- Jul 12, 2010
-
-
Liam M. Healy authored
-
- Jul 11, 2010
-
-
Liam Healy authored
-
- Jul 07, 2010
-
-
Liam Healy authored
The generic function #'copy now needs a keyword argument for the destination :grid-type. Eliminate unnecessary copy tests; these are better tested in grid as they didn't use any GSL functions.
-
- Jul 01, 2010
-
-
Liam Healy authored
Use #'gsl:size to call #'grid:total-size for foreign arrays, and use the former function exclusively in GSLL. Fix some more tests.
-
- Jun 30, 2010
-
-
Liam Healy authored
-
- Jun 28, 2010
-
-
Liam Healy authored
Set the contents of the block structure before using it in alloc-from-block. Replace the 'marray class with 'foreign-array. Quote foreign struct slots. Eliminate copy methods. Now simple operations like 'vector-reverse work.
-
- Jun 27, 2010
-
-
Liam Healy authored
Package renamed to :grid from :c-array, function renamed to 'foreign-pointer from 'c-pointer. Eliminate reference to native. Port make-marray-or-default to foreign-array.
-
- Dec 27, 2009
-
-
Liam Healy authored
Add copyright and license information to each file, include a copy of the GPL under documentation/COPYING.
-
- Dec 26, 2009
-
-
Liam Healy authored
Removed some marrays marked as :input when their values were not used. This failed in CCL because the arrays in those cases were created with no initial values, and no values were set, so that they were marked cl-invalid. Created #'make-marray-or-default to facilitate defaulting of marrays in defmfun, and marking validity appropriately. Test results: SBCL 64: TOTAL: 1627 assertions passed, 6 failed, 0 execution errors. CCL 64: TOTAL: 1620 assertions passed, 13 failed, 0 execution errors.
-
- Dec 21, 2009
-
-
Liam Healy authored
Moved the definition of the generic function copy-making-destination to copy objects while making a destination object, and the wrapper function #'copy for that and copy-to-destination to grid/ and c-array: package.
-
Liam Healy authored
The generic function definition for copy-to-destination is now in grid/ and the c-array package. This will make it accessible to non-GSLL foreign library interfaces, but the new location is a bit deceptive because a new method needn't be a subclass of foreign-array.
-
- 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.
-
- 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
Use #'size instead of #'total-size for marrays.
-
- May 03, 2009
-
-
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.
-
- 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.
-
- Mar 18, 2009
-
-
Liam Healy authored
Add methods for #'elt- and #'elt/ that take scalars for the second argument. Fix the docstring for (setf row) which had "column" instead of "row". Export the symbols 'dim0 and 'dim1 because they are useful for users; use them in #'contents-from-pointer instead of previous dim1 and dim2 (et. sim. with size0, size1).
-
- Feb 19, 2009
-
-
Liam Healy authored
Added faster simplex mininimser using the symbol +simplex-nelder-mead+; the old one is now called +simplex-nelder-mead-on2+. Added new functions #'order, #'size, #'coefficients for Chebyshev; #'order is a generic function. Added methods for vectors with complex elements for elt+, elt-, elt*, elt/. Fix spelling of "paraboloid".
-
- Feb 17, 2009
-
-
Liam Healy authored
Added definitions for GSL features that were added in version 1.9, and one from version 1.10: mminusp, mplusp, non-negative-p, +knuthran2002+, +vector-bfgs2+. Macros defmpar now has key instead of optional args. It and def-rng-type take a gsl-version argument; any symbols that are not defined in the user's version of GSL will be bound to an instance of 'obsolete-gsl-version but it is not signalled.
-
- Feb 12, 2009
-
-
Liam Healy authored
The function #'copy will now copy contents between marrays and CL arrays. The destination array can be supplied literally, or created by this function by specifying the desired type: when copying from a marray to a CL array, specify 'array; when copying from a CL array to a marray, specify the element type of the marray. For example, (COPY (COPY (MAKE-MARRAY '(COMPLEX DOUBLE-FLOAT) :INITIAL-CONTENTS '((-34.5 8.24 3.29 -8.93 34.12 -6.15) (-8.93 34.12 -6.15 49.27 -13.49 32.5) (49.27 -13.49 32.5 42.73 -17.24 43.31))) 'ARRAY) '(COMPLEX DOUBLE-FLOAT)) copies from the matrix-complex-double-float made in the make-marray form to a CL array, then copies the contents to a new matrix-complex-double-float.
-
- Jan 12, 2009
-
-
Liam Healy authored
Redefine #'copy so that it has one required argument (source) and one optional argument (destination). For marrays, create a destination using make-marray, if one was not given, and then use the memcpy functions to fill the values. For all other mobjects, copy will copy objects by calling one of two generic functions, #'copy-to-destination and #'copy-making-destination, depending on whether a destination was supplied. The former is defined if a GSL _memcpy function exists. The latter will look for a GSL _clone function, then make a CL instance with the pointer returned as mpointer. If there is no clone function, it will attempt to make a new object using make-load-form, so will fail if that method has not been defined. Added a check to defmfun that signals an error if a variable is used in the C arguments other than top-level that is not used in the CL arglist. This should not happen and is usually an indication of a typo.
-
- Jan 04, 2009
-
-
Liam Healy authored
GSL functions that operate from one corresponding array elements and then overwrite the first array, as well as those that operate on each element of an array with a scalar, are now named starting with "elt", as in "elt+"; formerely they started with "m". This is to reinforce the idea that they are not generally a mathematical solution to algebraic problems, just elementwise operations. The scalar operations (addition, multiplication) are methods of elt+ and elt* as well. Test results 64 bit: SBCL: TOTAL: 1223 assertions passed, 5 failed, 0 execution errors. CCL: TOTAL: 1228 assertions passed, 0 failed, 0 execution errors.
-
Liam Healy authored
Eliminated the functions #'m+c, #'m*c, turning them into methods of #'m+ and #'m*, with the scalar permitted to appear either first or second. New functions #'e*, #'e/ renamed from #'m*, #'m/ to emphasize it is elementwise multiplication and division, leaving room for a matrix multiplication function #'m* at some point in the future. It is now possible to defmfun :definition :methods with 'both as the specified category. Test results 64 bit: SBCL: TOTAL: 1223 assertions passed, 5 failed, 0 execution errors. CCL: TOTAL: 1228 assertions passed, 0 failed, 0 execution errors.
-
- Dec 28, 2008
-
-
Liam Healy authored
Split off the class definition for foreign-array into its own file along with applicable definitions. Make permutations and combinations direct subclasses of both foreign-array and marray, but not subclasses of vectors. All these classes now have initialize-instance :after methods that allocate and set the pointers and finalizers. All tests pass.
-
- Nov 16, 2008
-
-
Liam Healy authored
GSL uses doubles for scalar addition and multiplication, regardless of the element type of the array, so modified the definitions of #'m*c, #'m+c accordingly.
-
- Nov 09, 2008
-
-
Liam Healy authored
Complete set of tests on array operations that are defined for both vectors and matrices. Added documentation to generate-tests to explain how it works and why it's there. Fixed bug in #'expand-defmfun-generic that occured when both arrays are generated, due to key-args being altered.
-
- Nov 02, 2008
-
-
Liam Healy authored
For testing, both vectors and matrices can be made with #'array-default, replacing #'vector-default. The numbers in *double-float-pool* in are now double floats (with d0), and the #'make-list-from-pool coerces to the right type. In both.lisp, #'set-value and #'get-value are for vectors only, not both, because matrices require an extra index argument. Since these functions are for debugging only as the comment says, I'm writing equivalent matrix functions, and I'm not doing tests for them.
-
- Aug 29, 2008
-
-
Liam Healy authored
Put maref and cl-array into a new file maref.lisp, each one has three methods (gsl-data, CL array, GSL pointer). The pointer method for maref selects over all possible element types. This compiles but is not tested.
-
- Aug 17, 2008
-
-
Liam Healy authored
New function #'complete-definition is for putting together an entire definition with arglist, declaration, and body, such as defun, defmethod, or :method. The old (misleadingly-named) #'expand-defmfun-plain has been removed. Removed possibility of definition &aux variables with :global; it was used only once and easily replaced.
-
- Jul 25, 2008
-
-
lhealy authored
to load correctly. git-svn-id: svn+ssh://common-lisp.net/project/gsll/svn/branches/ffa@67 af03a46b-e846-0410-96e5-d5653c316fd0
-
lhealy authored
ctype to 'sizet from 'size to better pick it out of the source code. git-svn-id: svn+ssh://common-lisp.net/project/gsll/svn/branches/ffa@64 af03a46b-e846-0410-96e5-d5653c316fd0
-
lhealy authored
GSL functions (due to lack of support in CFFI) so signal an error if such a function is called. Minor fixes. git-svn-id: svn+ssh://common-lisp.net/project/gsll/svn/branches/ffa@61 af03a46b-e846-0410-96e5-d5653c316fd0
-
lhealy authored
Conditionalize long-double for CL implementations that handle it. git-svn-id: svn+ssh://common-lisp.net/project/gsll/svn/branches/ffa@59 af03a46b-e846-0410-96e5-d5653c316fd0
-
lhealy authored
permitted by CFFI and GSL. Separate some "both" functions due to use of different GSL function name patterns. Temporarily comment away the vacuous #'make-data-from-pointer because the SBCL compiler sometimes objects. git-svn-id: svn+ssh://common-lisp.net/project/gsll/svn/branches/ffa@57 af03a46b-e846-0410-96e5-d5653c316fd0
-
lhealy authored
types; provide convenient initial array definition. Restored commented-out #'make-tests forms, but these have not been expanded yet. git-svn-id: svn+ssh://common-lisp.net/project/gsll/svn/branches/ffa@56 af03a46b-e846-0410-96e5-d5653c316fd0
-
lhealy authored
matrix-ffa.lisp and both.lisp, define '*class-element-type* in #'data-defclass. git-svn-id: svn+ssh://common-lisp.net/project/gsll/svn/branches/ffa@55 af03a46b-e846-0410-96e5-d5653c316fd0
-