1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
;; -*-theme-d-*-
;; Copyright (C) 2018, 2021 Tommi Höynälänmaa
;; Distributed under GNU Lesser General Public License version 3,
;; see file doc/LGPL-3.
(define-body (standard-library posix-math)
;; We trust libthemedsupport so we can use unchecked-prim-proc here.
(add-method r-y0
(unchecked-prim-proc r-y0 (<real>) <real> pure))
(add-method r-y1
(unchecked-prim-proc r-y1 (<real>) <real> pure))
(add-method r-yn
(unchecked-prim-proc r-yn (<integer> <real>) <real> pure))
(add-method r-j0
(unchecked-prim-proc r-j0 (<real>) <real> pure))
(add-method r-j1
(unchecked-prim-proc r-j1 (<real>) <real> pure))
(add-method r-jn
(unchecked-prim-proc r-jn (<integer> <real>) <real> pure))
(define-simple-virtual-method y0 (((r <real-number>)) <real> pure)
(raise-simple 'y0:dispatch-error))
(include-virtual-methods y0 r-y0)
(define-simple-virtual-method y0 (((rat <rational>)) <real> pure)
(r-y0 (rational->real rat)))
(define-simple-virtual-method y0 (((i <integer>)) <real> pure)
(r-y0 (integer->real i)))
(define-simple-virtual-method y1 (((r <real-number>)) <real> pure)
(raise-simple 'y1:dispatch-error))
(include-virtual-methods y1 r-y1)
(define-simple-virtual-method y1 (((rat <rational>)) <real> pure)
(r-y1 (rational->real rat)))
(define-simple-virtual-method y1 (((i <integer>)) <real> pure)
(r-y1 (integer->real i)))
(define-simple-virtual-method yn (((i <integer>) (r <real-number>)) <real>
pure)
(raise-simple 'yn:dispatch-error))
(include-virtual-methods yn r-yn)
(define-simple-virtual-method yn (((i <integer>) (rat <rational>)) <real>
pure)
(r-yn i (rational->real rat)))
(define-simple-virtual-method yn (((i1 <integer>) (i2 <integer>)) <real> pure)
(r-yn i1 (integer->real i2)))
(define-simple-virtual-method j0 (((r <real-number>)) <real> pure)
(raise-simple 'j0:dispatch-error))
(include-virtual-methods j0 r-j0)
(define-simple-virtual-method j0 (((rat <rational>)) <real> pure)
(r-j0 (rational->real rat)))
(define-simple-virtual-method j0 (((i <integer>)) <real> pure)
(r-j0 (integer->real i)))
(define-simple-virtual-method j1 (((r <real-number>)) <real> pure)
(raise-simple 'j1:dispatch-error))
(include-virtual-methods j1 r-j1)
(define-simple-virtual-method j1 (((rat <rational>)) <real> pure)
(r-j1 (rational->real rat)))
(define-simple-virtual-method j1 (((i <integer>)) <real> pure)
(r-j1 (integer->real i)))
(define-simple-virtual-method jn (((i <integer>) (r <real-number>)) <real>
pure)
(raise-simple 'jn:dispatch-error))
(include-virtual-methods jn r-jn)
(define-simple-virtual-method jn (((i <integer>) (rat <rational>)) <real>
pure)
(r-jn i (rational->real rat)))
(define-simple-virtual-method jn (((i1 <integer>) (i2 <integer>)) <real> pure)
(r-jn i1 (integer->real i2))))
|