source: project/release/3/mathh/trunk/doc.scm @ 8595

Last change on this file since 8595 was 8595, checked in by Kon Lovett, 12 years ago

Save.

File size: 19.6 KB
Line 
1;;;; doc.scm -*- Scheme -*-
2
3(use eggdoc)
4
5(define license
6"This code is in the public domain")
7
8(define doc `(
9  (eggdoc:begin
10    (name "mathh")
11    (description
12      (p "Provides:")
13      (ul
14        (li "* access to ISO C math functions in " (code "<math.h>") " "
15          "that are not defined by Chicken.")
16        (li "* " (code "<float.h>") " constants, common derived constants, and "
17          "limits for Chicken numeric types.")
18        (li "* R6RS arithmetic functions.") ) )
19
20    (author "John Cowan and Kon Lovett")
21
22    (usage)
23    (download "mathh.egg")
24
25    (documentation
26
27      (subsection "Floating-point Functions"
28
29        (p "The following procedures are provided, with their usual meaning.")
30
31        (p "Windows does not provide native implementations of log1p, lgamma, "
32        "tgamma. However log1p is approximated.")
33
34        (p "The Bessel functions are prefixed by 'bessel-' to distinguish "
35        "the names from common variables.")
36
37        (procedure "(bessel-j0 N)")
38        (procedure "(bessel-j1 N)")
39        (procedure "(bessel-jn O N)")
40        (procedure "(bessel-y0 N)")
41        (procedure "(bessel-y1 N)")
42        (procedure "(bessel-yn O N)")
43
44        (procedure "(cosh N)")
45        (procedure "(sinh N)")
46        (procedure "(tanh N)")
47        (procedure "(hypot N1 N2)")
48
49        (procedure "(gamma N)")
50        (procedure "(lgamma N)")
51
52        (procedure "(log10 N)")
53        (procedure "(log2 N)")
54        (procedure "(log1p N)")
55
56        (procedure "(make-log/base BASE)"
57          (p "Returns a procedure of one argument, the logarithm "
58          "function for " (tt "BASE") "."))
59
60        (procedure "(ldexp N)")
61        (procedure "(scalbn N)")
62
63        (procedure "(fpmod N M)"
64          (p "Returns the modulus of " (tt "N") " for " (tt "M") ".") )
65
66        (procedure "(modf N)"
67          (p "Returns two values, the integral and fractional part of "
68          (tt "N") ".") )
69
70        (procedure "(frexp N)"
71          (p "Returns two values, the fraction and the exponent part of "
72          (tt "N") ".") )
73      )
74
75      (subsection "Float Classification"
76
77        (usage "(require-extension matth-fpclass)")
78
79        (procedure "(fpclassify N)"
80          (p "Returns a symbol denoting the kind of floating-point number.")
81          (symbol-table "Float Class"
82            (describe infinite "")
83            (describe nan "")
84            (describe normal "")
85            (describe subnormal "")
86            (describe zero "")
87            (describe unclassified "")) )
88
89        (procedure "(fpclass N)"
90          (p "Returns a symbol denoting the kind of floating-point number.")
91          (symbol-table "Float Class"
92            (describe positive-infinite "")
93            (describe negative-infinite "")
94            (describe quiet-nan "")
95            (describe signaling-nan "")
96            (describe positive-normal "")
97            (describe negative-normal "")
98            (describe positive-subnormal "")
99            (describe negative-subnormal "")
100            (describe positive-zero "")
101            (describe negative-zero "")
102            (describe unclassified "")) )
103      )
104
105      (subsection "Integer Constants"
106
107        (usage "(require-extension matth-int)")
108
109        (symbol-table
110          (describe most-positive-fixnum "Largest positive fixnum")
111          (describe most-negative-fixnum "Smallest negative fixnum")
112          (describe fixnum-precision "Number of bits in fixnum")
113          (describe machine-word-bits "Number of bits in machine word - C_word")
114          (describe maximum-machine-word "Largest machine word value - C_uword")
115          (describe most-negative-machine-word "Smallest negative machine word value - C_word")
116          (describe most-positive-machine-word "Largest positive machine word value - C_word")
117          (describe unsigned-integer32-size "Sizeof uint32_t")
118          (describe maximum-unsigned-integer32 "Largest value for uint32_t")
119          (describe unsigned-char-size "Sizeof the C type")
120          (describe unsigned-short-size "Sizeof the C type")
121          (describe unsigned-int-size "Sizeof the C type")
122          (describe unsigned-long-size "Sizeof the C type")
123          (describe unsigned-long-long-size "Sizeof the C type, 0 when unsupported")
124          (describe char-size "Sizeof the C type")
125          (describe short-size "Sizeof the C type")
126          (describe int-size "Sizeof the C type")
127          (describe long-size "Sizeof the C type")
128          (describe long-long-size "Sizeof the C type, 0 when unsupported") )
129      )
130
131      (subsection "Floating-point Constants"
132
133        (usage "(require-extension matth-float)")
134
135        (symbol-table
136          (describe float-radix "Representation base of floating point number")
137          (describe maximum-float "Largest floating point number")
138          (describe minimum-float "Smallest floating point number")
139          (describe float-epsilon "The difference between 1.0 and the least value > 1.0 of a floating point number")
140          (describe float-precision "Number of digits in mantissa base radix of floating point number")
141          (describe float-decimal-precision "Number of digits in mantissa base 10 of floating point number")
142          (describe float-maximum-exponent "Largest exponent in base radix of floating point number")
143          (describe float-minimum-exponent "Smallest exponent in base radix of floating point number")
144          (describe float-maximum-decimal-exponent "Largest exponent in base 10 of floating point number")
145          (describe float-minimum-decimal-exponent "Smallest exponent in base 10 of floating point number")
146          (describe maximum-double "Largest floating point number")
147          (describe minimum-double "Smallest floating point number")
148          (describe double-epsilon "The difference between 1.0 and the least value > 1.0 of a floating point number")
149          (describe double-precision "Number of digits in mantissa base radix of floating point number")
150          (describe double-decimal-precision "Number of digits in mantissa base 10 of floating point number")
151          (describe double-maximum-exponent "Largest exponent in base radix of floating point number")
152          (describe double-minimum-exponent "Smallest exponent in base radix of floating point number")
153          (describe double-maximum-decimal-exponent "Largest exponent in base 10 of floating point number")
154          (describe double-minimum-decimal-exponent "Smallest exponent in base 10 of floating point number")
155          (describe maximum-long-double "Largest floating point number")
156          (describe minimum-long-double "Smallest floating point number")
157          (describe long-double-epsilon "The difference between 1.0 and the least value > 1.0 of a floating point number")
158          (describe long-double-precision "Number of digits in mantissa base radix of floating point number")
159          (describe long-double-decimal-precision "Number of digits in mantissa base 10 of floating point number")
160          (describe long-double-maximum-exponent "Largest exponent in base radix of floating point number")
161          (describe long-double-minimum-exponent "Smallest exponent in base radix of floating point number")
162          (describe long-double-maximum-decimal-exponent "Largest exponent in base 10 of floating point number")
163          (describe long-double-minimum-decimal-exponent "Smallest exponent in base 10 of floating point number")
164          (describe long-double-radix "Representation base of floating point number")
165          (describe maximum-flonum "Largest floating point number")
166          (describe minimum-flonum "Smallest floating point number")
167          (describe flonum-epsilon "The difference between 1.0 and the least value > 1.0 of a floating point number")
168          (describe flonum-precision "Number of digits in mantissa base radix of floating point number")
169          (describe flonum-decimal-precision "Number of digits in mantissa base 10 of floating point number")
170          (describe flonum-maximum-exponent "Largest exponent in base radix of floating point number")
171          (describe flonum-minimum-exponent "Smallest exponent in base radix of floating point number")
172          (describe flonum-maximum-decimal-exponent "Largest exponent in base 10 of floating point number")
173          (describe flonum-minimum-decimal-exponent "Smallest exponent in base 10 of floating point number") )
174      )
175
176      (subsection "Math Constants"
177
178        (usage "(include \"mathh-constants\")")
179
180        (p "Common constants, using 'define-constant'. As such they must "
181        "be textually included.")
182
183        (symbol-table
184          (describe E "e")
185          (describe 1/E "1/e")
186          (describe E^2 "e^2")
187          (describe E^PI/4 "e^(pi/4)")
188          (describe LOG2E "log2(e)")
189          (describe LOG10E "log10(e)")
190          (describe LN2 "log(2)")
191          (describe LN3 "ln(3)")
192          (describe LNPI "ln(pi)")
193          (describe LN10 "log(10)")
194          (describe 1/LN2 "1/ln(2)")
195          (describe 1/LN10 "1/ln(10)")
196          (describe PI "pi")
197          (describe PI/2 "pi/2")
198          (describe PI/4 "pi/4")
199          (describe 1/PI "1/pi")
200          (describe 2/PI "2/pi")
201          (describe 2/SQRTPI "2/sqrt(pi)")
202          (describe SQRTPI "sqrt(pi)")
203          (describe PI^2 "pi^2")
204          (describe DEGREE "pi/180")
205          (describe SQRT2 "sqrt(2)")
206          (describe 1/SQRT2 "1/sqrt(2)")
207          (describe SQRT3 "sqrt(3)")
208          (describe SQRT5 "sqrt(5)")
209          (describe SQRT10 "sqrt(10)")
210          (describe CUBERT2 "cubert(2)")
211          (describe CUBERT3 "cubert(3)")
212          (describe 4THRT2 "fourthrt(2)")
213          (describe GAMMA1/2 "gamma(1/2)")
214          (describe GAMMA1/3 "gamma(1/3)")
215          (describe GAMMA2/3 "gamma(2/3)")
216          (describe PHI "phi")
217          (describe LNPHI "ln(phi)")
218          (describe 1/LNPHI "1/ln(phi)")
219          (describe EULER "euler")
220          (describe E^EULER "e^euler")
221          (describe SIN1 "sin(1)")
222          (describe COS1 "cos(1)")
223          (describe ZETA3 "theta(3)") )
224      )
225
226      (subsection "Fixnum Procedures"
227
228        (usage "(require-extension fixnum-extras)")
229
230        (p "R6RS fixnum functions. The \"*\" prefixed functions are variable arity "
231        "versions of the built-in Chicken Scheme functions. This naming convention "
232        "violates R6RS.")
233
234        (procedure "(fixnum->string FX [RADIX])"
235          (p "") )
236
237        (procedure "(fixnum-width)"
238          (p "") )
239
240        (procedure "(least-fixnum)"
241          (p "") )
242
243        (procedure "(greatest-fixnum)"
244          (p "") )
245
246        (procedure "(fx=? FX ...)"
247          (p "") )
248
249        (procedure "(fx<? FX ...)"
250          (p "") )
251
252        (procedure "(fx>? FX ...)"
253          (p "") )
254
255        (procedure "(fx<=? FX ...)"
256          (p "") )
257
258        (procedure "(fx>=? FX ...)"
259          (p "") )
260
261        (procedure "(fxcompare FX1 FX2)"
262          (p "") )
263
264        (procedure "(fxzero? FX)"
265          (p "") )
266
267        (procedure "(fxpositive? FX)"
268          (p "") )
269
270        (procedure "(fxnegative? FX)"
271          (p "") )
272
273        (procedure "(fxodd? FX)"
274          (p "") )
275
276        (procedure "(fxeven? FX)"
277          (p "") )
278
279        (procedure "(*fxmax FX ...)"
280          (p "") )
281
282        (procedure "(*fxmin FX ...)"
283          (p "") )
284
285        (procedure "(fxmax-and-min FX ...)"
286          (p "") )
287
288        (procedure "(fxmodulo FX-N FX-D)"
289          (p "") )
290
291        (procedure "(fxabs FX)"
292          (p "") )
293
294        (procedure "(fxpow2log2 FX)"
295          (p "") )
296
297        (procedure "(fxdiv FX-N FX-D)"
298          (p "") )
299
300        (procedure "(fxdiv-and-mod FX-N FX-D)"
301          (p "") )
302
303        (procedure "(fxdiv0 FX-N FX-D)"
304          (p "") )
305
306        (procedure "(fxmod0 FX-N FX-D)"
307          (p "") )
308
309        (procedure "(fxdiv0-and-mod0 FX-N FX-D)"
310          (p "") )
311
312        (procedure "(fx*/carry FX1 FX2 FX3)"
313          (p "") )
314
315        (procedure "(fx+/carry FX1 FX2 FX3)"
316          (p "") )
317
318        (procedure "(fx-/carry FX1 FX2 FX3)"
319          (p "") )
320
321        (procedure "(fxadd1 FX)"
322          (p "") )
323
324        (procedure "(fxsub1 FX)"
325          (p "") )
326
327        (procedure "(fxquotient FX-N FX-D)"
328          (p "") )
329
330        (procedure "(fxremainder FX-N FX-D)"
331          (p "") )
332
333        (procedure "(fxarithmetic-shift FX DIRECTIONAL-AMOUNT)"
334          (p "") )
335
336        (procedure "(fxarithmetic-shift-left FX AMOUNT)"
337          (p "") )
338
339        (procedure "(fxarithmetic-shift-right FX AMOUNT)"
340          (p "") )
341
342        (procedure "(*fx- FX [FX2])"
343          (p "") )
344
345        (procedure "(*fxand FX ...)"
346          (p "") )
347
348        (procedure "(*fxior FX ...)"
349          (p "") )
350
351        (procedure "(*fxxor FX ...)"
352          (p "") )
353
354        (procedure "(fxif MASK TRUE FALSE)"
355          (p "") )
356
357        (procedure "(fxbit-count FX)"
358          (p "") )
359
360        (procedure "(fxlength FX)"
361          (p "") )
362
363        (procedure "(fxfirst-bit-set FX)"
364          (p "") )
365
366        (procedure "(fxlast-bit-set FX)"
367          (p "") )
368
369        (procedure "(fxbit-set? FX INDEX)"
370          (p "") )
371
372        (procedure "(fxcopy-bit FX INDEX BIT)"
373          (p "") )
374
375        (procedure "(fxbit-field FX START END)"
376          (p "") )
377
378        (procedure "(fxcopy-bit-field FX-TO START END FX-FROM)"
379          (p "") )
380
381        (procedure "(fxrotate-bit-field FX START END COUNT)"
382          (p "") )
383
384        (procedure "(fxreverse-bit-field FX START END)"
385          (p "") )
386      )
387
388      (subsection "Flonum Procedures"
389
390        (usage "(require-extension flonum-extras)")
391
392        (p "R6RS flonum functions.")
393
394        (procedure "(real->flonum VALUE)"
395          (p "") )
396
397        (procedure "(fixnum->flonum VALUE)"
398          (p "") )
399
400        (procedure "(fl=? FL ...)"
401          (p "") )
402
403        (procedure "(fl<? FL ...)"
404          (p "") )
405
406        (procedure "(fl>? FL ...)"
407          (p "") )
408
409        (procedure "(fl<=? FL ...)"
410          (p "") )
411
412        (procedure "(fl>=? FL ...)"
413          (p "") )
414
415        (procedure "(flcompare FL1 FL2)"
416          (p "") )
417
418        (procedure "(flinteger? FL)"
419          (p "") )
420
421        (procedure "(flzero? FL)"
422          (p "") )
423
424        (procedure "(flpositive? FL)"
425          (p "") )
426
427        (procedure "(flnegative? FL)"
428          (p "") )
429
430        (procedure "(flodd? FL)"
431          (p "") )
432
433        (procedure "(fleven? FL)"
434          (p "") )
435
436        (procedure "(flfinite? FL)"
437          (p "") )
438
439        (procedure "(flinfinite? FL)"
440          (p "") )
441
442        (procedure "(flnan? FL)"
443          (p "") )
444
445        (procedure "(fl+ FL ...)"
446          (p "") )
447
448        (procedure "(fl* FL ...)"
449          (p "") )
450
451        (procedure "(fl- FL ...)"
452          (p "") )
453
454        (procedure "(fl/ FL ...)"
455          (p "") )
456
457        (procedure "(flmax FL ...)"
458          (p "") )
459
460        (procedure "(flmin FL ...)"
461          (p "") )
462
463        (procedure "(flmax-and-min FL ...)"
464          (p "") )
465
466        (procedure "(flabs FL)"
467          (p "") )
468
469        (procedure "(flfraction FL)"
470          (p "") )
471
472        (procedure "(fltruncate FL)"
473          (p "") )
474
475        (procedure "(flfloor FL)"
476          (p "") )
477
478        (procedure "(flceiling FL)"
479          (p "") )
480
481        (procedure "(flround FL)"
482          (p "") )
483
484        (procedure "(fldiv FL-N FL-D)"
485          (p "") )
486
487        (procedure "(flmod FL-N FL-D)"
488          (p "") )
489
490        (procedure "(fldiv-and-mod FL-N FL-D)"
491          (p "") )
492
493        (procedure "(fldiv0 FL-N FL-D)"
494          (p "") )
495
496        (procedure "(flmod0 FL-N FL-D)"
497          (p "") )
498
499        (procedure "(fldiv0-and-mod0 FL-N FL-D)"
500          (p "") )
501
502        (procedure "(flexp FL)"
503          (p "") )
504
505        (procedure "(fllog FL [BASE])"
506          (p "") )
507
508        (procedure "(flsin FL)"
509          (p "") )
510
511        (procedure "(flcos FL)"
512          (p "") )
513
514        (procedure "(fltan FL)"
515          (p "") )
516
517        (procedure "(flasin FL)"
518          (p "") )
519
520        (procedure "(flacos FL)"
521          (p "") )
522
523        (procedure "(flatan FL [FL2])"
524          (p "") )
525
526        (procedure "(flsqrt FL)"
527          (p "") )
528
529        (procedure "(flexpt FL EXP)"
530          (p "") )
531
532        (procedure "(flnumerator FL)"
533          (p "") )
534
535        (procedure "(fldenominator FL)"
536          (p "") )
537      )
538
539      (subsection "Bitwise Procedures"
540
541        (usage "(require-extension bitwise-extras)")
542
543        (p "R6RS bitwise functions.")
544
545        (p "Unchecked variants of the following procedures are supplied, named "
546        "as the checked version but with a \"%\" prefix.")
547
548        (procedure "(pow2log2 VALUE)"
549                                        (p "Returns " (code "2 ** log2 (" (tt "VALUE") ")") ".") )
550
551                                (procedure "(boolean->bit OBJECT)"
552                                        (p "Returns " (code "1") " for truth values and " (code "0") " for "
553                                        "false or zero.") )
554
555                                (procedure "(bitwise-if MASK TRUE FALSE)"
556                                        (p "Merge under mask.") )
557
558                                (procedure "(bitwise-if-not MASK TRUE FALSE)"
559                                        (p "Merge under not mask.") )
560
561                                (procedure "(bitwise-test? VALUE1 VALUE2)"
562                                        (p "Any bits set in both " (tt "VALUE1") " and " (tt "VALUE2") "?") )
563
564                                (procedure "(bitwise-bit-count VALUE)"
565                                        (p "Count of set bits.") )
566
567                                (procedure "(bitwise-length VALUE)"
568                                        (p "Minimum number of bits to represent.") )
569
570                                (procedure "(bitwise-first-bit-set VALUE)"
571                                        (p "Least significant bit set.") )
572
573                                (procedure "(bitwise-last-bit-set VALUE)"
574                                        (p "Most significant bit set.") )
575
576                                (procedure "(bitwise-bit-set? VALUE INDEX)"
577                                        (p "Specific bit set?") )
578
579                                (procedure "(bitwise-copy-bit TO START BIT)"
580                                        (p "Set bit.") )
581
582                                (procedure "(bitwise-bit-field VALUE START END)"
583                                        (p "Get bits.") )
584
585                                (procedure "(bitwise-copy-bit-field TO START END FROM)"
586                                        (p "Set bits.") )
587
588                                (procedure "(bitwise-rotate-bit-field VALUE START END COUNT)"
589                                        (p "Rotate bits.") )
590
591                                (procedure "(bitwise-reverse VALUE COUNT)"
592                                        (p "Reverse low-order bits.") )
593
594                                (procedure "(bitwise-reverse-bit-field VALUE START END)"
595                                        (p "Reverse bits.") )
596
597                                (procedure "(bitwise-list->integer LIST)"
598                                        (p "Converts list of boolean, least-significant to most-significant, to integer.") )
599
600                                (procedure "(bitwise-integer->list VALUE [LENGTH])"
601                                        (p "Converts integer to list of boolean, least-significant to most-significant.") )
602
603                                (procedure "(bitwise-arithmetic-shift VALUE DIRECTIONAL-AMOUNT)"
604                                        (p (code "(arithmetic-shift VALUE DIRECTIONAL-AMOUNT)")) )
605
606                                (procedure "(bitwise-arithmetic-shift-left VALUE AMOUNT)"
607                                        (p (code "(arithmetic-shift VALUE AMOUNT)")) )
608
609                                (procedure "(bitwise-arithmetic-shift-right VALUE AMOUNT)"
610                                        (p (code "(arithmetic-shift VALUE (- AMOUNT))")) )
611      )
612    )
613
614    (history
615      (version "1.11" "Better argument checking. [Kon Lovett]")
616      (version "1.10" "Cygwin compile fix. Added \"fixnum/flonum/bitwise-extras\". Removed \"count-set-bits\" & \"count-unset-bits\". [Kon Lovett]")
617      (version "1.903" "Added C int & float types. [Kon Lovett]")
618      (version "1.9.2" "Added log1p (approx.) for Windows, scalbn. Native log2 for linux/macosx/bsd. [Kon Lovett]")
619      (version "1.9.1" "Added integer-log-base2, count-set-bits, count-unset-bits [Kon Lovett]")
620      (version "1.9" "Changed conditional compilation [Kon Lovett]")
621      (version "1.8" "fixes in setup script and .meta file")
622      (version "1.7" "installs mathh-constants.scm in include path [felix]")
623      (version "1.6" "make-log/base [Kon Lovett]")
624      (version "1.5" "fpclassify, fpclass, fxlog2 [Kon Lovett]")
625      (version "1.4" "Added some limits [Kon Lovett]")
626      (version "1.3" "Removed fpclassify (for now), tgamma -> gamma [Kon Lovett]")
627      (version "1.2" "Added missing setup-header [felix]")
628      (version "1.1" "More math.h functions & constants [Kon Lovett]")
629      (version "1.0" "Initial release"))
630
631      (section "License" (pre ,license))
632    ) ) )
633
634(eggdoc->html doc)
635
Note: See TracBrowser for help on using the repository browser.