"Marc" == Marc Feeley feeley@iro.umontreal.ca writes:
Marc> Hard to say without access to your code...
The code is available for svn checkout with
# svn co http://chondestes.bio.unc.edu/svn/genxic/trunk/ genxic
To build the loadable library, you will need the GNU Scientific Library.
Marc> What other c-lambdas and c- defines do you have?
Plenty of c-lambda, spread out over all the files that start with "gsl-", but here are all the c-defines and c-define-types:
;; -*- mode:scheme -*- ;;$Id$ ;; ;; gsl-genx.scm
;; This file is part of genXic ;; Copyright (C) 2008 Joel J. Adamson
;; genXic is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version.
;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details.
;; You should have received a copy of the GNU General Public License ;; along with this program (see the file COPYING); if not, write to ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth ;; Floor, Boston, MA 02110-1301, USA.
;; include header file for GSL API (c-declare "#include "../c/gsl_genx.h"") ;; Scheme function for getting data out of f64vectors (c-define (proc1 f64vec i) (scheme-object int) double "f64vector_ref" "" (f64vector-ref f64vec i)) (c-define (proc2 f64vec) (scheme-object) int "f64vector_length" "" (f64vector-length f64vec))
;; declare types
;; gsl-matrix pointer (c-define-type gsl-matrix* (pointer "gsl_matrix" gsl-matrix* ;; release function "GENXIC_RELEASE_gsl_obj"))
;; gsl-vector pointer (c-define-type gsl-vector* (pointer "gsl_vector" gsl-vector* "GENXIC_RELEASE_gsl_obj"))
(c-define-type gsl_rng* (pointer "gsl_rng" gsl_rng* "GENXIC_RELEASE_gsl_obj"))
;; another important release function: ;; ;; "VADER_RELEASE_HIM"
(define-macro (gsl-pred tag obj) `(and (foreign? ,obj) (equal? (foreign-tags ,obj) '(,tag))))
;; boolean for gsl-vector pointer (define (gsl-vector*? gsl-object) (gsl-pred gsl-vector* gsl-object)) ;; boolean for gsl-matrix pointer (define (gsl-matrix*? gsl-object) (gsl-pred gsl-matrix* gsl-object)) (define (gsl-rng*? gsl-object) (gsl-pred gsl-rng* gsl-object))
(include "gsl-structures.scm") (include "gsl-lalgebra.scm") (include "gsl-wrapper.scm") (include "gsl-stochastic.scm") ;; end of gsl-genx.scm
Thanks for any suggestions ;) Joel