fbe-genenv.scm 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. #| -*-Scheme-*-
  2. Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
  3. 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
  4. 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Massachusetts
  5. Institute of Technology
  6. This file is part of MIT/GNU Scheme.
  7. MIT/GNU Scheme is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or (at
  10. your option) any later version.
  11. MIT/GNU Scheme is distributed in the hope that it will be useful, but
  12. WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. General Public License for more details.
  15. You should have received a copy of the GNU General Public License
  16. along with MIT/GNU Scheme; if not, write to the Free Software
  17. Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
  18. USA.
  19. |#
  20. (define (generic-environment-maker)
  21. ;; FBE
  22. (let ((e (extend-top-level-environment scmutils-base-environment)
  23. ;;(extend-top-level-environment scmutils-base-environment '(generic)) ; guile
  24. ))
  25. (let ((d (lambda (name value)
  26. (environment-define e name value))))
  27. (d '*environment* 'generic-environment)
  28. ;; Unary operators from generic.scm
  29. (d 'type g:type)
  30. (d 'type-predicate g:type-predicate)
  31. (d 'arity g:arity)
  32. (d 'inexact? g:inexact?)
  33. (d 'zero-like g:zero-like)
  34. (d 'one-like g:one-like)
  35. (d 'identity-like g:identity-like)
  36. (d 'zero? g:zero?)
  37. (d 'one? g:one?)
  38. (d 'identity? g:identity?)
  39. (d 'negate g:negate)
  40. (d 'invert g:invert)
  41. (d 'square g:square)
  42. (d 'cube g:cube)
  43. (d 'sqrt g:sqrt)
  44. (d 'exp g:exp)
  45. (d 'log g:log)
  46. (d 'exp2 g:exp2)
  47. (d 'exp10 g:exp10)
  48. (d 'log2 g:log2)
  49. (d 'log10 g:log10)
  50. (d 'sin g:sin)
  51. (d 'cos g:cos)
  52. (d 'tan g:tan)
  53. (d 'cot g:cot)
  54. (d 'sec g:sec)
  55. (d 'csc g:csc)
  56. (d 'asin g:asin)
  57. (d 'acos g:acos)
  58. (d 'sinh g:sinh)
  59. (d 'cosh g:cosh)
  60. (d 'tanh g:tanh)
  61. (d 'sech g:sech)
  62. (d 'csch g:csch)
  63. (d 'asinh g:asinh)
  64. (d 'acosh g:acosh)
  65. (d 'atanh g:atanh)
  66. (d 'abs g:abs)
  67. (d 'determinant g:determinant)
  68. (d 'trace g:trace)
  69. (d 'transpose g:transpose)
  70. (d 'dimension g:dimension)
  71. (d 'solve-linear g:solve-linear)
  72. (d 'derivative g:derivative)
  73. ;; Binary (and nary) operators from generic.scm
  74. (d '= g:=)
  75. (d '< g:<)
  76. (d '<= g:<=)
  77. (d '> g:>)
  78. (d '>= g:>=)
  79. (d '+ g:+)
  80. (d '- g:-)
  81. (d '* g:*)
  82. (d '/ g:/)
  83. (d 'dot-product g:dot-product)
  84. (d 'cross-product g:cross-product)
  85. (d 'outer-product g:outer-product)
  86. (d 'expt g:expt)
  87. (d 'gcd g:gcd)
  88. ;; Complex operators from generic.scm
  89. (d 'make-rectangular g:make-rectangular)
  90. (d 'make-polar g:make-polar)
  91. (d 'real-part g:real-part)
  92. (d 'imag-part g:imag-part)
  93. (d 'magnitude g:magnitude)
  94. (d 'angle g:angle)
  95. (d 'conjugate g:conjugate)
  96. ;; Wierd operators from generic.scm
  97. (d 'atan g:atan)
  98. (d 'partial-derivative g:partial-derivative)
  99. (d 'partial g:partial)
  100. (d 'apply g:apply)
  101. ;; Compound operators from mathutil.scm
  102. (d 'arg-scale g:arg-scale)
  103. (d 'arg-shift g:arg-shift)
  104. (d 'sigma g:sigma)
  105. (d 'ref g:ref)
  106. (d 'size g:size)
  107. (d 'compose g:compose)
  108. )
  109. e))
  110. ;; (define generic-environment
  111. ;; (generic-environment-maker))
  112. (define generic-numerical-operators
  113. '(
  114. zero-like
  115. one-like
  116. identity-like
  117. negate
  118. invert
  119. square
  120. cube
  121. sqrt
  122. exp
  123. log
  124. exp2
  125. exp10
  126. log2
  127. log10
  128. sin
  129. cos
  130. tan
  131. sec
  132. csc
  133. asin
  134. acos
  135. sinh
  136. cosh
  137. tanh
  138. sech
  139. csch
  140. abs
  141. +
  142. -
  143. *
  144. /
  145. expt
  146. gcd
  147. make-rectangular
  148. make-polar
  149. real-part
  150. imag-part
  151. magnitude
  152. angle
  153. conjugate
  154. atan))
  155. #|
  156. (let ((numerical-environment
  157. (extend-top-level-environment generic-environment)))
  158. (environment-define scmutils-base-environment
  159. 'numerical-environment
  160. numerical-environment)
  161. (environment-define numerical-environment
  162. '*environment*
  163. 'numerical-environment))
  164. |#
  165. ;; FBE
  166. ;; (let ((numerical-environment
  167. ;; (extend-top-level-environment scmutils-base-environment)
  168. ;; ;;(extend-top-level-environment scmutils-base-environment '(numerical)) ; guile
  169. ;; ))
  170. ;; (environment-define scmutils-base-environment
  171. ;; 'numerical-environment
  172. ;; numerical-environment)
  173. ;; (environment-define numerical-environment
  174. ;; '*environment*
  175. ;; 'numerical-environment))