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) 2008-2019 Tommi Höynälänmaa
;; Distributed under GNU Lesser General Public License version 3,
;; see file doc/LGPL-3.
(define-interface (standard-library basic-math)
(import (standard-library core))
(declare-method quotient (:simple-proc (<integer> <integer>) <integer> pure))
(declare-method remainder (:simple-proc (<integer> <integer>) <integer>
pure))
(declare-method integer->real (:simple-proc (<integer>) <real> pure))
(declare-method real->integer (:simple-proc (<real>) <integer> pure))
(declare-method integer-float? (:simple-proc (<real>) <boolean> pure))
(declare-method round (:simple-proc (<real>) <integer> pure))
(declare-method truncate (:simple-proc (<real>) <integer> pure))
(declare-method floor (:simple-proc (<real>) <integer> pure))
(declare-method ceiling (:simple-proc (<real>) <integer> pure))
(declare-method r-round (:simple-proc (<real>) <real> pure))
(declare-method r-truncate (:simple-proc (<real>) <real> pure))
(declare-method r-floor (:simple-proc (<real>) <real> pure))
(declare-method r-ceiling (:simple-proc (<real>) <real> pure))
(declare-method i-abs (:simple-proc (<integer>) <integer> (pure)))
(declare-method r-abs (:simple-proc (<real>) <real> (pure)))
(declare-virtual-method abs (:simple-proc (<integer>) <integer> (pure)))
(declare-virtual-method abs (:simple-proc (<real>) <real> (pure)))
(declare-method i-square (:simple-proc (<integer>) <integer> (pure)))
(declare-method r-square (:simple-proc (<real>) <real> (pure)))
(declare-virtual-method square (:simple-proc (<integer>) <integer> (pure)))
(declare-virtual-method square (:simple-proc (<real>) <real> (pure)))
(declare-method i-nonneg-expt (:simple-proc (<integer> <integer>) <integer>
pure))
(declare-method r-nonneg-int-expt (:simple-proc (<real> <integer>) <real>
(pure)))
(declare-method r-int-expt (:simple-proc (<real> <integer>) <real> (pure)))
(declare-method gcd (:simple-proc (<integer> <integer>) <integer> pure))
(declare-method factorial (:simple-proc (<integer>) <integer> pure))
(declare-method i-log10-exact (:simple-proc (<integer>) (:maybe <integer>)
pure))
(declare-method i-log2-exact (:simple-proc (<integer>) (:maybe <integer>)
pure))
(declare-method i-sign (:simple-proc (<integer>) <integer> pure))
(declare-method r-sign (:simple-proc (<real>) <integer> pure))
(declare-virtual-method sign (:simple-proc (<integer>) <integer> pure))
(declare-virtual-method sign (:simple-proc (<real>) <integer> pure))
(declare-method nan (:simple-proc () <real> pure))
(declare-method inf (:simple-proc () <real> pure))
(declare-method neg-inf (:simple-proc () <real> pure))
(declare-method nan? (:simple-proc (<real>) <boolean> (pure)))
(declare-method infinite? (:simple-proc (<real>) <boolean> (pure)))
(declare-method finite? (:simple-proc (<real>) <boolean> (pure)))
(declare-param-method min (%number) (%number %number) %number pure)
(declare-param-method max (%number) (%number %number) %number pure)
(declare-method even? (:simple-proc (<integer>) <boolean> pure))
(declare-method odd? (:simple-proc (<integer>) <boolean> pure)))
|