migrate last of system definitions into cls.asd. We now need to be careful that...
[CommonLispStat.git] / src / packages.lisp
blob928f6e874de725f2db161e8793b1fe7c4932235d
1 ;;; -*- mode: lisp -*-
3 ;;; Time-stamp: <2009-12-23 08:33:58 tony>
4 ;;; Creation: <2008-03-11 19:18:34 user>
5 ;;; File: packages.lisp
6 ;;; Author: AJ Rossini <blindglobe@gmail.com>
7 ;;; Copyright: (c)2007--2008, AJ Rossini. BSD, LLGPL, or GPLv2, depending
8 ;;; on how it arrives.
9 ;;; Purpose: package structure description for lispstat
11 ;;; What is this talk of 'release'? Klingons do not make software
12 ;;; 'releases'. Our software 'escapes', leaving a bloody trail of
13 ;;; designers and quality assurance people in its wake.
15 (in-package :cl-user)
17 ;;; Current structure, dependencies:
19 (progn
20 (ls-user :depends-on lisp-stat)
21 (lisp-stat :depends-on '(cls-dataframe
22 cls-data
23 lisp-matrix
25 (cls-dataframe :depends-on cls-data)
26 |#
30 ;;; Basics
34 This is setup in cls.asd upon ASDF-style loading. For any other
35 system loader, we will need to ensure the same.
37 (defpackage :lisp-stat-config
38 (:documentation "global settings and variables. Probably need a
39 localization tool as well.")
40 (:use :common-lisp)
41 (:export *common-lisp-stat-version*
42 *default-path* *lsos-files* *basic-files* *ls-files*
44 *cls-data-dir* *cls-home-dir* *cls-examples-dir*))
48 (defpackage :lisp-stat-object-system
49 (:nicknames :ls-objects :lsos)
50 (:use :common-lisp)
51 (:shadow :call-method :call-next-method)
52 (:export ls-object objectp *object* kind-of-p make-object
53 *message-hook*
54 *set-slot-hook* proto-slot-value self
55 send call-next-method call-method
56 defmeth defproto instance-slots proto-name))
58 ;;; -types and -float probably ought to be moved into a -numerics
59 ;;; package.
61 (defpackage :lisp-stat-types
62 (:documentation "Provides some typeing for LispStat, but is clearly
63 a bit incomplete.")
64 (:use :common-lisp)
65 (:export fixnump
66 check-nonneg-fixnum check-one-nonneg-fixnum
67 check-one-fixnum check-one-real check-one-number))
69 (defpackage :lisp-stat-float
70 (:use :common-lisp)
71 (:export +stat-float-typing+ +stat-cfloat-typing+ +stat-float-template+
72 machine-epsilon base-float makedouble
74 make-base-trans-fun-2 make-base-trans-fun
76 base-log base-exp base-expt base-sqrt base-sin base-cos
77 base-tan base-asin base-acos base-atan base-sinh
78 BASE-COSH BASE-TANH BASE-ASINH BASE-ACOSH BASE-ATANH
79 BASE-ABS BASE-PHASE BASE-FFLOOR BASE-FCEILING BASE-FTRUNCATE
80 BASE-FROUND BASE-SIGNUM BASE-CIS))
82 ;;; Probably should move into cls-data package.
84 (defpackage :lisp-stat-compound-data
85 (:use :common-lisp
86 :lisp-stat-object-system
87 :lisp-stat-types)
88 (:shadowing-import-from :lisp-stat-object-system
89 call-next-method call-method)
90 (:export compound-data-p *compound-data-proto*
91 compound-object-p
92 compound-data-seq compound-data-length
93 element-list element-seq
94 sort-data order rank
95 recursive-map-elements map-elements repeat
96 check-sequence
97 get-next-element make-next-element set-next-element
98 ;; sequencep
99 iseq ordered-nneg-seq
100 select split-list which
101 difference rseq
102 flatten-list))
104 (defpackage :lisp-stat-macros
105 (:use :common-lisp
106 :lisp-stat-compound-data)
107 (:export make-rv-function make-rv-function-1))
109 (defpackage :lisp-stat-basics
110 (:use :common-lisp
111 :lisp-stat-object-system
112 :lisp-stat-types
113 :lisp-stat-float
114 :lisp-stat-macros
115 :lisp-stat-compound-data)
116 (:shadowing-import-from :lisp-stat-object-system
117 call-method call-next-method)
118 (:export permute-array sum prod count-elements mean
119 if-else sample))
121 (defpackage :lisp-stat-float
122 (:use :common-lisp)
123 (:export +stat-float-typing+ +stat-cfloat-typing+ +stat-float-template+
124 machine-epsilon base-float makedouble
126 make-base-trans-fun-2 make-base-trans-fun
128 BASE-LOG BASE-EXP BASE-EXPT BASE-SQRT BASE-SIN BASE-COS
129 BASE-TAN BASE-ASIN BASE-ACOS BASE-ATAN BASE-SINH
130 BASE-COSH BASE-TANH BASE-ASINH BASE-ACOSH BASE-ATANH
131 BASE-ABS BASE-PHASE BASE-FFLOOR BASE-FCEILING BASE-FTRUNCATE
132 BASE-FROUND BASE-SIGNUM BASE-CIS))
134 (defpackage :lisp-stat-macros
135 (:use :common-lisp
136 :lisp-stat-compound-data)
137 (:export make-rv-function make-rv-function-1))
140 (defpackage :cls-matrix
141 (:documentation "basic utilities for using lisp arrays as numerical
142 matrices. Not optimized, and must consider this slow. Routines
143 should be optimized, it is only that we need them first, optimize
144 them later.")
145 (:use :common-lisp)
146 (:export matrixp num-rows num-cols matmult identity-matrix diagonal
147 row-list column-list inner-product outer-product
148 cross-product transpose bind-columns bind-rows
149 array-data-vector vector-to-array))
152 ;;; NEW CLOS STRUCTURE
154 ;; CLS-DATA contains the basic variable structure, classes, support/indexing, and mixins.
155 ;; CLS-DATAFRAME leverages CLS-DATA, XARRAY, and LISP-MATRIX
156 ;; CLS-DATAIO stores/saves structures
157 ;; CLS-DATATRANS converts between structures, and from DATAFRAMES to MODEL-MATRIXES
159 (defpackage :cls-data
160 (:use :common-lisp)
161 (:shadowing-import-from :xarray slice)
162 (:export
166 ;;; cls-data... in dataframe, though.
167 (defpackage :cls-dataframe
168 (:use :common-lisp
169 :cls-data
170 :xarray
171 :lisp-matrix)
172 (:shadowing-import-from :xarray slice)
173 (:export
174 ;; generic container class for data -- if small enough
175 ;; could be value, otherwise might be reference.
176 dataframe-like
177 dataframe-array
178 make-dataframe
180 dataset
181 list-of-columns ;; list-of-variables
182 list-of-rows ;; list-of-observations
184 ;; accessors
185 varlabels caselabels nrows ncols
186 dataframe-dimension dataframe-dimensons
187 xref xtype xdims xdim xrank slice take carray
192 (defpackage :cls-dataio
193 (:documentation "Data I/O and similar import technologies.")
194 (:use :common-lisp
195 :lisp-stat-object-system
196 :cls-data
197 :cls-dataframe
198 :rsm.string)
199 (:shadowing-import-from :lisp-stat-object-system
200 call-method call-next-method)
201 (:export dsvstream->dataframe dsvstream->matrix dsvstream->listoflist))
203 (defpackage :cls-datatrans
204 (:documentation "Data I/O and similar import technologies.")
205 (:use :common-lisp
206 :lisp-stat-object-system
207 :cls-data
208 :cls-dataframe
209 :rsm.string)
210 (:shadowing-import-from :lisp-stat-object-system
211 call-method call-next-method)
212 (:export dsvstream->dataframe dsvstream->matrix dsvstream->listoflist
214 listoflist->dataframe
215 listoflist->array
216 listoflist->matrix-like
217 filename.dsv->dataframe ))
219 ;;;; MODELING
221 (defpackage :lisp-stat-model
222 (:documentation "Model management for data analysis.")
223 (:use :common-lisp
224 :lisp-matrix)
225 (:export
226 ;; data structures for model and model/data combination
227 model statistical-model analysis))
229 ;;; visualization
231 (defpackage :cls-visualize
232 (:use :common-lisp
233 :lisp-matrix
234 :cls-dataframe)
235 (:shadowing-import-from :xarray slice)
239 (defpackage :cls-visualize-plplot
240 (:use :common-lisp
241 :lisp-matrix
242 :cls-dataframe
243 :cl-plplot-system)
244 (:export
245 ;; examples
246 plot-ex contour-plot-ex fn-contour-plot-ex shade-plot-ex 3D-plot-ex))
249 ;;; USER PACKAGES
251 (defpackage :lisp-stat-ffi-int
252 (:use :common-lisp
253 :cffi)
254 (:export ccl-store-integer ccl-store-double ccl-store-ptr
255 get-buf ))
257 (defpackage :lisp-stat-probability
258 (:use :common-lisp
259 :cffi
260 :lisp-stat-ffi-int
261 :lisp-stat-macros)
262 (:export log-gamma set-seed
263 uniform-rand
264 normal-cdf normal-quant normal-dens normal-rand
265 bivnorm-cdf
266 cauchy-cdf cauchy-quant cauchy-dens cauchy-rand
267 gamma-cdf gamma-quant gamma-dens gamma-rand
268 chisq-cdf chisq-quant chisq-dens chisq-rand
269 beta-cdf beta-quant beta-dens beta-rand
270 t-cdf t-quant t-dens t-rand
271 f-cdf f-quant f-dens f-rand
272 poisson-cdf poisson-quant poisson-pmf poisson-rand
273 binomial-cdf binomial-quant binomial-pmf binomial-rand))
277 (defpackage :lisp-stat-math
278 (:use :common-lisp
279 :lisp-stat-object-system
280 :lisp-stat-macros
281 :lisp-stat-compound-data
282 :lisp-stat-float)
283 (:shadowing-import-from :lisp-stat-object-system
284 call-method call-next-method)
285 (:shadow expt + - * / ** mod rem abs 1+ 1- log exp sqrt sin cos tan
286 asin acos atan sinh cosh tanh asinh acosh atanh float random
287 truncate floor ceiling round minusp zerop plusp evenp oddp
288 < <= = /= >= > ;; complex
289 conjugate realpart imagpart phase
290 min max logand logior logxor lognot ffloor fceiling
291 ftruncate fround signum cis)
292 (:export ^ ** expt + - * / mod rem pmin pmax abs 1+ 1- log exp sqrt sin cos
293 tan asin acos atan sinh cosh tanh asinh acosh atanh float random
294 truncate floor ceiling round minusp zerop plusp evenp oddp < <= =
295 /= >= > ;; complex
296 conjugate realpart imagpart phase min max
297 logand logior logxor lognot ffloor fceiling ftruncate fround
298 signum cis)
299 (:documentation "Vectorization of numerical functions"))
302 #| ;; some of this goes back in, but not all of it?
303 (defpackage :lisp-stat-linalg
304 (:use :common-lisp
305 :cffi
306 :lisp-matrix
307 :lisp-stat-math
308 :lisp-stat-types
309 :lisp-stat-float
310 :lisp-stat-compound-data)
311 (:shadowing-import-from :lisp-stat-math
312 expt + - * / ** mod rem abs 1+ 1- log exp sqrt sin cos tan
313 asin acos atan sinh cosh tanh asinh acosh atanh float random
314 truncate floor ceiling round minusp zerop plusp evenp oddp
315 < <= = /= >= > complex conjugate realpart imagpart phase
316 min max logand logior logxor lognot ffloor fceiling
317 ftruncate fround signum cis)
318 (:export chol-decomp lu-decomp lu-solve determinant inverse
319 sv-decomp qr-decomp rcondest make-rotation spline
320 kernel-dens kernel-smooth
321 fft make-sweep-matrix sweep-operator ax+y eigen
323 check-real ;; for optimize
325 covariance-matrix matrix print-matrix solve
326 backsolve eigenvalues eigenvectors accumulate cumsum combine
327 lowess))
334 (defpackage :lisp-stat-data
335 (:documentation "Data management, integration, I/O, and other data technologies.")
336 (:nicknames :ls-data)
337 (:use :common-lisp
338 :lisp-stat-object-system
339 :lisp-stat-config
340 :lisp-stat-types
341 :lisp-stat-compound-data)
342 (:shadowing-import-from :lisp-stat-object-system
343 call-method call-next-method)
344 (:export
345 ;; generic structures
346 ;; Variables
347 empirical-statistical-variable
348 modelbased-statistical-variable
349 categorical-statistical-variable
350 nominal-statistical-variable
351 ordinal-statistical-variable
352 continuous-statistical-variable
354 ordering factor-levels nobs support pdmf draw
355 print-object
357 ;; Observations
358 statistical-observation
359 measurement-types record
360 ;; XLS compat tools
361 open-file-dialog read-data-file read-data-columns load-data
362 load-example *variables* *ask-on-redefine*
363 def variables savevar undef))
365 (defpackage :lisp-stat-descriptive-statistics
366 (:use :common-lisp
367 :lisp-matrix
368 :lisp-stat-data
369 :lisp-stat-math
370 :lisp-stat-compound-data
371 :lisp-stat-basics)
372 (:shadowing-import-from :lisp-stat-math ;; life is a vector!
373 expt + - * / ** mod rem abs 1+ 1- log exp sqrt sin cos tan
374 asin acos atan sinh cosh tanh asinh acosh atanh float random
375 truncate floor ceiling round minusp zerop plusp evenp oddp
376 < <= = /= >= > ;; complex
377 conjugate realpart imagpart phase
378 min max logand logior logxor lognot ffloor fceiling
379 ftruncate fround signum cis)
380 (:export mean standard-deviation variance
381 quantile median interquartile-range
382 fivnum sample))
384 (defpackage :lisp-stat-regression-linear
385 (:use :common-lisp
386 :lisp-matrix
387 :lisp-stat-basics
388 :lisp-stat-compound-data
389 :lisp-stat-descriptive-statistics )
390 (:shadowing-import-from :lisp-stat-object-system
391 call-method call-next-method)
392 (:export regression-model fit-model
394 estimates covariance-matrix
395 ;; functions for helpers
396 lm xtxinv
397 print-object ;; for method dispatch
400 (defpackage :common-lisp-statistics
401 (:documentation "Experimentation package for LispStat. Serious work
402 should be packaged up as a separate but similar package to help
403 drive reproducibility. By this I mean, creating a
404 data/analytics/analysis package with the minimal set of
405 objects/packages required.")
406 (:nicknames :cls :common-lisp-statistics :lisp-stat)
407 (:use :common-lisp
408 :xarray ;; generic reference -- internally supporting array, lol structs
409 :listoflist
410 :lisp-matrix ;; conversion to a more robust linalg approach
411 :lisp-stat-config
412 :lisp-stat-object-system
413 :lisp-stat-compound-data
414 :lisp-stat-probability
415 :lisp-stat-types
416 :lisp-stat-float
417 :lisp-stat-basics
418 :lisp-stat-data
419 :cls-dataframe
420 :cls-data
421 :lisp-stat-math
422 :lisp-stat-descriptive-statistics
423 :lisp-stat-regression-linear
424 :cls-visualize
425 ;; :cybertiggyr-dsv
426 ;; :cls-visualize-plplot
428 (:shadowing-import-from :xarray slice)
429 (:shadowing-import-from :lisp-stat-object-system
430 call-method call-next-method)
431 (:shadowing-import-from :lisp-stat-math
432 expt + - * / ** mod rem abs 1+ 1- log exp sqrt sin cos tan
433 asin acos atan sinh cosh tanh asinh acosh atanh float random
434 truncate floor ceiling round minusp zerop plusp evenp oddp
435 < <= = /= >= >
436 ;;complex
437 conjugate realpart imagpart phase
439 min max
440 logand logior logxor lognot
441 ffloor fceiling ftruncate fround
442 signum cis)
443 (:export
444 ;; lisp-stat-config:
445 *default-path* *lsos-files* *basic-files* *ls-files*
446 l *cls-home-dir* *cls-data-dir* *cls-examples-dir*
448 ;; lsobjects :
449 defproto defproto2
450 defmeth send proto-slot-value
452 ;; lstypes :
453 fixnump check-nonneg-fixnum check-one-fixnum
454 check-one-nonneg-fixnum
455 check-one-real check-one-number
457 ;; lsmacros:
459 ;; lsfloat :
460 machine-epsilon
462 ;; compound :
463 compound-data-p *compound-data-proto* compound-object-p
464 compound-data-seq compound-data-length
465 element-list element-seq
466 sort-data order rank
467 recursive-map-elements map-elements
468 repeat
469 check-sequence
470 get-next-element make-next-element set-next-element
471 ;; sequencep
472 iseq
473 ordered-nneg-seq
474 select which
475 difference rseq
477 ;; lsmath.lsp
478 ^ ** expt + - * / mod rem pmin pmax abs 1+ 1- log exp sqrt sin cos
479 tan asin acos atan sinh cosh tanh asinh acosh atanh float random
480 truncate floor ceiling round minusp zerop plusp evenp oddp < <= =
481 /= >= > ;; complex
482 conjugate realpart imagpart phase min max
483 logand logior logxor lognot ffloor fceiling ftruncate fround
484 signum cis
486 #| ;; The following need to be re-found in lisp-matrix...
488 ;; matrices.lisp
489 matrixp num-rows num-cols matmult identity-matrix diagonal row-list
490 column-list inner-product outer-product cross-product transpose
491 bind-columns bind-rows
493 ;; linalg.lisp
494 chol-decomp lu-decomp lu-solve determinant inverse
495 sv-decomp qr-decomp rcondest make-rotation spline
496 kernel-dens kernel-smooth
497 fft make-sweep-matrix sweep-operator ax+y eigen
498 check-real
499 covariance-matrix matrix print-matrix solve
500 backsolve eigenvalues eigenvectors accumulate cumsum combine
501 lowess
503 ;; in linalg.lisp, possibly not supported by matlisp
504 spline kernel-dens kernel-smooth
508 ;; optimize.lsp
509 newtonmax nelmeadmax
511 ;; package LISPSTAT-MACROS
512 make-rv-function make-rv-function-1
514 ;; package XARRAY
515 xref xtype xdims xdim xdims*
517 ;; package LISTOFLIST
518 sublists-of-same-size-p equal-listoflist transpose-listoflist
520 ;; package DATA
521 ;; need to take this list and make it symbols... specs could mean
522 ;; that we process the strings in different ways? Create such a
523 ;; macro to enable export within this package?
525 (let ((lst ()))
526 (unlist
527 (mapc #'symbol-for-symbol-to-string-or-symbol
528 (do-external-symbols (s (find-package 'lisp-stat-data) lst) (push s lst))))
529 lst)
531 open-file-dialog read-data-file read-data-columns load-data
532 load-example *variables* *ask-on-redefine*
533 def variables savevar undef
534 ;; dataframe
535 dataframe-like dataframe-array make-dataframe
536 varlabels caselabels nrows ncols
537 dataframe-dimension dataframe-dimensons
538 dfref dfref-case dfref-var
539 consistent-dataframe-p
540 dataset list-of-columns list-of-rows
542 ;; listoflist
543 listoflist->dataframe listoflist->array listoflist->matrix-like
545 ;; statistics.lsp (descriptions, should probably be moved
546 ;; later...?
547 standard-deviation quantile median interquartile-range
548 fivnum sample
550 ;; probability (dists.lisp)
551 log-gamma set-seed
552 uniform-rand normal-cdf normal-quant normal-dens
553 normal-rand bivnorm-cdf cauchy-cdf cauchy-quant cauchy-dens
554 cauchy-rand gamma-cdf gamma-quant gamma-dens gamma-rand
555 chisq-cdf chisq-quant chisq-dens chisq-rand beta-cdf beta-quant
556 beta-dens beta-rand t-cdf t-quant t-dens t-rand f-cdf f-quant
557 f-dens f-rand poisson-cdf poisson-quant poisson-pmf poisson-rand
558 binomial-cdf binomial-quant binomial-pmf binomial-rand
560 ;; Here is where we have a problem -- lispstat core should be core
561 ;; data management and config problems, with packages providing
562 ;; specialized extensions to LispStat, i.e. regression, nonlin
563 ;; regression, bayesian regression via laplace approximation, etc.
565 ;; The following could be considered "recommended packages",
566 ;; similar to the idea of the recommended packages in R. Probably
567 ;; we want them to do the exporting within that package, therefore
568 ;; NOT being able to lock the "data-ish" package, but only the
569 ;; subpackages prior to export.
571 ;; regression.lsp
572 ;; -- linear regressin models.
573 regression-model fit-model
574 estimates covariance-matrix
576 regression-model-proto x y intercept sweep-matrix
577 basis weights included total-sum-of-squares residual-sum-of-squares
578 predictor-names response-name case-labels
579 lm xtxinv
581 ;; nonlin.lsp
582 ;; -- nonlinear regression models
583 nreg-model nreg-model-proto mean-function theta-hat epsilon
584 count-limit verbose
585 ;; we might need something like xtxinv here? But should be
586 ;; encapsulated, so we use the one in regression.lisp
588 ;; bayes.lsp
589 bayes-model bayes-model-proto bayes-internals
591 ;; plots.lisp
592 plot-ex
593 contour-plot-ex
594 fn-contour-plot-ex
595 shade-plot-ex
596 3D-plot-ex
601 ;;;; PACKAGES FOR USEABILITY
603 (defpackage :lisp-stat-data-examples
604 (:documentation "Example data for unittests, examples, illustrations,")
605 (:use :common-lisp
606 :common-lisp-statistics)
607 (:shadowing-import-from :lisp-stat
608 call-method call-next-method
610 expt + - * / ** mod rem abs 1+ 1- log exp sqrt sin cos tan
611 asin acos atan sinh cosh tanh asinh acosh atanh float random
612 truncate floor ceiling round minusp zerop plusp evenp oddp
613 < <= = /= >= > > ;; complex
614 conjugate realpart imagpart phase
615 min max logand logior logxor lognot ffloor fceiling
616 ftruncate fround signum cis
618 <= float imagpart)
619 (:export iron aluminum absorbtion
620 diabetes dlabs))
623 (defpackage :lisp-stat-user
624 (:documentation "Experimentation package for LispStat. Serious work
625 should be placed in a similar package elsewhere for
626 reproducibility. But this should hint as to what needs to be done
627 for a user- or analysis-package.")
628 (:nicknames :ls-user :cls-user)
629 (:use :common-lisp ; always needed for user playgrounds!
630 :lisp-matrix
631 :common-lisp-statistics
632 :lisp-stat-data-examples) ;; this last is to have 'things to play with'
633 (:shadowing-import-from :lisp-stat
634 call-method call-next-method
636 expt + - * / ** mod rem abs 1+ 1- log exp sqrt sin cos tan
637 asin acos atan sinh cosh tanh asinh acosh atanh float random
638 truncate floor ceiling round minusp zerop plusp evenp oddp
639 < <= = /= >= > > ;; complex
640 conjugate realpart imagpart phase
641 min max logand logior logxor lognot ffloor fceiling
642 ftruncate fround signum cis
644 <= float imagpart))
646 (defpackage :lisp-stat-unittests
647 (:use :common-lisp
648 :lift :lisp-matrix
649 :lisp-stat :lisp-stat-data-examples)
650 (:shadowing-import-from :lisp-stat
651 call-method call-next-method ;; objects
652 expt + - * / ** mod rem abs 1+ 1- log exp sqrt sin cos tan ;; lsmath
653 asin acos atan sinh cosh tanh asinh acosh atanh float random
654 truncate floor ceiling round minusp zerop plusp evenp oddp
655 < <= = /= >= > ;; complex
656 conjugate realpart imagpart phase
657 min max logand logior logxor lognot ffloor fceiling
658 ftruncate fround signum cis)
659 (:export run-lisp-stat-tests run-lisp-stat-test scoreboard ; exec
660 almost= almost=lists numerical=)) ; compare
662 (defpackage :cls-dataframe-example
663 (:use :common-lisp
664 :lift :lisp-stat-unittests
665 :lisp-stat-data-examples
666 :cls-dataframe)
667 (:export absorbtion aluminum iron))
670 (defpackage :lisp-stat-optimize
671 (:use :common-lisp
672 :cffi
673 :lisp-matrix
674 :lisp-stat-ffi-int
675 :lisp-stat-object-system
676 :lisp-stat-types
677 :lisp-stat-compound-data
678 :lisp-stat-math
679 :lisp-stat-float
680 :lisp-stat-basics
682 :lisp-stat-matrix
683 :lisp-stat-linalg-data
684 :lisp-stat-linalg
687 (:shadowing-import-from :lisp-stat-object-system
688 call-method call-next-method)
689 (:shadowing-import-from :lisp-stat-math
690 expt + - * / ** mod rem abs 1+ 1- log exp sqrt sin cos tan
691 asin acos atan sinh cosh tanh asinh acosh atanh float random
692 truncate floor ceiling round minusp zerop plusp evenp oddp
693 < <= = /= >= > complex conjugate realpart imagpart phase
694 min max logand logior logxor lognot ffloor fceiling
695 ftruncate fround signum cis)
696 (:export
697 ;; derivatives
698 numgrad numhess
700 ;; optimization
701 newtonmax nelmeadmax))