/[cl-gsl]/cl-gsl/sf.lisp
ViewVC logotype

Contents of /cl-gsl/sf.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations)
Wed Mar 9 03:10:28 2005 UTC (9 years, 1 month ago) by edenny
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +9 -3 lines
Fix bugs detected by unit tests.
1 ;;;; -*- Mode: Lisp; Synatx: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;;
3 ;;;; Copyright (C) 2005 Edgar Denny <edgardenny@comcast.net>
4 ;;;; This file is part of CL-GSL.
5 ;;;;
6 ;;;; This program is free software; you can redistribute it and/or modify
7 ;;;; it under the terms of the GNU General Public License as published by
8 ;;;; the Free Software Foundation; either version 2 of the License, or
9 ;;;; (at your option) any later version.
10 ;;;;
11 ;;;; This program is distributed in the hope that it will be useful,
12 ;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;;; GNU General Public License for more details.
15 ;;;;
16 ;;;; You should have received a copy of the GNU General Public License
17 ;;;; along with this program; if not, write to the Free Software
18 ;;;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
20 (in-package #:cl-gsl-sf)
21
22 (def-foreign-struct gsl-sf-result
23 (val :double)
24 (err :double))
25
26 (def-foreign-struct gsl-sf-result-e10
27 (val :double)
28 (err :double)
29 (e10 :int))
30
31 (define-foreign-type gsl-sf-result-ptr (* gsl-sf-result))
32 (define-foreign-type gsl-sf-result-e10-ptr (* gsl-sf-result-e10))
33
34 (defmacro defun-wrapper% (str+symb params+types ret-type)
35 (let ((c-func-str+symb)
36 (c-func-symb)
37 (lisp-func-symb)
38 (let-params)
39 (c-func-params)
40 (lisp-func-params)
41 (cleanup)
42 (declare-params)
43 (ret))
44
45 (if (consp str+symb)
46 (progn
47 (setq c-func-symb (kmrcl:concat-symbol "gsl-sf-" (cadr str+symb)))
48 (setq c-func-str+symb
49 (list (concatenate 'string "gsl_sf_" (car str+symb))
50 c-func-symb))
51 (setq lisp-func-symb (cadr str+symb)))
52 (progn
53 (setq c-func-symb (kmrcl:concat-symbol
54 "gsl-sf-" (string_->string- str+symb)))
55 (setq c-func-str+symb (concatenate 'string "gsl_sf_" str+symb))
56 (setq lisp-func-symb (kmrcl:concat-symbol
57 (string_->string- str+symb)))))
58
59 (dolist (elm params+types)
60 (let ((p (car elm))
61 (p-type (cadr elm)))
62 (cond
63 ((eq p-type 'gsl-sf-result-ptr)
64 (let ((val (gensym)))
65 (push `(,val (uffi:allocate-foreign-object 'gsl-sf-result))
66 let-params)
67 (push val c-func-params)
68 (push `(uffi:get-slot-value ,val :double 'val) ret)
69 (push `(uffi:get-slot-value ,val :double 'err) ret)
70 (push `(uffi:free-foreign-object ,val) cleanup)))
71 ((eq p-type 'gsl-sf-result-e10-ptr)
72 (let ((val (gensym)))
73 (push `(,val (uffi:allocate-foreign-object 'gsl-sf-result-e10))
74 let-params)
75 (push val c-func-params)
76 (push `(uffi:get-slot-value ,val :double 'val) ret)
77 (push `(uffi:get-slot-value ,val :double 'err) ret)
78 (push `(uffi:get-slot-value ,val :int 'e10) ret)
79 (push `(uffi:free-foreign-object ,val) cleanup)))
80 (t
81 (push p lisp-func-params)
82 (push (ecase p-type
83 (:double `(double-float ,p))
84 (:int `(integer ,p))
85 (:unsigned-int `(unsigned-byte ,p))
86 (gsl-mode-t `(unsigned-byte ,p)))
87 declare-params)
88 (push p c-func-params)))))
89
90 (push '(ret-val) let-params)
91
92 ;; no need to reverse cleanup or let-params
93 (setq c-func-params (nreverse c-func-params))
94 (setq lisp-func-params (nreverse lisp-func-params))
95 (setq ret (nreverse ret))
96
97 `(progn
98 (defun-foreign ,c-func-str+symb
99 ,params+types
100 ,ret-type)
101
102 (defun ,lisp-func-symb ,lisp-func-params
103 (declare ,@declare-params)
104 ,(if ret
105 `(let ,let-params
106 (setq ret-val (,c-func-symb ,@c-func-params))
107 (multiple-value-prog1
108 (values ,@ret ret-val)
109 ,@cleanup))
110 `(,c-func-symb ,@c-func-params)))
111
112 (export '(,lisp-func-symb)))))
113
114
115 ;;; Airy Functions
116
117 (defun-wrapper% "airy_Ai"
118 ((x :double)
119 (mode gsl-mode-t))
120 :double)
121
122 (defun-wrapper% "airy_Ai_e"
123 ((x :double)
124 (mode gsl-mode-t)
125 (result gsl-sf-result-ptr))
126 :int)
127
128 (defun-wrapper% "airy_Bi"
129 ((x :double)
130 (mode gsl-mode-t))
131 :double)
132
133 (defun-wrapper% "airy_Bi_e"
134 ((x :double)
135 (mode gsl-mode-t)
136 (result gsl-sf-result-ptr))
137 :int)
138
139 (defun-wrapper% "airy_Ai_scaled"
140 ((x :double)
141 (mode gsl-mode-t))
142 :double)
143
144 (defun-wrapper% "airy_Ai_scaled_e"
145 ((x :double)
146 (mode gsl-mode-t)
147 (result gsl-sf-result-ptr))
148 :int)
149
150 (defun-wrapper% "airy_Bi_scaled"
151 ((x :double)
152 (mode gsl-mode-t))
153 :double)
154
155 (defun-wrapper% "airy_Bi_scaled_e"
156 ((x :double)
157 (mode gsl-mode-t)
158 (result gsl-sf-result-ptr))
159 :int)
160
161 (defun-wrapper% "airy_Ai_deriv"
162 ((x :double)
163 (mode gsl-mode-t))
164 :double)
165
166 (defun-wrapper% "airy_Ai_deriv_e"
167 ((x :double)
168 (mode gsl-mode-t)
169 (result gsl-sf-result-ptr))
170 :int)
171
172 (defun-wrapper% "airy_Bi_deriv"
173 ((x :double)
174 (mode gsl-mode-t))
175 :double)
176
177 (defun-wrapper% "airy_Bi_deriv_e"
178 ((x :double)
179 (mode gsl-mode-t)
180 (result gsl-sf-result-ptr))
181 :int)
182
183 (defun-wrapper% "airy_Ai_deriv_scaled"
184 ((x :double)
185 (mode gsl-mode-t))
186 :double)
187
188 (defun-wrapper% "airy_Ai_deriv_scaled_e"
189 ((x :double)
190 (mode gsl-mode-t)
191 (result gsl-sf-result-ptr))
192 :int)
193
194 (defun-wrapper% "airy_Bi_deriv_scaled"
195 ((x :double)
196 (mode gsl-mode-t))
197 :double)
198
199 (defun-wrapper% "airy_Bi_deriv_scaled_e"
200 ((x :double)
201 (mode gsl-mode-t)
202 (result gsl-sf-result-ptr))
203 :int)
204
205 (defun-wrapper% "airy_zero_Ai"
206 ((x :unsigned-int))
207 :double)
208
209 (defun-wrapper% "airy_zero_Ai_e"
210 ((x :unsigned-int)
211 (result gsl-sf-result-ptr))
212 :int)
213
214 (defun-wrapper% "airy_zero_Bi"
215 ((x :unsigned-int))
216 :double)
217
218 (defun-wrapper% "airy_zero_Bi_e"
219 ((x :unsigned-int)
220 (result gsl-sf-result-ptr))
221 :int)
222
223 (defun-wrapper% "airy_zero_Ai_deriv"
224 ((x :unsigned-int))
225 :double)
226
227 (defun-wrapper% "airy_zero_Ai_deriv_e"
228 ((x :unsigned-int)
229 (result gsl-sf-result-ptr))
230 :int)
231
232 (defun-wrapper% "airy_zero_Bi_deriv"
233 ((x :unsigned-int))
234 :double)
235
236 (defun-wrapper% "airy_zero_Bi_deriv_e"
237 ((x :unsigned-int)
238 (result gsl-sf-result-ptr))
239 :int)
240
241 ;;; Bessel Functions
242
243 (defun-wrapper% ("bessel_J0" bessel-c-j0)
244 ((x :double))
245 :double)
246
247 (defun-wrapper% ("bessel_J0_e" bessel-c-j0-e)
248 ((x :double)
249 (result gsl-sf-result-ptr))
250 :int)
251
252 (defun-wrapper% ("bessel_J1" bessel-c-j1)
253 ((x :double))
254 :double)
255
256 (defun-wrapper% ("bessel_J1_e" bessel-c-j1-e)
257 ((x :double)
258 (result gsl-sf-result-ptr))
259 :int)
260
261 (defun-wrapper% ("bessel_Jn" bessel-c-jn)
262 ((n :int)
263 (x :double))
264 :double)
265
266 (defun-wrapper% ("bessel_Jn_e" bessel-c-jn-e)
267 ((n :int)
268 (x :double)
269 (result gsl-sf-result-ptr))
270 :int)
271
272 ;; ----------------------------------------------------------------------
273
274 (defun-foreign "gsl_sf_bessel_Jn_array"
275 ((nmin :int)
276 (nmax :int)
277 (x :double)
278 (result double-ptr))
279 :int)
280
281 (defun bessel-c-jn-array (nmin nmax x)
282 (declare (integer nmin) (integer nmax) (double-float x))
283 (assert (> nmax nmin))
284 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ (- nmax nmin))))
285 (status (gsl-sf-bessel-jn-array nmin nmax x array-ptr)))
286 (multiple-value-prog1
287 (values (c-array->lisp-vec array-ptr (1+ (- nmax nmin))) status)
288 (uffi:free-foreign-object array-ptr))))
289
290 ;; ----------------------------------------------------------------------
291
292 (defun-wrapper% ("bessel_Y0" bessel-c-y0)
293 ((x :double))
294 :double)
295
296 (defun-wrapper% ("bessel_Y0_e" bessel-c-y0-e)
297 ((x :double)
298 (result gsl-sf-result-ptr))
299 :int)
300
301 (defun-wrapper% ("bessel_Y1" bessel-c-y1)
302 ((x :double))
303 :double)
304
305 (defun-wrapper% ("bessel_Y1_e" bessel-c-y1-e)
306 ((x :double)
307 (result gsl-sf-result-ptr))
308 :int)
309
310 (defun-wrapper% ("bessel_Yn" bessel-c-yn)
311 ((n :int)
312 (x :double))
313 :double)
314
315 (defun-wrapper% ("bessel_Yn_e" bessel-c-yn-e)
316 ((n :int)
317 (x :double)
318 (result gsl-sf-result-ptr))
319 :int)
320
321 ;; ----------------------------------------------------------------------
322
323 (defun-foreign "gsl_sf_bessel_Yn_array"
324 ((nmin :int)
325 (nmax :int)
326 (x :double)
327 (result double-ptr))
328 :int)
329
330 (defun bessel-c-yn-array (nmin nmax x)
331 (declare (integer nmin) (integer nmax) (double-float x))
332 (assert (> nmax nmin))
333 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ (- nmax nmin))))
334 (status (gsl-sf-bessel-yn-array nmin nmax x array-ptr)))
335 (multiple-value-prog1
336 (values (c-array->lisp-vec array-ptr (1+ (- nmax nmin))) status)
337 (uffi:free-foreign-object array-ptr))))
338
339 ;; ----------------------------------------------------------------------
340
341 (defun-wrapper% ("bessel_I0" bessel-c-i0)
342 ((x :double))
343 :double)
344
345 (defun-wrapper% ("bessel_I0_e" bessel-c-i0-e)
346 ((x :double)
347 (result gsl-sf-result-ptr))
348 :int)
349
350 (defun-wrapper% ("bessel_I1" bessel-c-i1)
351 ((x :double))
352 :double)
353
354 (defun-wrapper% ("bessel_I1_e" bessel-c-i1-e)
355 ((x :double)
356 (result gsl-sf-result-ptr))
357 :int)
358
359 (defun-wrapper% ("bessel_In" bessel-c-in)
360 ((n :int)
361 (x :double))
362 :double)
363
364 (defun-wrapper% ("bessel_In_e" bessel-c-in-e)
365 ((n :int)
366 (x :double)
367 (result gsl-sf-result-ptr))
368 :int)
369
370 ;; ----------------------------------------------------------------------
371
372 (defun-foreign "gsl_sf_bessel_In_array"
373 ((nmin :int)
374 (nmax :int)
375 (x :double)
376 (result double-ptr))
377 :int)
378
379 (defun bessel-c-in-array (nmin nmax x)
380 (declare (integer nmin) (integer nmax) (double-float x))
381 (assert (> nmax nmin))
382 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ (- nmax nmin))))
383 (status (gsl-sf-bessel-in-array nmin nmax x array-ptr)))
384 (multiple-value-prog1
385 (values (c-array->lisp-vec array-ptr (1+ (- nmax nmin))) status)
386 (uffi:free-foreign-object array-ptr))))
387
388 ;; ----------------------------------------------------------------------
389
390 (defun-wrapper% ("bessel_I0_scaled" bessel-c-i0-scaled)
391 ((x :double))
392 :double)
393
394 (defun-wrapper% ("bessel_I0_scaled_e" bessel-c-i0-scaled-e)
395 ((x :double)
396 (result gsl-sf-result-ptr))
397 :int)
398
399 (defun-wrapper% ("bessel_I1_scaled" bessel-c-i1-scaled)
400 ((x :double))
401 :double)
402
403 (defun-wrapper% ("bessel_I1_scaled_e" bessel-c-i1-scaled-e)
404 ((x :double)
405 (result gsl-sf-result-ptr))
406 :int)
407
408 (defun-wrapper% ("bessel_In_scaled" bessel-c-in-scaled)
409 ((n :int)
410 (x :double))
411 :double)
412
413 (defun-wrapper% ("bessel_In_scaled_e" bessel-c-in-scaled-e)
414 ((n :int)
415 (x :double)
416 (result gsl-sf-result-ptr))
417 :int)
418
419
420 ;; ----------------------------------------------------------------------
421
422 (defun-foreign "gsl_sf_bessel_In_scaled_array"
423 ((nmin :int)
424 (nmax :int)
425 (x :double)
426 (result double-ptr))
427 :int)
428
429 (defun bessel-c-in-scaled-array (nmin nmax x)
430 (declare (integer nmin) (integer nmax) (double-float x))
431 (assert (> nmax nmin))
432 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ (- nmax nmin))))
433 (status (gsl-sf-bessel-in-scaled-array nmin nmax x array-ptr)))
434 (multiple-value-prog1
435 (values (c-array->lisp-vec array-ptr (1+ (- nmax nmin))) status)
436 (uffi:free-foreign-object array-ptr))))
437
438 ;; ----------------------------------------------------------------------
439
440 (defun-wrapper% ("bessel_K0" bessel-c-k0)
441 ((x :double))
442 :double)
443
444 (defun-wrapper% ("bessel_K0_e" bessel-c-k0-e)
445 ((x :double)
446 (result gsl-sf-result-ptr))
447 :int)
448
449 (defun-wrapper% ("bessel_K1" bessel-c-k1)
450 ((x :double))
451 :double)
452
453 (defun-wrapper% ("bessel_K1_e" bessel-c-k1-e)
454 ((x :double)
455 (result gsl-sf-result-ptr))
456 :int)
457
458 (defun-wrapper% ("bessel_Kn" bessel-c-kn)
459 ((n :int)
460 (x :double))
461 :double)
462
463 (defun-wrapper% ("bessel_Kn_e" bessel-c-kn-e)
464 ((n :int)
465 (x :double)
466 (result gsl-sf-result-ptr))
467 :int)
468
469 ;; ----------------------------------------------------------------------
470
471 (defun-foreign "gsl_sf_bessel_Kn_array"
472 ((nmin :int)
473 (nmax :int)
474 (x :double)
475 (result double-ptr))
476 :int)
477
478 (defun bessel-c-kn-array (nmin nmax x)
479 (declare (integer nmin) (integer nmax) (double-float x))
480 (assert (> nmax nmin))
481 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ (- nmax nmin))))
482 (status (gsl-sf-bessel-kn-array nmin nmax x array-ptr)))
483 (multiple-value-prog1
484 (values (c-array->lisp-vec array-ptr (1+ (- nmax nmin))) status)
485 (uffi:free-foreign-object array-ptr))))
486
487 ;; ----------------------------------------------------------------------
488
489 (defun-wrapper% ("bessel_K0_scaled" bessel-c-k0-scaled)
490 ((x :double))
491 :double)
492
493 (defun-wrapper% ("bessel_K0_scaled_e" bessel-c-k0-scaled-e)
494 ((x :double)
495 (result gsl-sf-result-ptr))
496 :int)
497
498 (defun-wrapper% ("bessel_K1_scaled" bessel-c-k1-scaled)
499 ((x :double))
500 :double)
501
502 (defun-wrapper% ("bessel_K1_scaled_e" bessel-c-k1-scaled-e)
503 ((x :double)
504 (result gsl-sf-result-ptr))
505 :int)
506
507 (defun-wrapper% ("bessel_Kn_scaled" bessel-c-kn-scaled)
508 ((n :int)
509 (x :double))
510 :double)
511
512 (defun-wrapper% ("bessel_Kn_scaled_e" bessel-c-kn-scaled-e)
513 ((n :int)
514 (x :double)
515 (result gsl-sf-result-ptr))
516 :int)
517
518 ;; ----------------------------------------------------------------------
519
520 (defun-foreign "gsl_sf_bessel_Kn_scaled_array"
521 ((nmin :int)
522 (nmax :int)
523 (x :double)
524 (result double-ptr))
525 :int)
526
527 (defun bessel-c-kn-scaled-array (nmin nmax x)
528 (declare (integer nmin) (integer nmax) (double-float x))
529 (assert (> nmax nmin))
530 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ (- nmax nmin))))
531 (status (gsl-sf-bessel-kn-scaled-array nmin nmax x array-ptr)))
532 (multiple-value-prog1
533 (values (c-array->lisp-vec array-ptr (1+ (- nmax nmin))) status)
534 (uffi:free-foreign-object array-ptr))))
535
536 ;; ----------------------------------------------------------------------
537
538 (defun-wrapper% ("bessel_j0" bessel-s-j0)
539 ((x :double))
540 :double)
541
542 (defun-wrapper% ("bessel_j0_e" bessel-s-j0-e)
543 ((x :double)
544 (result gsl-sf-result-ptr))
545 :int)
546
547 (defun-wrapper% ("bessel_j1" bessel-s-j1)
548 ((x :double))
549 :double)
550
551 (defun-wrapper% ("bessel_j1_e" bessel-s-j1-e)
552 ((x :double)
553 (result gsl-sf-result-ptr))
554 :int)
555
556 (defun-wrapper% ("bessel_j2" bessel-s-j2)
557 ((x :double))
558 :double)
559
560 (defun-wrapper% ("bessel_j2_e" bessel-s-j2-e)
561 ((x :double)
562 (result gsl-sf-result-ptr))
563 :int)
564
565 (defun-wrapper% ("bessel_jl" bessel-s-jl)
566 ((l :int)
567 (x :double))
568 :double)
569
570 (defun-wrapper% ("bessel_jl_e" bessel-s-jl-e)
571 ((l :int)
572 (x :double)
573 (result gsl-sf-result-ptr))
574 :int)
575
576 ;; ----------------------------------------------------------------------
577
578 (defun-foreign "gsl_sf_bessel_jl_array"
579 ((lmax :int)
580 (x :double)
581 (result double-ptr))
582 :int)
583
584 (defun bessel-s-jl-array (lmax x)
585 (declare (integer lmax) (double-float x))
586 (assert (>= lmax 0))
587 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ lmax)))
588 (status (gsl-sf-bessel-jl-array lmax x array-ptr)))
589 (multiple-value-prog1
590 (values (c-array->lisp-vec array-ptr (1+ lmax)) status)
591 (uffi:free-foreign-object array-ptr))))
592
593 ;; ----------------------------------------------------------------------
594
595
596
597 ;; Function: int gsl_sf_bessel_jl_steed_array (int lmax, double x, double * jl_x_array)
598
599 (defun-wrapper% ("bessel_y0" bessel-s-y0)
600 ((x :double))
601 :double)
602
603 (defun-wrapper% ("bessel_y0_e" bessel-s-y0-e)
604 ((x :double)
605 (result gsl-sf-result-ptr))
606 :int)
607
608 (defun-wrapper% ("bessel_y1" bessel-s-y1)
609 ((x :double))
610 :double)
611
612 (defun-wrapper% ("bessel_y1_e" bessel-s-y1-e)
613 ((x :double)
614 (result gsl-sf-result-ptr))
615 :int)
616
617 (defun-wrapper% ("bessel_y2" bessel-s-y2)
618 ((x :double))
619 :double)
620
621 (defun-wrapper% ("bessel_y2_e" bessel-s-y2-e)
622 ((x :double)
623 (result gsl-sf-result-ptr))
624 :int)
625
626 (defun-wrapper% ("bessel_yl" bessel-s-yl)
627 ((l :int)
628 (x :double))
629 :double)
630
631 (defun-wrapper% ("bessel_yl_e" bessel-s-yl-e)
632 ((l :int)
633 (x :double)
634 (result gsl-sf-result-ptr))
635 :int)
636
637 ;; ----------------------------------------------------------------------
638
639 (defun-foreign "gsl_sf_bessel_yl_array"
640 ((lmax :int)
641 (x :double)
642 (result double-ptr))
643 :int)
644
645 (defun bessel-s-yl-array (lmax x)
646 (declare (integer lmax) (double-float x))
647 (assert (>= lmax 0))
648 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ lmax)))
649 (status (gsl-sf-bessel-yl-array lmax x array-ptr)))
650 (multiple-value-prog1
651 (values (c-array->lisp-vec array-ptr (1+ lmax)) status)
652 (uffi:free-foreign-object array-ptr))))
653
654 ;; ----------------------------------------------------------------------
655
656 (defun-wrapper% ("bessel_i0_scaled" bessel-s-i0-scaled)
657 ((x :double))
658 :double)
659
660 (defun-wrapper% ("bessel_i0_scaled_e" bessel-s-i0-scaled-e)
661 ((x :double)
662 (result gsl-sf-result-ptr))
663 :int)
664
665 (defun-wrapper% ("bessel_i1_scaled" bessel-s-i1-scaled)
666 ((x :double))
667 :double)
668
669 (defun-wrapper% ("bessel_i1_scaled_e" bessel-s-i1-scaled-e)
670 ((x :double)
671 (result gsl-sf-result-ptr))
672 :int)
673
674 (defun-wrapper% ("bessel_i2_scaled" bessel-s-i2-scaled)
675 ((x :double))
676 :double)
677
678 (defun-wrapper% ("bessel_i2_scaled_e" bessel-s-i2-scaled-e)
679 ((x :double)
680 (result gsl-sf-result-ptr))
681 :int)
682
683 (defun-wrapper% ("bessel_il_scaled" bessel-s-il-scaled)
684 ((l :int)
685 (x :double))
686 :double)
687
688 (defun-wrapper% ("bessel_il_scaled_e" bessel-s-il-scaled-e)
689 ((l :int)
690 (x :double)
691 (result gsl-sf-result-ptr))
692 :int)
693
694 ;; ----------------------------------------------------------------------
695
696 (defun-foreign "gsl_sf_bessel_il_scaled_array"
697 ((lmax :int)
698 (x :double)
699 (result double-ptr))
700 :int)
701
702 (defun bessel-s-il-scaled-array (lmax x)
703 (declare (integer lmax) (double-float x))
704 (assert (>= lmax 0))
705 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ lmax)))
706 (status (gsl-sf-bessel-il-scaled-array lmax x array-ptr)))
707 (multiple-value-prog1
708 (values (c-array->lisp-vec array-ptr (1+ lmax)) status)
709 (uffi:free-foreign-object array-ptr))))
710
711 ;; ----------------------------------------------------------------------
712
713 (defun-wrapper% ("bessel_k0_scaled" bessel-s-k0-scaled)
714 ((x :double))
715 :double)
716
717 (defun-wrapper% ("bessel_k0_scaled_e" bessel-s-k0-scaled-e)
718 ((x :double)
719 (result gsl-sf-result-ptr))
720 :int)
721
722 (defun-wrapper% ("bessel_k1_scaled" bessel-s-k1-scaled)
723 ((x :double))
724 :double)
725
726 (defun-wrapper% ("bessel_k1_scaled_e" bessel-s-k1-scaled-e)
727 ((x :double)
728 (result gsl-sf-result-ptr))
729 :int)
730
731 (defun-wrapper% ("bessel_k2_scaled" bessel-s-k2-scaled)
732 ((x :double))
733 :double)
734
735 (defun-wrapper% ("bessel_k2_scaled_e" bessel-s-k2-scaled-e)
736 ((x :double)
737 (result gsl-sf-result-ptr))
738 :int)
739
740 (defun-wrapper% ("bessel_kl_scaled" bessel-s-kl-scaled)
741 ((l :int)
742 (x :double))
743 :double)
744
745 (defun-wrapper% ("bessel_kl_scaled_e" bessel-s-kl-scaled-e)
746 ((l :int)
747 (x :double)
748 (result gsl-sf-result-ptr))
749 :int)
750
751 ;; ----------------------------------------------------------------------
752
753 (defun-foreign "gsl_sf_bessel_kl_scaled_array"
754 ((lmax :int)
755 (x :double)
756 (result double-ptr))
757 :int)
758
759 (defun bessel-s-kl-scaled-array (lmax x)
760 (declare (integer lmax) (double-float x))
761 (assert (>= lmax 0))
762 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ lmax)))
763 (status (gsl-sf-bessel-kl-scaled-array lmax x array-ptr)))
764 (multiple-value-prog1
765 (values (c-array->lisp-vec array-ptr (1+ lmax)) status)
766 (uffi:free-foreign-object array-ptr))))
767
768 ;; ----------------------------------------------------------------------
769
770 (defun-wrapper% ("bessel_Jnu" bessel-c-jnu)
771 ((nu :double)
772 (x :double))
773 :double)
774
775 (defun-wrapper% ("bessel_Jnu_e" bessel-c-jnu-e)
776 ((nu :double)
777 (x :double)
778 (result gsl-sf-result-ptr))
779 :int)
780
781 ;; Function: int gsl_sf_bessel_sequence_Jnu_e (double nu, gsl_mode_t mode, size_t size, double v[])
782
783 (defun-wrapper% ("bessel_Ynu" bessel-c-ynu)
784 ((nu :double)
785 (x :double))
786 :double)
787
788 (defun-wrapper% ("bessel_Ynu_e" bessel-c-ynu-e)
789 ((nu :double)
790 (x :double)
791 (result gsl-sf-result-ptr))
792 :int)
793
794 (defun-wrapper% ("bessel_Inu" bessel-c-inu)
795 ((nu :double)
796 (x :double))
797 :double)
798
799 (defun-wrapper% ("bessel_Inu_e" bessel-c-inu-e)
800 ((nu :double)
801 (x :double)
802 (result gsl-sf-result-ptr))
803 :int)
804
805 (defun-wrapper% ("bessel_Inu_scaled" bessel-c-inu-scaled)
806 ((nu :double)
807 (x :double))
808 :double)
809
810 (defun-wrapper% ("bessel_Inu_scaled_e" bessel-c-inu-scaled-e)
811 ((nu :double)
812 (x :double)
813 (result gsl-sf-result-ptr))
814 :int)
815
816 (defun-wrapper% ("bessel_Knu" bessel-c-knu)
817 ((nu :double)
818 (x :double))
819 :double)
820
821 (defun-wrapper% ("bessel_Knu_e" bessel-c-knu-e)
822 ((nu :double)
823 (x :double)
824 (result gsl-sf-result-ptr))
825 :int)
826
827 (defun-wrapper% ("bessel_lnKnu" bessel-c-lnknu)
828 ((nu :double)
829 (x :double))
830 :double)
831
832 (defun-wrapper% ("bessel_lnKnu_e" bessel-c-lnknu-e)
833 ((nu :double)
834 (x :double)
835 (result gsl-sf-result-ptr))
836 :int)
837
838 (defun-wrapper% ("bessel_Knu_scaled" bessel-c-knu-scaled)
839 ((nu :double)
840 (x :double))
841 :double)
842
843 (defun-wrapper% ("bessel_Knu_scaled_e" bessel-c-knu-scaled-e)
844 ((nu :double)
845 (x :double)
846 (result gsl-sf-result-ptr))
847 :int)
848
849 (defun-wrapper% ("bessel_zero_J0" bessel-c-zero-j0)
850 ((s :unsigned-int))
851 :double)
852
853 (defun-wrapper% ("bessel_zero_J0_e" bessel-c-zero-j0-e)
854 ((s :unsigned-int)
855 (result gsl-sf-result-ptr))
856 :int)
857
858 (defun-wrapper% ("bessel_zero_J1" bessel-c-zero-j1)
859 ((s :unsigned-int))
860 :double)
861
862 (defun-wrapper% ("bessel_zero_J1_e" bessel-c-zero-j1-e)
863 ((s :unsigned-int)
864 (result gsl-sf-result-ptr))
865 :int)
866
867 (defun-wrapper% ("bessel_zero_Jnu" bessel-c-zero-jnu)
868 ((nu :double)
869 (s :unsigned-int))
870 :double)
871
872 (defun-wrapper% ("bessel_zero_Jnu_e" bessel-c-zero-jnu-e)
873 ((nu :double)
874 (s :unsigned-int)
875 (result gsl-sf-result-ptr))
876 :int)
877
878 ;;; Clausen Functions
879
880 (defun-wrapper% "clausen"
881 ((x :double))
882 :double)
883
884 (defun-wrapper% "clausen_e"
885 ((x :double)
886 (result gsl-sf-result-ptr))
887 :int)
888
889 ;;; Coulomb Functions
890
891 (defun-wrapper% ("hydrogenicR_1" hydrogenic-r-1)
892 ((z :double)
893 (r :double))
894 :double)
895
896 (defun-wrapper% ("hydrogenicR_1_e" hydrogenic-r-1-e)
897 ((z :double)
898 (r :double)
899 (result gsl-sf-result-ptr))
900 :int)
901
902 (defun-wrapper% ("hydrogenicR" hydrogenic-r)
903 ((n :int)
904 (l :int)
905 (z :double)
906 (r :double))
907 :double)
908
909 (defun-wrapper% ("hydrogenicR_e" hydrogenic-r-e)
910 ((n :int)
911 (l :int)
912 (z :double)
913 (r :double)
914 (result gsl-sf-result-ptr))
915 :int)
916
917 ;; (defun-wrapper% "coulomb_wave_FG_e"
918 ;; ((eta :double)
919 ;; (x :double)
920 ;; (l-f :double)
921 ;; (k :int)
922 ;; (f gsl-sf-result-ptr)
923 ;; (fp gsl-sf-result-ptr)
924 ;; (g gsl-sf-result-ptr)
925 ;; (gp gsl-sf-result-ptr)
926 ;; (exp-f double-ptr)
927 ;; (exp-g double-ptr))
928 ;; :int)
929
930 ;; Function: int gsl_sf_coulomb_wave_F_array (double L_min, int kmax, double eta, double x, double fc_array[], double * F_exponent)
931
932 ;; Function: int gsl_sf_coulomb_wave_FG_array (double L_min, int kmax, double eta, double x, double fc_array[], double gc_array[], double * F_exponent, double *
933
934 ;; Function: int gsl_sf_coulomb_wave_FGp_array (double L_min, int kmax, double eta, double x, double fc_array[], double fcp_array[], double gc_array[], double
935
936 ;; Function: int gsl_sf_coulomb_wave_sphF_array (double L_min, int kmax, double eta, double x, double fc_array[], double F_exponent[])
937
938 (defun-wrapper% "coulomb_CL_e"
939 ((l :double)
940 (eta :double)
941 (result gsl-sf-result-ptr))
942 :int)
943
944 ;; Function: int gsl_sf_coulomb_CL_array (double Lmin, int kmax, double eta, double cl[])
945
946 ;;; Coupling Coefficients
947
948 (defun-wrapper% "coupling_3j"
949 ((two-ja :int)
950 (two-jb :int)
951 (two-jc :int)
952 (two-ma :int)
953 (two-mb :int)
954 (two-mc :int))
955 :double)
956
957 (defun-wrapper% "coupling_3j_e"
958 ((two-ja :int)
959 (two-jb :int)
960 (two-jc :int)
961 (two-ma :int)
962 (two-mb :int)
963 (two-mc :int)
964 (result gsl-sf-result-ptr))
965 :int)
966
967 (defun-wrapper% "coupling_6j"
968 ((two-ja :int)
969 (two-jb :int)
970 (two-jc :int)
971 (two-jd :int)
972 (two-je :int)
973 (two-jf :int))
974 :double)
975
976 (defun-wrapper% "coupling_6j_e"
977 ((two-ja :int)
978 (two-jb :int)
979 (two-jc :int)
980 (two-jd :int)
981 (two-je :int)
982 (two-jf :int)
983 (result gsl-sf-result-ptr))
984 :int)
985
986 (defun-wrapper% "coupling_9j"
987 ((two-ja :int)
988 (two-jb :int)
989 (two-jc :int)
990 (two-jd :int)
991 (two-je :int)
992 (two-jf :int)
993 (two-jg :int)
994 (two-jh :int)
995 (two-ji :int))
996 :double)
997
998 (defun-wrapper% "coupling_9j_e"
999 ((two-ja :int)
1000 (two-jb :int)
1001 (two-jc :int)
1002 (two-jd :int)
1003 (two-je :int)
1004 (two-jf :int)
1005 (two-jg :int)
1006 (two-jh :int)
1007 (two-ji :int)
1008 (result gsl-sf-result-ptr))
1009 :int)
1010
1011 ;;; Dawson Function
1012
1013 (defun-wrapper% "dawson"
1014 ((x :double))
1015 :double)
1016
1017 (defun-wrapper% "dawson_e"
1018 ((x :double)
1019 (result gsl-sf-result-ptr))
1020 :int)
1021
1022 ;;; Debye Function
1023
1024 (defun-wrapper% "debye_1"
1025 ((x :double))
1026 :double)
1027
1028 (defun-wrapper% "debye_1_e"
1029 ((x :double)
1030 (result gsl-sf-result-ptr))
1031 :int)
1032
1033 (defun-wrapper% "debye_2"
1034 ((x :double))
1035 :double)
1036
1037 (defun-wrapper% "debye_2_e"
1038 ((x :double)
1039 (result gsl-sf-result-ptr))
1040 :int)
1041
1042 (defun-wrapper% "debye_3"
1043 ((x :double))
1044 :double)
1045
1046 (defun-wrapper% "debye_3_e"
1047 ((x :double)
1048 (result gsl-sf-result-ptr))
1049 :int)
1050
1051 (defun-wrapper% "debye_4"
1052 ((x :double))
1053 :double)
1054
1055 (defun-wrapper% "debye_4_e"
1056 ((x :double)
1057 (result gsl-sf-result-ptr))
1058 :int)
1059
1060 (defun-wrapper% "dilog"
1061 ((x :double))
1062 :double)
1063
1064 (defun-wrapper% "dilog_e"
1065 ((x :double)
1066 (result gsl-sf-result-ptr))
1067 :int)
1068
1069
1070 ;; Function: int gsl_sf_complex_dilog_e (double r, double theta, gsl_sf_result * result_re, gsl_sf_result * result_im)
1071
1072 (defun-wrapper% "multiply_e"
1073 ((x :double)
1074 (y :double)
1075 (result gsl-sf-result-ptr))
1076 :int)
1077
1078 (defun-wrapper% "multiply_err_e"
1079 ((x :double)
1080 (dx :double)
1081 (y :double)
1082 (dy :double)
1083 (result gsl-sf-result-ptr))
1084 :int)
1085
1086 ;;; Elliptic Integrals
1087
1088 (defun-wrapper% "ellint_Kcomp"
1089 ((k :double)
1090 (mode gsl-mode-t))
1091 :double)
1092
1093 (defun-wrapper% "ellint_Kcomp_e"
1094 ((k :double)
1095 (mode gsl-mode-t)
1096 (result gsl-sf-result-ptr))
1097 :int)
1098
1099 (defun-wrapper% "ellint_Ecomp"
1100 ((k :double)
1101 (mode gsl-mode-t))
1102 :double)
1103
1104 (defun-wrapper% "ellint_Ecomp_e"
1105 ((k :double)
1106 (mode gsl-mode-t)
1107 (result gsl-sf-result-ptr))
1108 :int)
1109
1110 (defun-wrapper% "ellint_F"
1111 ((phi :double)
1112 (k :double)
1113 (mode gsl-mode-t))
1114 :double)
1115
1116 (defun-wrapper% "ellint_F_e"
1117 ((phi :double)
1118 (k :double)
1119 (mode gsl-mode-t)
1120 (result gsl-sf-result-ptr))
1121 :int)
1122
1123 (defun-wrapper% "ellint_E"
1124 ((phi :double)
1125 (k :double)
1126 (mode gsl-mode-t))
1127 :double)
1128
1129 (defun-wrapper% "ellint_E_e"
1130 ((phi :double)
1131 (k :double)
1132 (mode gsl-mode-t)
1133 (result gsl-sf-result-ptr))
1134 :int)
1135
1136 (defun-wrapper% "ellint_P"
1137 ((phi :double)
1138 (k :double)
1139 (n :double)
1140 (mode gsl-mode-t))
1141 :double)
1142
1143 (defun-wrapper% "ellint_P_e"
1144 ((phi :double)
1145 (k :double)
1146 (n :double)
1147 (mode gsl-mode-t)
1148 (result gsl-sf-result-ptr))
1149 :int)
1150
1151 (defun-wrapper% "ellint_D"
1152 ((phi :double)
1153 (k :double)
1154 (n :double)
1155 (mode gsl-mode-t))
1156 :double)
1157
1158 (defun-wrapper% "ellint_D_e"
1159 ((phi :double)
1160 (k :double)
1161 (n :double)
1162 (mode gsl-mode-t)
1163 (result gsl-sf-result-ptr))
1164 :int)
1165
1166 (defun-wrapper% "ellint_RC"
1167 ((x :double)
1168 (y :double)
1169 (mode gsl-mode-t))
1170 :double)
1171
1172 (defun-wrapper% "ellint_RC_e"
1173 ((x :double)
1174 (y :double)
1175 (mode gsl-mode-t)
1176 (result gsl-sf-result-ptr))
1177 :int)
1178
1179 (defun-wrapper% "ellint_RD"
1180 ((x :double)
1181 (y :double)
1182 (z :double)
1183 (mode gsl-mode-t))
1184 :double)
1185
1186 (defun-wrapper% "ellint_RD_e"
1187 ((x :double)
1188 (y :double)
1189 (z :double)
1190 (mode gsl-mode-t)
1191 (result gsl-sf-result-ptr))
1192 :int)
1193
1194 (defun-wrapper% "ellint_RF"
1195 ((x :double)
1196 (y :double)
1197 (z :double)
1198 (mode gsl-mode-t))
1199 :double)
1200
1201 (defun-wrapper% "ellint_RF_e"
1202 ((x :double)
1203 (y :double)
1204 (z :double)
1205 (mode gsl-mode-t)
1206 (result gsl-sf-result-ptr))
1207 :int)
1208
1209 (defun-wrapper% "ellint_RJ"
1210 ((x :double)
1211 (y :double)
1212 (z :double)
1213 (p :double)
1214 (mode gsl-mode-t))
1215 :double)
1216
1217 (defun-wrapper% "ellint_RJ_e"
1218 ((x :double)
1219 (y :double)
1220 (z :double)
1221 (p :double)
1222 (mode gsl-mode-t)
1223 (result gsl-sf-result-ptr))
1224 :int)
1225
1226 ;; Function: int gsl_sf_elljac_e (double u, double m, double * sn, double * cn, double * dn)
1227
1228 (defun-wrapper% "erf"
1229 ((x :double))
1230 :double)
1231
1232 (defun-wrapper% "erf_e"
1233 ((x :double)
1234 (result gsl-sf-result-ptr))
1235 :int)
1236
1237 (defun-wrapper% "erfc"
1238 ((x :double))
1239 :double)
1240
1241 (defun-wrapper% "erfc_e"
1242 ((x :double)
1243 (result gsl-sf-result-ptr))
1244 :int)
1245
1246 (defun-wrapper% "log_erfc"
1247 ((x :double))
1248 :double)
1249
1250 (defun-wrapper% "log_erfc_e"
1251 ((x :double)
1252 (result gsl-sf-result-ptr))
1253 :int)
1254
1255 (defun-wrapper% "erf_Z"
1256 ((x :double))
1257 :double)
1258
1259 (defun-wrapper% "erf_Z_e"
1260 ((x :double)
1261 (result gsl-sf-result-ptr))
1262 :int)
1263
1264 (defun-wrapper% "erf_Q"
1265 ((x :double))
1266 :double)
1267
1268 (defun-wrapper% "erf_Q_e"
1269 ((x :double)
1270 (result gsl-sf-result-ptr))
1271 :int)
1272
1273 (defun-wrapper% "hazard"
1274 ((x :double))
1275 :double)
1276
1277 (defun-wrapper% "hazard_e"
1278 ((x :double)
1279 (result gsl-sf-result-ptr))
1280 :int)
1281
1282
1283 ;; Function: double gsl_sf_exp (double x)
1284
1285 (defun-wrapper% "exp_e"
1286 ((x :double)
1287 (result gsl-sf-result-ptr))
1288 :int)
1289
1290 ;; Function: int gsl_sf_exp_e10_e (double x, gsl_sf_result_e10 * result)
1291
1292 (defun-wrapper% "exp_mult"
1293 ((x :double)
1294 (y :double))
1295 :double)
1296
1297 (defun-wrapper% "exp_mult_e"
1298 ((x :double)
1299 (y :double)
1300 (result gsl-sf-result-ptr))
1301 :int)
1302
1303 ;; Function: int gsl_sf_exp_mult_e10_e (const double x, const double y, gsl_sf_result_e10 * result)
1304
1305 (defun-wrapper% "expm1"
1306 ((x :double))
1307 :double)
1308
1309 (defun-wrapper% "expm1_e"
1310 ((x :double)
1311 (result gsl-sf-result-ptr))
1312 :int)
1313
1314 (defun-wrapper% "exprel"
1315 ((x :double))
1316 :double)
1317
1318 (defun-wrapper% "exprel_e"
1319 ((x :double)
1320 (result gsl-sf-result-ptr))
1321 :int)
1322
1323 (defun-wrapper% "exprel_2"
1324 ((x :double))
1325 :double)
1326
1327 (defun-wrapper% "exprel_2_e"
1328 ((x :double)
1329 (result gsl-sf-result-ptr))
1330 :int)
1331
1332 (defun-wrapper% "exprel_n"
1333 ((n :int)
1334 (x :double))
1335 :double)
1336
1337 (defun-wrapper% "exprel_n_e"
1338 ((n :int)
1339 (x :double)
1340 (result gsl-sf-result-ptr))
1341 :int)
1342
1343 (defun-wrapper% "exp_err_e"
1344 ((x :double)
1345 (dx :double)
1346 (result gsl-sf-result-ptr))
1347 :int)
1348
1349
1350 ;; Function: int gsl_sf_exp_err_e10_e (double x, double dx, gsl_sf_result_e10 * result)
1351
1352 (defun-wrapper% "exp_mult_err_e"
1353 ((x :double)
1354 (dx :double)
1355 (y :double)
1356 (dy :double)
1357 (result gsl-sf-result-ptr))
1358 :int)
1359
1360 ;; Function: int gsl_sf_exp_mult_err_e10_e (double x, double dx, double y, double dy, gsl_sf_result_e10 * result)
1361
1362 (defun-wrapper% "expint_E1"
1363 ((x :double))
1364 :double)
1365
1366 (defun-wrapper% "expint_E1_e"
1367 ((x :double)
1368 (result gsl-sf-result-ptr))
1369 :int)
1370
1371 (defun-wrapper% "expint_E2"
1372 ((x :double))
1373 :double)
1374
1375 (defun-wrapper% "expint_E2_e"
1376 ((x :double)
1377 (result gsl-sf-result-ptr))
1378 :int)
1379
1380 (defun-wrapper% "expint_Ei"
1381 ((x :double))
1382 :double)
1383
1384 (defun-wrapper% "expint_Ei_e"
1385 ((x :double)
1386 (result gsl-sf-result-ptr))
1387 :int)
1388
1389 (defun-wrapper% "Shi"
1390 ((x :double))
1391 :double)
1392
1393 (defun-wrapper% "Shi_e"
1394 ((x :double)
1395 (result gsl-sf-result-ptr))
1396 :int)
1397
1398 (defun-wrapper% "Chi"
1399 ((x :double))
1400 :double)
1401
1402 (defun-wrapper% "Chi_e"
1403 ((x :double)
1404 (result gsl-sf-result-ptr))
1405 :int)
1406
1407 (defun-wrapper% "expint_3"
1408 ((x :double))
1409 :double)
1410
1411 (defun-wrapper% "expint_3_e"
1412 ((x :double)
1413 (result gsl-sf-result-ptr))
1414 :int)
1415
1416 (defun-wrapper% "Si"
1417 ((x :double))
1418 :double)
1419
1420 (defun-wrapper% "Si_e"
1421 ((x :double)
1422 (result gsl-sf-result-ptr))
1423 :int)
1424
1425 (defun-wrapper% "Ci"
1426 ((x :double))
1427 :double)
1428
1429 (defun-wrapper% "Ci_e"
1430 ((x :double)
1431 (result gsl-sf-result-ptr))
1432 :int)
1433
1434 (defun-wrapper% "atanint"
1435 ((x :double))
1436 :double)
1437
1438 (defun-wrapper% "atanint_e"
1439 ((x :double)
1440 (result gsl-sf-result-ptr))
1441 :int)
1442
1443 ;;; Fermi Dirac Functions
1444
1445 (defun-wrapper% "fermi_dirac_m1"
1446 ((x :double))
1447 :double)
1448
1449 (defun-wrapper% "fermi_dirac_m1_e"
1450 ((x :double)
1451 (result gsl-sf-result-ptr))
1452 :int)
1453
1454 (defun-wrapper% "fermi_dirac_0"
1455 ((x :double))
1456 :double)
1457
1458 (defun-wrapper% "fermi_dirac_0_e"
1459 ((x :double)
1460 (result gsl-sf-result-ptr))
1461 :int)
1462
1463 (defun-wrapper% "fermi_dirac_1"
1464 ((x :double))
1465 :double)
1466
1467 (defun-wrapper% "fermi_dirac_1_e"
1468 ((x :double)
1469 (result gsl-sf-result-ptr))
1470 :int)
1471
1472 (defun-wrapper% "fermi_dirac_2"
1473 ((x :double))
1474 :double)
1475
1476 (defun-wrapper% "fermi_dirac_2_e"
1477 ((x :double)
1478 (result gsl-sf-result-ptr))
1479 :int)
1480
1481 (defun-wrapper% "fermi_dirac_int"
1482 ((j :int)
1483 (x :double))
1484 :double)
1485
1486 (defun-wrapper% "fermi_dirac_int_e"
1487 ((j :int)
1488 (x :double)
1489 (result gsl-sf-result-ptr))
1490 :int)
1491
1492 (defun-wrapper% "fermi_dirac_mhalf"
1493 ((x :double))
1494 :double)
1495
1496 (defun-wrapper% "fermi_dirac_mhalf_e"
1497 ((x :double)
1498 (result gsl-sf-result-ptr))
1499 :int)
1500
1501 (defun-wrapper% "fermi_dirac_half"
1502 ((x :double))
1503 :double)
1504
1505 (defun-wrapper% "fermi_dirac_half_e"
1506 ((x :double)
1507 (result gsl-sf-result-ptr))
1508 :int)
1509
1510 (defun-wrapper% "fermi_dirac_3half"
1511 ((x :double))
1512 :double)
1513
1514 (defun-wrapper% "fermi_dirac_3half_e"
1515 ((x :double)
1516 (result gsl-sf-result-ptr))
1517 :int)
1518
1519 (defun-wrapper% "fermi_dirac_inc_0"
1520 ((x :double)
1521 (b :double))
1522 :double)
1523
1524 (defun-wrapper% "fermi_dirac_inc_0_e"
1525 ((x :double)
1526 (b :double)
1527 (result gsl-sf-result-ptr))
1528 :int)
1529
1530 ;;; Gamma Function
1531
1532 (defun-wrapper% "gamma"
1533 ((x :double))
1534 :double)
1535
1536 (defun-wrapper% "gamma_e"
1537 ((x :double)
1538 (result gsl-sf-result-ptr))
1539 :int)
1540
1541 (defun-wrapper% "lngamma"
1542 ((x :double))
1543 :double)
1544
1545 (defun-wrapper% "lngamma_e"
1546 ((x :double)
1547 (result gsl-sf-result-ptr))
1548 :int)
1549
1550 ;; Function: int gsl_sf_lngamma_sgn_e (double x, gsl_sf_result * result_lg, double * sgn)
1551
1552 (defun-wrapper% "gammastar"
1553 ((x :double))
1554 :double)
1555
1556 (defun-wrapper% "gammastar_e"
1557 ((x :double)
1558 (result gsl-sf-result-ptr))
1559 :int)
1560
1561 (defun-wrapper% "gammainv"
1562 ((x :double))
1563 :double)
1564
1565 (defun-wrapper% "gammainv_e"
1566 ((x :double)
1567 (result gsl-sf-result-ptr))
1568 :int)
1569
1570
1571 ;; Function: int gsl_sf_lngamma_complex_e (double zr, double zi, gsl_sf_result * lnr, gsl_sf_result * arg)
1572
1573
1574 (defun-wrapper% "taylorcoeff"
1575 ((n :int)
1576 (x :double))
1577 :double)
1578
1579 (defun-wrapper% "taylorcoeff_e"
1580 ((n :int)
1581 (x :double)
1582 (result gsl-sf-result-ptr))
1583 :int)
1584
1585 (defun-wrapper% "fact"
1586 ((n :unsigned-int))
1587 :double)
1588
1589 (defun-wrapper% "fact_e"
1590 ((n :unsigned-int)
1591 (result gsl-sf-result-ptr))
1592 :int)
1593
1594 (defun-wrapper% "doublefact"
1595 ((n :unsigned-int))
1596 :double)
1597
1598 (defun-wrapper% "doublefact_e"
1599 ((n :unsigned-int)
1600 (result gsl-sf-result-ptr))
1601 :int)
1602
1603 (defun-wrapper% "lnfact"
1604 ((n :unsigned-int))
1605 :double)
1606
1607 (defun-wrapper% "lnfact_e"
1608 ((n :unsigned-int)
1609 (result gsl-sf-result-ptr))
1610 :int)
1611
1612 (defun-wrapper% "lndoublefact"
1613 ((n :unsigned-int))
1614 :double)
1615
1616 (defun-wrapper% "lndoublefact_e"
1617 ((n :unsigned-int)
1618 (result gsl-sf-result-ptr))
1619 :int)
1620
1621 (defun-wrapper% "choose"
1622 ((n :unsigned-int)
1623 (m :unsigned-int))
1624 :double)
1625
1626 (defun-wrapper% "choose_e"
1627 ((n :unsigned-int)
1628 (m :unsigned-int)
1629 (result gsl-sf-result-ptr))
1630 :int)
1631
1632 (defun-wrapper% "lnchoose"
1633 ((n :unsigned-int)
1634 (m :unsigned-int))
1635 :double)
1636
1637 (defun-wrapper% "lnchoose_e"
1638 ((n :unsigned-int)
1639 (m :unsigned-int)
1640 (result gsl-sf-result-ptr))
1641 :int)
1642
1643 (defun-wrapper% "poch"
1644 ((a :double)
1645 (x :double))
1646 :double)
1647
1648 (defun-wrapper% "poch_e"
1649 ((a :double)
1650 (x :double)
1651 (result gsl-sf-result-ptr))
1652 :int)
1653
1654 (defun-wrapper% "lnpoch"
1655 ((a :double)
1656 (x :double))
1657 :double)
1658
1659 (defun-wrapper% "lnpoch_e"
1660 ((a :double)
1661 (x :double)
1662 (result gsl-sf-result-ptr))
1663 :int)
1664
1665 ;; Function: int gsl_sf_lnpoch_sgn_e (double a, double x, gsl_sf_result * result, double * sgn)
1666
1667 (defun-wrapper% "pochrel"
1668 ((a :double)
1669 (x :double))
1670 :double)
1671
1672 (defun-wrapper% "pochrel_e"
1673 ((a :double)
1674 (x :double)
1675 (result gsl-sf-result-ptr))
1676 :int)
1677
1678 (defun-wrapper% "gamma_inc_Q"
1679 ((a :double)
1680 (x :double))
1681 :double)
1682
1683 (defun-wrapper% "gamma_inc_Q_e"
1684 ((a :double)
1685 (x :double)
1686 (result gsl-sf-result-ptr))
1687 :int)
1688
1689 (defun-wrapper% "gamma_inc_P"
1690 ((a :double)
1691 (x :double))
1692 :double)
1693
1694 (defun-wrapper% "gamma_inc_P_e"
1695 ((a :double)
1696 (x :double)
1697 (result gsl-sf-result-ptr))
1698 :int)
1699
1700 (defun-wrapper% "gamma_inc"
1701 ((a :double)
1702 (x :double))
1703 :double)
1704
1705 (defun-wrapper% "gamma_inc_e"
1706 ((a :double)
1707 (x :double)
1708 (result gsl-sf-result-ptr))
1709 :int)
1710
1711 (defun-wrapper% "beta"
1712 ((a :double)
1713 (b :double))
1714 :double)
1715
1716 (defun-wrapper% "beta_e"
1717 ((a :double)
1718 (b :double)
1719 (result gsl-sf-result-ptr))
1720 :int)
1721
1722 (defun-wrapper% "lnbeta"
1723 ((a :double)
1724 (b :double))
1725 :double)
1726
1727 (defun-wrapper% "lnbeta_e"
1728 ((a :double)
1729 (b :double)
1730 (result gsl-sf-result-ptr))
1731 :int)
1732
1733 (defun-wrapper% "beta_inc"
1734 ((a :double)
1735 (b :double)
1736 (x :double))
1737 :double)
1738
1739 (defun-wrapper% "beta_inc_e"
1740 ((a :double)
1741 (b :double)
1742 (x :double)
1743 (result gsl-sf-result-ptr))
1744 :int)
1745
1746 ;;; Gegenbauer Functions
1747
1748 (defun-wrapper% "gegenpoly_1"
1749 ((l :double)
1750 (x :double))
1751 :double)
1752
1753 (defun-wrapper% "gegenpoly_2"
1754 ((l :double)
1755 (x :double))
1756 :double)
1757
1758 (defun-wrapper% "gegenpoly_3"
1759 ((l :double)
1760 (x :double))
1761 :double)
1762
1763 (defun-wrapper% "gegenpoly_1_e"
1764 ((l :double)
1765 (x :double)
1766 (result gsl-sf-result-ptr))
1767 :int)
1768
1769 (defun-wrapper% "gegenpoly_2_e"
1770 ((l :double)
1771 (x :double)
1772 (result gsl-sf-result-ptr))
1773 :int)
1774
1775 (defun-wrapper% "gegenpoly_3_e"
1776 ((l :double)
1777 (x :double)
1778 (result gsl-sf-result-ptr))
1779 :int)
1780
1781 (defun-wrapper% "gegenpoly_n"
1782 ((n :int)
1783 (l :double)
1784 (x :double))
1785 :double)
1786
1787 (defun-wrapper% "gegenpoly_n_e"
1788 ((n :int)
1789 (l :double)
1790 (x :double)
1791 (result gsl-sf-result-ptr))
1792 :int)
1793
1794 ;; ----------------------------------------------------------------------
1795
1796 (defun-foreign "gsl_sf_gegenpoly_array"
1797 ((nmax :int)
1798 (l :double)
1799 (x :double)
1800 (result double-ptr))
1801 :int)
1802
1803 (defun gegenpoly-array (nmax l x)
1804 (declare (integer nmax) (double-float l) (double-float x))
1805 (assert (and (>= nmax 0) (> l -0.5d0)))
1806 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ nmax)))
1807 (status (gsl-sf-gegenpoly-array nmax l x array-ptr)))
1808 (multiple-value-prog1
1809 (values (c-array->lisp-vec array-ptr (1+ nmax)) status)
1810 (uffi:free-foreign-object array-ptr))))
1811
1812 ;; ----------------------------------------------------------------------
1813
1814 ;;; Hypergeometric Functions
1815
1816 (defun-wrapper% "hyperg_0F1"
1817 ((c :double)
1818 (x :double))
1819 :double)
1820
1821 (defun-wrapper% "hyperg_0F1_e"
1822 ((c :double)
1823 (x :double)
1824 (result gsl-sf-result-ptr))
1825 :int)
1826
1827 (defun-wrapper% "hyperg_1F1_int"
1828 ((m :int)
1829 (n :int)
1830 (x :double))
1831 :double)
1832
1833 (defun-wrapper% "hyperg_1F1_int_e"
1834 ((m :int)
1835 (n :int)
1836 (x :double)
1837 (result gsl-sf-result-ptr))
1838 :int)
1839
1840 (defun-wrapper% "hyperg_1F1"
1841 ((a :double)
1842 (b :double)
1843 (x :double))
1844 :double)
1845
1846 (defun-wrapper% "hyperg_1F1_e"
1847 ((a :double)
1848 (b :double)
1849 (x :double)
1850 (result gsl-sf-result-ptr))
1851 :int)
1852
1853 (defun-wrapper% "hyperg_U_int"
1854 ((m :int)
1855 (n :int)
1856 (x :double))
1857 :double)
1858
1859 (defun-wrapper% "hyperg_U_int_e"
1860 ((m :int)
1861 (n :int)
1862 (x :double)
1863 (result gsl-sf-result-ptr))
1864 :int)
1865
1866 (defun-wrapper% "hyperg_U_int_e10_e"
1867 ((m :int)
1868 (n :int)
1869 (x :double)
1870 (result gsl-sf-result-e10-ptr))
1871 :int)
1872
1873 (defun-wrapper% "hyperg_U"
1874 ((a :double)
1875 (b :double)
1876 (x :double))
1877 :double)
1878
1879 (defun-wrapper% "hyperg_U_e"
1880 ((a :double)
1881 (b :double)
1882 (x :double)
1883 (result gsl-sf-result-ptr))
1884 :int)
1885
1886 (defun-wrapper% "hyperg_U_e10_e"
1887 ((a :double)
1888 (b :double)
1889 (x :double)
1890 (result gsl-sf-result-e10-ptr))
1891 :int)
1892
1893 (defun-wrapper% "hyperg_2F1"
1894 ((a :double)
1895 (b :double)
1896 (c :double)
1897 (x :double))
1898 :double)
1899
1900 (defun-wrapper% "hyperg_2F1_e"
1901 ((a :double)
1902 (b :double)
1903 (c :double)
1904 (x :double)
1905 (result gsl-sf-result-ptr))
1906 :int)
1907
1908 (defun-wrapper% "hyperg_2F1_conj"
1909 ((ar :double)
1910 (ai :double)
1911 (c :double)
1912 (x :double))
1913 :double)
1914
1915 (defun-wrapper% "hyperg_2F1_conj_e"
1916 ((ar :double)
1917 (ai :double)
1918 (c :double)
1919 (x :double)
1920 (result gsl-sf-result-ptr))
1921 :int)
1922
1923 (defun-wrapper% "hyperg_2F1_renorm"
1924 ((a :double)
1925 (b :double)
1926 (c :double)
1927 (x :double))
1928 :double)
1929
1930 (defun-wrapper% "hyperg_2F1_renorm_e"
1931 ((a :double)
1932 (b :double)
1933 (c :double)
1934 (x :double)
1935 (result gsl-sf-result-ptr))
1936 :int)
1937
1938 (defun-wrapper% "hyperg_2F1_conj_renorm"
1939 ((ar :double)
1940 (ai :double)
1941 (c :double)
1942 (x :double))
1943 :double)
1944
1945 (defun-wrapper% "hyperg_2F1_conj_renorm_e"
1946 ((ar :double)
1947 (ai :double)
1948 (c :double)
1949 (x :double)
1950 (result gsl-sf-result-ptr))
1951 :int)
1952
1953 (defun-wrapper% "hyperg_2F0"
1954 ((a :double)
1955 (b :double)
1956 (x :double))
1957 :double)
1958
1959 (defun-wrapper% "hyperg_2F0_e"
1960 ((a :double)
1961 (b :double)
1962 (x :double)
1963 (result gsl-sf-result-ptr))
1964 :int)
1965
1966 ;;; Laguerre Functions
1967
1968 (defun-wrapper% "laguerre_1"
1969 ((a :double)
1970 (x :double))
1971 :double)
1972
1973 (defun-wrapper% "laguerre_2"
1974 ((a :double)
1975 (x :double))
1976 :double)
1977
1978 (defun-wrapper% "laguerre_3"
1979 ((a :double)
1980 (x :double))
1981 :double)
1982
1983 (defun-wrapper% "laguerre_1_e"
1984 ((a :double)
1985 (x :double)
1986 (result gsl-sf-result-ptr))
1987 :int)
1988
1989 (defun-wrapper% "laguerre_2_e"
1990 ((a :double)
1991 (x :double)
1992 (result gsl-sf-result-ptr))
1993 :int)
1994
1995 (defun-wrapper% "laguerre_3_e"
1996 ((a :double)
1997 (x :double)
1998 (result gsl-sf-result-ptr))
1999 :int)
2000
2001 (defun-wrapper% "laguerre_n"
2002 ((n :int)
2003 (a :double)
2004 (x :double))
2005 :double)
2006
2007 (defun-wrapper% "laguerre_n_e"
2008 ((n :int)
2009 (a :double)
2010 (x :double)
2011 (result gsl-sf-result-ptr))
2012 :int)
2013
2014 ;;; Lambert W Functions
2015
2016 (defun-wrapper% "lambert_W0"
2017 ((x :double))
2018 :double)
2019
2020 (defun-wrapper% "lambert_W0_e"
2021 ((x :double)
2022 (result gsl-sf-result-ptr))
2023 :int)
2024
2025 (defun-wrapper% "lambert_Wm1"
2026 ((x :double))
2027 :double)
2028
2029 (defun-wrapper% "lambert_Wm1_e"
2030 ((x :double)
2031 (result gsl-sf-result-ptr))
2032 :int)
2033
2034 ;;; Legendre Functions
2035
2036 (defun-wrapper% "legendre_P1"
2037 ((x :double))
2038 :double)
2039
2040 (defun-wrapper% "legendre_P2"
2041 ((x :double))
2042 :double)
2043
2044 (defun-wrapper% "legendre_P3"
2045 ((x :double))
2046 :double)
2047
2048 (defun-wrapper% "legendre_P1_e"
2049 ((x :double)
2050 (result gsl-sf-result-ptr))
2051 :int)
2052
2053 (defun-wrapper% "legendre_P2_e"
2054 ((x :double)
2055 (result gsl-sf-result-ptr))
2056 :int)
2057
2058 (defun-wrapper% "legendre_P3_e"
2059 ((x :double)
2060 (result gsl-sf-result-ptr))
2061 :int)
2062
2063 (defun-wrapper% "legendre_Pl"
2064 ((l :int)
2065 (x :double))
2066 :double)
2067
2068 (defun-wrapper% "legendre_Pl_e"
2069 ((l :int)
2070 (x :double)
2071 (result gsl-sf-result-ptr))
2072 :int)
2073
2074 ;; ----------------------------------------------------------------------
2075
2076 (defun-foreign "gsl_sf_legendre_Pl_array"
2077 ((lmax :int)
2078 (x :double)
2079 (result double-ptr))
2080 :int)
2081
2082 (defun legendre-pl-array (lmax x)
2083 (declare (integer lmax) (double-float x))
2084 (assert (>= lmax 0))
2085 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ lmax)))
2086 (status (gsl-sf-legendre-pl-array lmax x array-ptr)))
2087 (multiple-value-prog1
2088 (values (c-array->lisp-vec array-ptr (1+ lmax)) status)
2089 (uffi:free-foreign-object array-ptr))))
2090
2091 ;; ----------------------------------------------------------------------
2092
2093 (defun-wrapper% "legendre_Q0"
2094 ((x :double))
2095 :double)
2096
2097 (defun-wrapper% "legendre_Q0_e"
2098 ((x :double)
2099 (result gsl-sf-result-ptr))
2100 :int)
2101
2102 (defun-wrapper% "legendre_Q1"
2103 ((x :double))
2104 :double)
2105
2106 (defun-wrapper% "legendre_Q1_e"
2107 ((x :double)
2108 (result gsl-sf-result-ptr))
2109 :int)
2110
2111 (defun-wrapper% "legendre_Ql"
2112 ((l :int)
2113 (x :double))
2114 :double)
2115
2116 (defun-wrapper% "legendre_Ql_e"
2117 ((l :int)
2118 (x :double)
2119 (result gsl-sf-result-ptr))
2120 :int)
2121
2122 (defun-wrapper% "legendre_Plm"
2123 ((l :int)
2124 (m :int)
2125 (x :double))
2126 :double)
2127
2128 (defun-wrapper% "legendre_Plm_e"
2129 ((l :int)
2130 (m :int)
2131 (x :double)
2132 (result gsl-sf-result-ptr))
2133 :int)
2134
2135
2136 ;; Function: int gsl_sf_legendre_Plm_array (int lmax, int m, double x, double result_array[])
2137
2138 (defun-wrapper% "legendre_sphPlm"
2139 ((l :int)
2140 (m :int)
2141 (x :double))
2142 :double)
2143
2144 (defun-wrapper% "legendre_sphPlm_e"
2145 ((l :int)
2146 (m :int)
2147 (x :double)
2148 (result gsl-sf-result-ptr))
2149 :int)
2150
2151 ;; Function: int gsl_sf_legendre_sphPlm_array (int lmax, int m, double x, double result_array[])
2152
2153 (defun-wrapper% "legendre_array_size"
2154 ((l :int)
2155 (m :int))
2156 :int)
2157
2158 (defun-wrapper% "conicalP_half"
2159 ((l :double)
2160 (x :double))
2161 :double)
2162
2163 (defun-wrapper% "conicalP_half_e"
2164 ((l :double)
2165 (x :double)
2166 (result gsl-sf-result-ptr))
2167 :int)
2168
2169 (defun-wrapper% "conicalP_mhalf"
2170 ((l :double)
2171 (x :double))
2172 :double)
2173
2174 (defun-wrapper% "conicalP_mhalf_e"
2175 ((l :double)
2176 (x :double)
2177 (result gsl-sf-result-ptr))
2178 :int)
2179
2180 (defun-wrapper% "conicalP_0"
2181 ((l :double)
2182 (x :double))
2183 :double)
2184
2185 (defun-wrapper% "conicalP_0_e"
2186 ((l :double)
2187 (x :double)
2188 (result gsl-sf-result-ptr))
2189 :int)
2190
2191 (defun-wrapper% "conicalP_1"
2192 ((l :double)
2193 (x :double))
2194 :double)
2195
2196 (defun-wrapper% "conicalP_1_e"
2197 ((l :double)
2198 (x :double)
2199 (result gsl-sf-result-ptr))
2200 :int)
2201
2202 (defun-wrapper% "conicalP_sph_reg"
2203 ((l :int)
2204 (lmbd :double)
2205 (x :double))
2206 :double)
2207
2208 (defun-wrapper% "conicalP_sph_reg_e"
2209 ((l :int)
2210 (lmbd :double)
2211 (x :double)
2212 (result gsl-sf-result-ptr))
2213 :int)
2214
2215 (defun-wrapper% "conicalP_cyl_reg"
2216 ((m :int)
2217 (lmbd :double)
2218 (x :double))
2219 :double)
2220
2221 (defun-wrapper% "conicalP_cyl_reg_e"
2222 ((m :int)
2223 (lmbd :double)
2224 (x :double)
2225 (result gsl-sf-result-ptr))
2226 :int)
2227
2228 (defun-wrapper% "legendre_H3d_0"
2229 ((l :double)
2230 (eta :double))
2231 :double)
2232
2233 (defun-wrapper% "legendre_H3d_0_e"
2234 ((l :double)
2235 (eta :double)
2236 (result gsl-sf-result-ptr))
2237 :int)
2238
2239 (defun-wrapper% "legendre_H3d_1"
2240 ((l :double)
2241 (eta :double))
2242 :double)
2243
2244 (defun-wrapper% "legendre_H3d_1_e"
2245 ((l :double)
2246 (eta :double)
2247 (result gsl-sf-result-ptr))
2248 :int)
2249
2250 (defun-wrapper% "legendre_H3d"
2251 ((l :int)
2252 (lmbd :double)
2253 (eta :double))
2254 :double)
2255
2256 (defun-wrapper% "legendre_H3d_e"
2257 ((l :int)
2258 (lmbd :double)
2259 (eta :double)
2260 (result gsl-sf-result-ptr))
2261 :int)
2262
2263 ;; ----------------------------------------------------------------------
2264
2265 (defun-foreign "gsl_sf_legendre_H3d_array"
2266 ((lmax :int)
2267 (l :double)
2268 (eta :double)
2269 (result double-ptr))
2270 :int)
2271
2272 (defun legendre-h3d-array (lmax l eta)
2273 (declare (integer lmax) (double-float l) (double-float eta))
2274 (assert (>= lmax 0))
2275 (let* ((array-ptr (uffi:allocate-foreign-object :double (1+ lmax)))
2276 (status (gsl-sf-legendre-h3d-array lmax l eta array-ptr)))
2277 (multiple-value-prog1
2278 (values (c-array->lisp-vec array-ptr (1+ lmax)) status)
2279 (uffi:free-foreign-object array-ptr))))
2280
2281 ;; ----------------------------------------------------------------------
2282
2283 ;; Function: double gsl_sf_log (double x)
2284
2285 (defun-wrapper% "log_e"
2286 ((x :double)
2287 (result gsl-sf-result-ptr))
2288 :int)
2289
2290 (defun-wrapper% "log_abs"
2291 ((x :double))
2292 :double)
2293
2294 (defun-wrapper% "log_abs_e"
2295 ((x :double)
2296 (result gsl-sf-result-ptr))
2297 :int)
2298
2299 ;; Function: int gsl_sf_complex_log_e (double zr, double zi, gsl_sf_result * lnr, gsl_sf_result * theta)
2300
2301 (defun-wrapper% "log_1plusx"
2302 ((x :double))
2303 :double)
2304
2305 (defun-wrapper% "log_1plusx_e"
2306 ((x :double)
2307 (result gsl-sf-result-ptr))
2308 :int)
2309
2310 (defun-wrapper% "log_1plusx_mx"
2311 ((x :double))
2312 :double)
2313
2314 (defun-wrapper% "log_1plusx_mx_e"
2315 ((x :double)
2316 (result gsl-sf-result-ptr))
2317 :int)
2318
2319 (defun-wrapper% "pow_int"
2320 ((x :double)
2321 (n :int))
2322 :double)
2323
2324 (defun-wrapper% "pow_int_e"
2325 ((x :double)
2326 (n :int)
2327 (result gsl-sf-result-ptr))
2328 :int)
2329
2330 (defun-wrapper% "psi_int"
2331 ((n :int))
2332 :double)
2333
2334 (defun-wrapper% "psi_int_e"
2335 ((n :int)
2336 (result gsl-sf-result-ptr))
2337 :int)
2338
2339 (defun-wrapper% "psi"
2340 ((x :double))
2341 :double)
2342
2343 (defun-wrapper% "psi_e"
2344 ((x :double)
2345 (result gsl-sf-result-ptr))
2346 :int)
2347
2348 (defun-wrapper% "psi_1piy"
2349 ((y :double))
2350 :double)
2351
2352 (defun-wrapper% "psi_1piy_e"
2353 ((y :double)
2354 (result gsl-sf-result-ptr))
2355 :int)
2356
2357 (defun-wrapper% "psi_1_int"
2358 ((n :int))
2359 :double)
2360
2361 (defun-wrapper% "psi_1_int_e"
2362 ((n :int)
2363 (result gsl-sf-result-ptr))
2364 :int)
2365
2366 (defun-wrapper% "psi_1"
2367 ((x :double))
2368 :double)
2369
2370 (defun-wrapper% "psi_1_e"
2371 ((x :double)
2372 (result gsl-sf-result-ptr))
2373 :int)
2374
2375 (defun-wrapper% "psi_n"
2376 ((m :int)
2377 (x :double))
2378 :double)
2379
2380 (defun-wrapper% "psi_n_e"
2381 ((m :int)
2382 (x :double)
2383 (result gsl-sf-result-ptr))
2384 :int)
2385
2386 (defun-wrapper% "synchrotron_1"
2387 ((x :double))
2388 :double)
2389
2390 (defun-wrapper% "synchrotron_1_e"
2391 ((x :double)
2392 (result gsl-sf-result-ptr))
2393 :int)
2394
2395 (defun-wrapper% "synchrotron_2"
2396 ((x :double))
2397 :double)
2398
2399 (defun-wrapper% "synchrotron_2_e"
2400 ((x :double)
2401 (result gsl-sf-result-ptr))
2402 :int)
2403
2404 (defun-wrapper% "transport_2"
2405 ((x :double))
2406 :double)
2407
2408 (defun-wrapper% "transport_2_e"
2409 ((x :double)
2410 (result gsl-sf-result-ptr))
2411 :int)
2412
2413 (defun-wrapper% "transport_3"
2414 ((x :double))
2415 :double)
2416
2417 (defun-wrapper% "transport_3_e"
2418 ((x :double)
2419 (result gsl-sf-result-ptr))
2420 :int)
2421
2422 (defun-wrapper% "transport_4"
2423 ((x :double))
2424 :double)
2425
2426 (defun-wrapper% "transport_4_e"
2427 ((x :double)
2428 (result gsl-sf-result-ptr))
2429 :int)
2430
2431 (defun-wrapper% "transport_5"
2432 ((x :double))
2433 :double)
2434
2435 (defun-wrapper% "transport_5_e"
2436 ((x :double)
2437 (result gsl-sf-result-ptr))
2438 :int)
2439
2440 ;; Function: double gsl_sf_sin (double x)
2441
2442 (defun-wrapper% "sin_e"
2443 ((x :double)
2444 (result gsl-sf-result-ptr))
2445 :int)
2446
2447 ;; Function: double gsl_sf_cos (double x)
2448
2449 (defun-wrapper% "cos_e"
2450 ((x :double)
2451 (result gsl-sf-result-ptr))
2452 :int)
2453
2454 (defun-wrapper% "hypot"
2455 ((x :double)
2456 (y :double))
2457 :double)
2458
2459 (defun-wrapper% "hypot_e"
2460 ((x :double)
2461 (y :double)
2462 (result gsl-sf-result-ptr))
2463 :int)
2464
2465 (defun-wrapper% "sinc"
2466 ((x :double))
2467 :double)
2468
2469 (defun-wrapper% "sinc_e"
2470 ((x :double)
2471 (result gsl-sf-result-ptr))
2472 :int)
2473
2474 ;; Function: int gsl_sf_complex_sin_e (double zr, double zi, gsl_sf_result * szr, gsl_sf_result * szi)
2475
2476 ;; Function: int gsl_sf_complex_cos_e (double zr, double zi, gsl_sf_result * czr, gsl_sf_result * czi)
2477
2478 ;; Function: int gsl_sf_complex_logsin_e (double zr, double zi, gsl_sf_result * lszr, gsl_sf_result * lszi)
2479
2480 (defun-wrapper% "lnsinh"
2481 ((x :double))
2482 :double)
2483
2484 (defun-wrapper% "lnsinh_e"
2485 ((x :double)
2486 (result gsl-sf-result-ptr))
2487 :int)
2488
2489 (defun-wrapper% "lncosh"
2490 ((x :double))
2491 :double)
2492
2493 (defun-wrapper% "lncosh_e"
2494 ((x :double)
2495 (result gsl-sf-result-ptr))
2496 :int)
2497
2498 ;; Function: int gsl_sf_polar_to_rect (double r, double theta, gsl_sf_result * x, gsl_sf_result * y);
2499
2500 ;; Function: int gsl_sf_rect_to_polar (double x, double y, gsl_sf_result * r, gsl_sf_result * theta)
2501
2502 (defun-wrapper% "angle_restrict_symm"
2503 ((theta :double))
2504 :double)
2505
2506 (defun-wrapper% "angle_restrict_symm_e"
2507 ((theta :double)
2508 (result gsl-sf-result-ptr))
2509 :int)
2510
2511 (defun-wrapper% "angle_restrict_pos"
2512 ((theta :double))
2513 :double)
2514
2515 (defun-wrapper% "angle_restrict_pos_e"
2516 ((theta :double)
2517 (result gsl-sf-result-ptr))
2518 :int)
2519
2520 ;; (defun-wrapper% "sin_err"
2521 ;; ((x :double)
2522 ;; (dx :double))
2523 ;; :double)
2524
2525 (defun-wrapper% "sin_err_e"
2526 ((x :double)
2527 (dx :double)
2528 (result gsl-sf-result-ptr))
2529 :int)
2530
2531 ;; (defun-wrapper% "cos_err"
2532 ;; ((x :double)
2533 ;; (dx :double))
2534 ;; :double)
2535
2536 (defun-wrapper% "cos_err_e"
2537 ((x :double)
2538 (dx :double)
2539 (result gsl-sf-result-ptr))
2540 :int)
2541
2542 (defun-wrapper% "zeta_int"
2543 ((n :int))
2544 :double)
2545
2546 (defun-wrapper% "zeta_int_e"
2547 ((n :int)
2548 (result gsl-sf-result-ptr))
2549 :int)
2550
2551 (defun-wrapper% "zeta"
2552 ((s :double))
2553 :double)
2554
2555 (defun-wrapper% "zeta_e"
2556 ((s :double)
2557 (result gsl-sf-result-ptr))
2558 :int)
2559
2560 (defun-wrapper% "zetam1_int"
2561 ((n :int))
2562 :double)
2563
2564 (defun-wrapper% "zetam1_int_e"
2565 ((n :int)
2566 (result gsl-sf-result-ptr))
2567 :int)
2568
2569 (defun-wrapper% "zetam1"
2570 ((s :double))
2571 :double)
2572
2573 (defun-wrapper% "zetam1_e"
2574 ((s :double)
2575 (result gsl-sf-result-ptr))
2576 :int)
2577
2578 (defun-wrapper% "hzeta"
2579 ((s :double)
2580 (q :double))
2581 :double)
2582
2583 (defun-wrapper% "hzeta_e"
2584 ((s :double)
2585 (q :double)
2586 (result gsl-sf-result-ptr))
2587 :int)
2588
2589 (defun-wrapper% "eta_int"
2590 ((n :int))
2591 :double)
2592
2593 (defun-wrapper% "eta_int_e"
2594 ((n :int)
2595 (result gsl-sf-result-ptr))
2596 :int)
2597
2598 (defun-wrapper% "eta"
2599 ((s :double))
2600 :double)
2601
2602 (defun-wrapper% "eta_e"
2603 ((s :double)
2604 (result gsl-sf-result-ptr))
2605 :int)

  ViewVC Help
Powered by ViewVC 1.1.5