source: project/release/3/mathh/trunk/mathh.html @ 8595

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

Save.

File size: 30.7 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<!-- Generated by eggdoc Revision: 1.20  -->
3<html>
4<head>
5<title>Eggs Unlimited - mathh</title><style type="text/css"> <!--
6      CODE {
7            color: #666666;
8          }
9/*   DT.definition EM { font-weight: bold; font-style: normal; } */
10
11     DT.definition { 
12                   background: #eee;
13                   color: black;
14                   padding: 0.2em 1em 0.2em 0.7em;
15                   margin-left: 0.2em;
16border: 1px solid #bbc;
17                   font-family: "Andale Mono", monospace;
18                   /* font-size: 1.2em; */
19                   
20                 }
21     DD {
22                   margin-top: 0.8em;
23                   margin-bottom: 0.8em;
24     }
25     DIV.subsection {
26                    border-top: 1px solid #448;
27                    padding-left: 1em;
28                    margin-bottom: 1.2em;
29     }
30     DIV.subsubsection {
31                    border-top: 1px dotted #99c;
32                    /* border-left: 1px solid #99c; */
33                    padding-left: 1em;
34                    margin-bottom: 1.2em;
35     }
36     DIV.subsubsubsection {
37                    border-top: 1px solid #ddf;
38                    padding-left: 1em;
39                    margin-bottom: 1.2em;
40     }
41
42         DIV.section {
43                 margin-bottom: 1.5em;
44         }
45         a:link {
46                 color: #336;
47         }
48         a:visited { color: #666; }
49         a:active  { color: #966; }
50         a:hover   { color: #669; }
51         body { margin: 0; padding: 0; background: #fff; color: #000; font: 9pt "Lucida Grande", "Verdana", sans-serif; }
52         H2 {
53                 background: #336;
54                 color: #fff;
55                 padding-top: 0.5em;
56                 padding-bottom: 0.5em;
57                 padding-left: 16px;
58                 margin: 0 0 1em 0;
59        }
60        UL LI {
61                list-style: none;
62        }
63        TT {
64                font-family: "Andale Mono", monospace;
65                /* font-size: 1.2em; */
66        }
67        H3 {
68                color: #113;
69                margin-bottom: 0.5em;
70        }
71        H4, H5, H6 {
72                color: #113;
73                margin-bottom: 1.0em;
74        }
75        H5 {
76                font-weight: normal;
77                font-style: italic;
78                font-size: 100%;
79                margin-top: 1.2em;
80        }
81        H6 {
82                font-weight: bold;
83                font-size: 85%;
84                margin-top: 1.2em;
85        }
86     DIV#eggheader {
87         text-align: center;
88                 float: right;
89                 margin-right: 2em;
90     }
91     DIV#header IMG {
92            /* display: block; margin-left: auto; margin-right: auto;  */
93            /* float: right; */
94            border: none;  /* firefox */
95     }
96     DIV#footer {
97                background: #bbd;
98                padding: 0.7em ;
99                border-top: 1px solid #cce;
100     }
101     DIV#footer hr {
102                display: none;
103     }
104     DIV#footer a {
105                float: left;
106     }
107     DIV#revision-history {
108         float: right;
109     }
110     
111     DIV#body {
112                 margin: 1em 1em 1em 16px;
113         }
114
115     DIV#examples PRE {
116       background: #eef;
117       padding: 0.1em;
118       border: 1px solid #aac;
119     }
120     PRE#license, DIV#examples PRE {
121       padding: 0.5em;
122     }
123     DIV#examples PRE {
124       /* font-size: 85%; */
125     }
126     PRE { font-family: "Andale Mono", monospace; }
127     TABLE {
128       background: #eef;
129       padding: 0.2em;
130       border: 1px solid #aac;
131       border-collapse: collapse;
132       width: 100%;
133     }
134     TABLE.symbol-table TD.symbol {
135          width: 15em;
136          font-family: "Andale Mono", monospace;
137          /* font-size: 1.2em; */
138     }
139     TH {
140       text-align: left;
141       border-bottom: 1px solid #aac;
142       padding: 0.25em 0.5em 0.25em 0.5em;
143     } 
144     TD { padding: 0.25em 0.5em 0.25em 0.5em; }
145     --></style></head>
146<body>
147<div id="header">
148<h2>mathh</h2>
149<div id="eggheader"><a href="index.html">
150<img src="egg.jpg" alt="[Picture of an egg]" /></a></div></div>
151<div id="body">
152<div class="section">
153<h3>Description</h3>
154<p>Provides:</p>
155<ul>
156<li>* access to ISO C math functions in <code>&lt;math.h&gt;</code> that are not defined by Chicken.</li>
157<li>* <code>&lt;float.h&gt;</code> constants, common derived constants, and limits for Chicken numeric types.</li>
158<li>* R6RS arithmetic functions.</li></ul></div>
159<div class="section">
160<h3>Author</h3>John Cowan and Kon Lovett</div>
161<div class="section">
162<h3>Usage</h3><tt>(require-extension mathh)</tt></div>
163<div class="section">
164<h3>Download</h3><a href="mathh.egg">mathh.egg</a></div>
165<div class="section">
166<h3>Documentation</h3>
167<div class="subsection">
168<h4>Floating-point Functions</h4>
169<p>The following procedures are provided, with their usual meaning.</p>
170<p>Windows does not provide native implementations of log1p, lgamma, tgamma. However log1p is approximated.</p>
171<p>The Bessel functions are prefixed by 'bessel-' to distinguish the names from common variables.</p>
172<dt class="definition"><strong>procedure:</strong> (bessel-j0 N)</dt>
173<dd></dd>
174<dt class="definition"><strong>procedure:</strong> (bessel-j1 N)</dt>
175<dd></dd>
176<dt class="definition"><strong>procedure:</strong> (bessel-jn O N)</dt>
177<dd></dd>
178<dt class="definition"><strong>procedure:</strong> (bessel-y0 N)</dt>
179<dd></dd>
180<dt class="definition"><strong>procedure:</strong> (bessel-y1 N)</dt>
181<dd></dd>
182<dt class="definition"><strong>procedure:</strong> (bessel-yn O N)</dt>
183<dd></dd>
184<dt class="definition"><strong>procedure:</strong> (cosh N)</dt>
185<dd></dd>
186<dt class="definition"><strong>procedure:</strong> (sinh N)</dt>
187<dd></dd>
188<dt class="definition"><strong>procedure:</strong> (tanh N)</dt>
189<dd></dd>
190<dt class="definition"><strong>procedure:</strong> (hypot N1 N2)</dt>
191<dd></dd>
192<dt class="definition"><strong>procedure:</strong> (gamma N)</dt>
193<dd></dd>
194<dt class="definition"><strong>procedure:</strong> (lgamma N)</dt>
195<dd></dd>
196<dt class="definition"><strong>procedure:</strong> (log10 N)</dt>
197<dd></dd>
198<dt class="definition"><strong>procedure:</strong> (log2 N)</dt>
199<dd></dd>
200<dt class="definition"><strong>procedure:</strong> (log1p N)</dt>
201<dd></dd>
202<dt class="definition"><strong>procedure:</strong> (make-log/base BASE)</dt>
203<dd>
204<p>Returns a procedure of one argument, the logarithm function for <tt>BASE</tt>.</p></dd>
205<dt class="definition"><strong>procedure:</strong> (ldexp N)</dt>
206<dd></dd>
207<dt class="definition"><strong>procedure:</strong> (scalbn N)</dt>
208<dd></dd>
209<dt class="definition"><strong>procedure:</strong> (fpmod N M)</dt>
210<dd>
211<p>Returns the modulus of <tt>N</tt> for <tt>M</tt>.</p></dd>
212<dt class="definition"><strong>procedure:</strong> (modf N)</dt>
213<dd>
214<p>Returns two values, the integral and fractional part of <tt>N</tt>.</p></dd>
215<dt class="definition"><strong>procedure:</strong> (frexp N)</dt>
216<dd>
217<p>Returns two values, the fraction and the exponent part of <tt>N</tt>.</p></dd></div>
218<div class="subsection">
219<h4>Float Classification</h4>
220<div class="section">
221<h3>Usage</h3>(require-extension matth-fpclass)</div>
222<dt class="definition"><strong>procedure:</strong> (fpclassify N)</dt>
223<dd>
224<p>Returns a symbol denoting the kind of floating-point number.</p><table class="symbol-table">Float Class
225<tr>
226<td class="symbol">infinite</td>
227<td></td></tr>
228<tr>
229<td class="symbol">nan</td>
230<td></td></tr>
231<tr>
232<td class="symbol">normal</td>
233<td></td></tr>
234<tr>
235<td class="symbol">subnormal</td>
236<td></td></tr>
237<tr>
238<td class="symbol">zero</td>
239<td></td></tr>
240<tr>
241<td class="symbol">unclassified</td>
242<td></td></tr></table></dd>
243<dt class="definition"><strong>procedure:</strong> (fpclass N)</dt>
244<dd>
245<p>Returns a symbol denoting the kind of floating-point number.</p><table class="symbol-table">Float Class
246<tr>
247<td class="symbol">positive-infinite</td>
248<td></td></tr>
249<tr>
250<td class="symbol">negative-infinite</td>
251<td></td></tr>
252<tr>
253<td class="symbol">quiet-nan</td>
254<td></td></tr>
255<tr>
256<td class="symbol">signaling-nan</td>
257<td></td></tr>
258<tr>
259<td class="symbol">positive-normal</td>
260<td></td></tr>
261<tr>
262<td class="symbol">negative-normal</td>
263<td></td></tr>
264<tr>
265<td class="symbol">positive-subnormal</td>
266<td></td></tr>
267<tr>
268<td class="symbol">negative-subnormal</td>
269<td></td></tr>
270<tr>
271<td class="symbol">positive-zero</td>
272<td></td></tr>
273<tr>
274<td class="symbol">negative-zero</td>
275<td></td></tr>
276<tr>
277<td class="symbol">unclassified</td>
278<td></td></tr></table></dd></div>
279<div class="subsection">
280<h4>Integer Constants</h4>
281<div class="section">
282<h3>Usage</h3>(require-extension matth-int)</div><table class="symbol-table">
283<tr>
284<td class="symbol">most-positive-fixnum</td>
285<td>Largest positive fixnum</td></tr>
286<tr>
287<td class="symbol">most-negative-fixnum</td>
288<td>Smallest negative fixnum</td></tr>
289<tr>
290<td class="symbol">fixnum-precision</td>
291<td>Number of bits in fixnum</td></tr>
292<tr>
293<td class="symbol">machine-word-bits</td>
294<td>Number of bits in machine word - C_word</td></tr>
295<tr>
296<td class="symbol">maximum-machine-word</td>
297<td>Largest machine word value - C_uword</td></tr>
298<tr>
299<td class="symbol">most-negative-machine-word</td>
300<td>Smallest negative machine word value - C_word</td></tr>
301<tr>
302<td class="symbol">most-positive-machine-word</td>
303<td>Largest positive machine word value - C_word</td></tr>
304<tr>
305<td class="symbol">unsigned-integer32-size</td>
306<td>Sizeof uint32_t</td></tr>
307<tr>
308<td class="symbol">maximum-unsigned-integer32</td>
309<td>Largest value for uint32_t</td></tr>
310<tr>
311<td class="symbol">unsigned-char-size</td>
312<td>Sizeof the C type</td></tr>
313<tr>
314<td class="symbol">unsigned-short-size</td>
315<td>Sizeof the C type</td></tr>
316<tr>
317<td class="symbol">unsigned-int-size</td>
318<td>Sizeof the C type</td></tr>
319<tr>
320<td class="symbol">unsigned-long-size</td>
321<td>Sizeof the C type</td></tr>
322<tr>
323<td class="symbol">unsigned-long-long-size</td>
324<td>Sizeof the C type, 0 when unsupported</td></tr>
325<tr>
326<td class="symbol">char-size</td>
327<td>Sizeof the C type</td></tr>
328<tr>
329<td class="symbol">short-size</td>
330<td>Sizeof the C type</td></tr>
331<tr>
332<td class="symbol">int-size</td>
333<td>Sizeof the C type</td></tr>
334<tr>
335<td class="symbol">long-size</td>
336<td>Sizeof the C type</td></tr>
337<tr>
338<td class="symbol">long-long-size</td>
339<td>Sizeof the C type, 0 when unsupported</td></tr></table></div>
340<div class="subsection">
341<h4>Floating-point Constants</h4>
342<div class="section">
343<h3>Usage</h3>(require-extension matth-float)</div><table class="symbol-table">
344<tr>
345<td class="symbol">float-radix</td>
346<td>Representation base of floating point number</td></tr>
347<tr>
348<td class="symbol">maximum-float</td>
349<td>Largest floating point number</td></tr>
350<tr>
351<td class="symbol">minimum-float</td>
352<td>Smallest floating point number</td></tr>
353<tr>
354<td class="symbol">float-epsilon</td>
355<td>The difference between 1.0 and the least value &gt; 1.0 of a floating point number</td></tr>
356<tr>
357<td class="symbol">float-precision</td>
358<td>Number of digits in mantissa base radix of floating point number</td></tr>
359<tr>
360<td class="symbol">float-decimal-precision</td>
361<td>Number of digits in mantissa base 10 of floating point number</td></tr>
362<tr>
363<td class="symbol">float-maximum-exponent</td>
364<td>Largest exponent in base radix of floating point number</td></tr>
365<tr>
366<td class="symbol">float-minimum-exponent</td>
367<td>Smallest exponent in base radix of floating point number</td></tr>
368<tr>
369<td class="symbol">float-maximum-decimal-exponent</td>
370<td>Largest exponent in base 10 of floating point number</td></tr>
371<tr>
372<td class="symbol">float-minimum-decimal-exponent</td>
373<td>Smallest exponent in base 10 of floating point number</td></tr>
374<tr>
375<td class="symbol">maximum-double</td>
376<td>Largest floating point number</td></tr>
377<tr>
378<td class="symbol">minimum-double</td>
379<td>Smallest floating point number</td></tr>
380<tr>
381<td class="symbol">double-epsilon</td>
382<td>The difference between 1.0 and the least value &gt; 1.0 of a floating point number</td></tr>
383<tr>
384<td class="symbol">double-precision</td>
385<td>Number of digits in mantissa base radix of floating point number</td></tr>
386<tr>
387<td class="symbol">double-decimal-precision</td>
388<td>Number of digits in mantissa base 10 of floating point number</td></tr>
389<tr>
390<td class="symbol">double-maximum-exponent</td>
391<td>Largest exponent in base radix of floating point number</td></tr>
392<tr>
393<td class="symbol">double-minimum-exponent</td>
394<td>Smallest exponent in base radix of floating point number</td></tr>
395<tr>
396<td class="symbol">double-maximum-decimal-exponent</td>
397<td>Largest exponent in base 10 of floating point number</td></tr>
398<tr>
399<td class="symbol">double-minimum-decimal-exponent</td>
400<td>Smallest exponent in base 10 of floating point number</td></tr>
401<tr>
402<td class="symbol">maximum-long-double</td>
403<td>Largest floating point number</td></tr>
404<tr>
405<td class="symbol">minimum-long-double</td>
406<td>Smallest floating point number</td></tr>
407<tr>
408<td class="symbol">long-double-epsilon</td>
409<td>The difference between 1.0 and the least value &gt; 1.0 of a floating point number</td></tr>
410<tr>
411<td class="symbol">long-double-precision</td>
412<td>Number of digits in mantissa base radix of floating point number</td></tr>
413<tr>
414<td class="symbol">long-double-decimal-precision</td>
415<td>Number of digits in mantissa base 10 of floating point number</td></tr>
416<tr>
417<td class="symbol">long-double-maximum-exponent</td>
418<td>Largest exponent in base radix of floating point number</td></tr>
419<tr>
420<td class="symbol">long-double-minimum-exponent</td>
421<td>Smallest exponent in base radix of floating point number</td></tr>
422<tr>
423<td class="symbol">long-double-maximum-decimal-exponent</td>
424<td>Largest exponent in base 10 of floating point number</td></tr>
425<tr>
426<td class="symbol">long-double-minimum-decimal-exponent</td>
427<td>Smallest exponent in base 10 of floating point number</td></tr>
428<tr>
429<td class="symbol">long-double-radix</td>
430<td>Representation base of floating point number</td></tr>
431<tr>
432<td class="symbol">maximum-flonum</td>
433<td>Largest floating point number</td></tr>
434<tr>
435<td class="symbol">minimum-flonum</td>
436<td>Smallest floating point number</td></tr>
437<tr>
438<td class="symbol">flonum-epsilon</td>
439<td>The difference between 1.0 and the least value &gt; 1.0 of a floating point number</td></tr>
440<tr>
441<td class="symbol">flonum-precision</td>
442<td>Number of digits in mantissa base radix of floating point number</td></tr>
443<tr>
444<td class="symbol">flonum-decimal-precision</td>
445<td>Number of digits in mantissa base 10 of floating point number</td></tr>
446<tr>
447<td class="symbol">flonum-maximum-exponent</td>
448<td>Largest exponent in base radix of floating point number</td></tr>
449<tr>
450<td class="symbol">flonum-minimum-exponent</td>
451<td>Smallest exponent in base radix of floating point number</td></tr>
452<tr>
453<td class="symbol">flonum-maximum-decimal-exponent</td>
454<td>Largest exponent in base 10 of floating point number</td></tr>
455<tr>
456<td class="symbol">flonum-minimum-decimal-exponent</td>
457<td>Smallest exponent in base 10 of floating point number</td></tr></table></div>
458<div class="subsection">
459<h4>Math Constants</h4>
460<div class="section">
461<h3>Usage</h3>(include &quot;mathh-constants&quot;)</div>
462<p>Common constants, using 'define-constant'. As such they must be textually included.</p><table class="symbol-table">
463<tr>
464<td class="symbol">E</td>
465<td>e</td></tr>
466<tr>
467<td class="symbol">1/E</td>
468<td>1/e</td></tr>
469<tr>
470<td class="symbol">E^2</td>
471<td>e^2</td></tr>
472<tr>
473<td class="symbol">E^PI/4</td>
474<td>e^(pi/4)</td></tr>
475<tr>
476<td class="symbol">LOG2E</td>
477<td>log2(e)</td></tr>
478<tr>
479<td class="symbol">LOG10E</td>
480<td>log10(e)</td></tr>
481<tr>
482<td class="symbol">LN2</td>
483<td>log(2)</td></tr>
484<tr>
485<td class="symbol">LN3</td>
486<td>ln(3)</td></tr>
487<tr>
488<td class="symbol">LNPI</td>
489<td>ln(pi)</td></tr>
490<tr>
491<td class="symbol">LN10</td>
492<td>log(10)</td></tr>
493<tr>
494<td class="symbol">1/LN2</td>
495<td>1/ln(2)</td></tr>
496<tr>
497<td class="symbol">1/LN10</td>
498<td>1/ln(10)</td></tr>
499<tr>
500<td class="symbol">PI</td>
501<td>pi</td></tr>
502<tr>
503<td class="symbol">PI/2</td>
504<td>pi/2</td></tr>
505<tr>
506<td class="symbol">PI/4</td>
507<td>pi/4</td></tr>
508<tr>
509<td class="symbol">1/PI</td>
510<td>1/pi</td></tr>
511<tr>
512<td class="symbol">2/PI</td>
513<td>2/pi</td></tr>
514<tr>
515<td class="symbol">2/SQRTPI</td>
516<td>2/sqrt(pi)</td></tr>
517<tr>
518<td class="symbol">SQRTPI</td>
519<td>sqrt(pi)</td></tr>
520<tr>
521<td class="symbol">PI^2</td>
522<td>pi^2</td></tr>
523<tr>
524<td class="symbol">DEGREE</td>
525<td>pi/180</td></tr>
526<tr>
527<td class="symbol">SQRT2</td>
528<td>sqrt(2)</td></tr>
529<tr>
530<td class="symbol">1/SQRT2</td>
531<td>1/sqrt(2)</td></tr>
532<tr>
533<td class="symbol">SQRT3</td>
534<td>sqrt(3)</td></tr>
535<tr>
536<td class="symbol">SQRT5</td>
537<td>sqrt(5)</td></tr>
538<tr>
539<td class="symbol">SQRT10</td>
540<td>sqrt(10)</td></tr>
541<tr>
542<td class="symbol">CUBERT2</td>
543<td>cubert(2)</td></tr>
544<tr>
545<td class="symbol">CUBERT3</td>
546<td>cubert(3)</td></tr>
547<tr>
548<td class="symbol">4THRT2</td>
549<td>fourthrt(2)</td></tr>
550<tr>
551<td class="symbol">GAMMA1/2</td>
552<td>gamma(1/2)</td></tr>
553<tr>
554<td class="symbol">GAMMA1/3</td>
555<td>gamma(1/3)</td></tr>
556<tr>
557<td class="symbol">GAMMA2/3</td>
558<td>gamma(2/3)</td></tr>
559<tr>
560<td class="symbol">PHI</td>
561<td>phi</td></tr>
562<tr>
563<td class="symbol">LNPHI</td>
564<td>ln(phi)</td></tr>
565<tr>
566<td class="symbol">1/LNPHI</td>
567<td>1/ln(phi)</td></tr>
568<tr>
569<td class="symbol">EULER</td>
570<td>euler</td></tr>
571<tr>
572<td class="symbol">E^EULER</td>
573<td>e^euler</td></tr>
574<tr>
575<td class="symbol">SIN1</td>
576<td>sin(1)</td></tr>
577<tr>
578<td class="symbol">COS1</td>
579<td>cos(1)</td></tr>
580<tr>
581<td class="symbol">ZETA3</td>
582<td>theta(3)</td></tr></table></div>
583<div class="subsection">
584<h4>Fixnum Procedures</h4>
585<div class="section">
586<h3>Usage</h3>(require-extension fixnum-extras)</div>
587<p>R6RS fixnum functions. The &quot;*&quot; prefixed functions are variable arity versions of the built-in Chicken Scheme functions. This naming convention violates R6RS.</p>
588<dt class="definition"><strong>procedure:</strong> (fixnum-&gt;string FX [RADIX])</dt>
589<dd>
590<p></p></dd>
591<dt class="definition"><strong>procedure:</strong> (fixnum-width)</dt>
592<dd>
593<p></p></dd>
594<dt class="definition"><strong>procedure:</strong> (least-fixnum)</dt>
595<dd>
596<p></p></dd>
597<dt class="definition"><strong>procedure:</strong> (greatest-fixnum)</dt>
598<dd>
599<p></p></dd>
600<dt class="definition"><strong>procedure:</strong> (fx=? FX ...)</dt>
601<dd>
602<p></p></dd>
603<dt class="definition"><strong>procedure:</strong> (fx&lt;? FX ...)</dt>
604<dd>
605<p></p></dd>
606<dt class="definition"><strong>procedure:</strong> (fx&gt;? FX ...)</dt>
607<dd>
608<p></p></dd>
609<dt class="definition"><strong>procedure:</strong> (fx&lt;=? FX ...)</dt>
610<dd>
611<p></p></dd>
612<dt class="definition"><strong>procedure:</strong> (fx&gt;=? FX ...)</dt>
613<dd>
614<p></p></dd>
615<dt class="definition"><strong>procedure:</strong> (fxcompare FX1 FX2)</dt>
616<dd>
617<p></p></dd>
618<dt class="definition"><strong>procedure:</strong> (fxzero? FX)</dt>
619<dd>
620<p></p></dd>
621<dt class="definition"><strong>procedure:</strong> (fxpositive? FX)</dt>
622<dd>
623<p></p></dd>
624<dt class="definition"><strong>procedure:</strong> (fxnegative? FX)</dt>
625<dd>
626<p></p></dd>
627<dt class="definition"><strong>procedure:</strong> (fxodd? FX)</dt>
628<dd>
629<p></p></dd>
630<dt class="definition"><strong>procedure:</strong> (fxeven? FX)</dt>
631<dd>
632<p></p></dd>
633<dt class="definition"><strong>procedure:</strong> (*fxmax FX ...)</dt>
634<dd>
635<p></p></dd>
636<dt class="definition"><strong>procedure:</strong> (*fxmin FX ...)</dt>
637<dd>
638<p></p></dd>
639<dt class="definition"><strong>procedure:</strong> (fxmax-and-min FX ...)</dt>
640<dd>
641<p></p></dd>
642<dt class="definition"><strong>procedure:</strong> (fxmodulo FX-N FX-D)</dt>
643<dd>
644<p></p></dd>
645<dt class="definition"><strong>procedure:</strong> (fxabs FX)</dt>
646<dd>
647<p></p></dd>
648<dt class="definition"><strong>procedure:</strong> (fxpow2log2 FX)</dt>
649<dd>
650<p></p></dd>
651<dt class="definition"><strong>procedure:</strong> (fxdiv FX-N FX-D)</dt>
652<dd>
653<p></p></dd>
654<dt class="definition"><strong>procedure:</strong> (fxdiv-and-mod FX-N FX-D)</dt>
655<dd>
656<p></p></dd>
657<dt class="definition"><strong>procedure:</strong> (fxdiv0 FX-N FX-D)</dt>
658<dd>
659<p></p></dd>
660<dt class="definition"><strong>procedure:</strong> (fxmod0 FX-N FX-D)</dt>
661<dd>
662<p></p></dd>
663<dt class="definition"><strong>procedure:</strong> (fxdiv0-and-mod0 FX-N FX-D)</dt>
664<dd>
665<p></p></dd>
666<dt class="definition"><strong>procedure:</strong> (fx*/carry FX1 FX2 FX3)</dt>
667<dd>
668<p></p></dd>
669<dt class="definition"><strong>procedure:</strong> (fx+/carry FX1 FX2 FX3)</dt>
670<dd>
671<p></p></dd>
672<dt class="definition"><strong>procedure:</strong> (fx-/carry FX1 FX2 FX3)</dt>
673<dd>
674<p></p></dd>
675<dt class="definition"><strong>procedure:</strong> (fxadd1 FX)</dt>
676<dd>
677<p></p></dd>
678<dt class="definition"><strong>procedure:</strong> (fxsub1 FX)</dt>
679<dd>
680<p></p></dd>
681<dt class="definition"><strong>procedure:</strong> (fxquotient FX-N FX-D)</dt>
682<dd>
683<p></p></dd>
684<dt class="definition"><strong>procedure:</strong> (fxremainder FX-N FX-D)</dt>
685<dd>
686<p></p></dd>
687<dt class="definition"><strong>procedure:</strong> (fxarithmetic-shift FX DIRECTIONAL-AMOUNT)</dt>
688<dd>
689<p></p></dd>
690<dt class="definition"><strong>procedure:</strong> (fxarithmetic-shift-left FX AMOUNT)</dt>
691<dd>
692<p></p></dd>
693<dt class="definition"><strong>procedure:</strong> (fxarithmetic-shift-right FX AMOUNT)</dt>
694<dd>
695<p></p></dd>
696<dt class="definition"><strong>procedure:</strong> (*fx- FX [FX2])</dt>
697<dd>
698<p></p></dd>
699<dt class="definition"><strong>procedure:</strong> (*fxand FX ...)</dt>
700<dd>
701<p></p></dd>
702<dt class="definition"><strong>procedure:</strong> (*fxior FX ...)</dt>
703<dd>
704<p></p></dd>
705<dt class="definition"><strong>procedure:</strong> (*fxxor FX ...)</dt>
706<dd>
707<p></p></dd>
708<dt class="definition"><strong>procedure:</strong> (fxif MASK TRUE FALSE)</dt>
709<dd>
710<p></p></dd>
711<dt class="definition"><strong>procedure:</strong> (fxbit-count FX)</dt>
712<dd>
713<p></p></dd>
714<dt class="definition"><strong>procedure:</strong> (fxlength FX)</dt>
715<dd>
716<p></p></dd>
717<dt class="definition"><strong>procedure:</strong> (fxfirst-bit-set FX)</dt>
718<dd>
719<p></p></dd>
720<dt class="definition"><strong>procedure:</strong> (fxlast-bit-set FX)</dt>
721<dd>
722<p></p></dd>
723<dt class="definition"><strong>procedure:</strong> (fxbit-set? FX INDEX)</dt>
724<dd>
725<p></p></dd>
726<dt class="definition"><strong>procedure:</strong> (fxcopy-bit FX INDEX BIT)</dt>
727<dd>
728<p></p></dd>
729<dt class="definition"><strong>procedure:</strong> (fxbit-field FX START END)</dt>
730<dd>
731<p></p></dd>
732<dt class="definition"><strong>procedure:</strong> (fxcopy-bit-field FX-TO START END FX-FROM)</dt>
733<dd>
734<p></p></dd>
735<dt class="definition"><strong>procedure:</strong> (fxrotate-bit-field FX START END COUNT)</dt>
736<dd>
737<p></p></dd>
738<dt class="definition"><strong>procedure:</strong> (fxreverse-bit-field FX START END)</dt>
739<dd>
740<p></p></dd></div>
741<div class="subsection">
742<h4>Flonum Procedures</h4>
743<div class="section">
744<h3>Usage</h3>(require-extension flonum-extras)</div>
745<p>R6RS flonum functions.</p>
746<dt class="definition"><strong>procedure:</strong> (real-&gt;flonum VALUE)</dt>
747<dd>
748<p></p></dd>
749<dt class="definition"><strong>procedure:</strong> (fixnum-&gt;flonum VALUE)</dt>
750<dd>
751<p></p></dd>
752<dt class="definition"><strong>procedure:</strong> (fl=? FL ...)</dt>
753<dd>
754<p></p></dd>
755<dt class="definition"><strong>procedure:</strong> (fl&lt;? FL ...)</dt>
756<dd>
757<p></p></dd>
758<dt class="definition"><strong>procedure:</strong> (fl&gt;? FL ...)</dt>
759<dd>
760<p></p></dd>
761<dt class="definition"><strong>procedure:</strong> (fl&lt;=? FL ...)</dt>
762<dd>
763<p></p></dd>
764<dt class="definition"><strong>procedure:</strong> (fl&gt;=? FL ...)</dt>
765<dd>
766<p></p></dd>
767<dt class="definition"><strong>procedure:</strong> (flcompare FL1 FL2)</dt>
768<dd>
769<p></p></dd>
770<dt class="definition"><strong>procedure:</strong> (flinteger? FL)</dt>
771<dd>
772<p></p></dd>
773<dt class="definition"><strong>procedure:</strong> (flzero? FL)</dt>
774<dd>
775<p></p></dd>
776<dt class="definition"><strong>procedure:</strong> (flpositive? FL)</dt>
777<dd>
778<p></p></dd>
779<dt class="definition"><strong>procedure:</strong> (flnegative? FL)</dt>
780<dd>
781<p></p></dd>
782<dt class="definition"><strong>procedure:</strong> (flodd? FL)</dt>
783<dd>
784<p></p></dd>
785<dt class="definition"><strong>procedure:</strong> (fleven? FL)</dt>
786<dd>
787<p></p></dd>
788<dt class="definition"><strong>procedure:</strong> (flfinite? FL)</dt>
789<dd>
790<p></p></dd>
791<dt class="definition"><strong>procedure:</strong> (flinfinite? FL)</dt>
792<dd>
793<p></p></dd>
794<dt class="definition"><strong>procedure:</strong> (flnan? FL)</dt>
795<dd>
796<p></p></dd>
797<dt class="definition"><strong>procedure:</strong> (fl+ FL ...)</dt>
798<dd>
799<p></p></dd>
800<dt class="definition"><strong>procedure:</strong> (fl* FL ...)</dt>
801<dd>
802<p></p></dd>
803<dt class="definition"><strong>procedure:</strong> (fl- FL ...)</dt>
804<dd>
805<p></p></dd>
806<dt class="definition"><strong>procedure:</strong> (fl/ FL ...)</dt>
807<dd>
808<p></p></dd>
809<dt class="definition"><strong>procedure:</strong> (flmax FL ...)</dt>
810<dd>
811<p></p></dd>
812<dt class="definition"><strong>procedure:</strong> (flmin FL ...)</dt>
813<dd>
814<p></p></dd>
815<dt class="definition"><strong>procedure:</strong> (flmax-and-min FL ...)</dt>
816<dd>
817<p></p></dd>
818<dt class="definition"><strong>procedure:</strong> (flabs FL)</dt>
819<dd>
820<p></p></dd>
821<dt class="definition"><strong>procedure:</strong> (flfraction FL)</dt>
822<dd>
823<p></p></dd>
824<dt class="definition"><strong>procedure:</strong> (fltruncate FL)</dt>
825<dd>
826<p></p></dd>
827<dt class="definition"><strong>procedure:</strong> (flfloor FL)</dt>
828<dd>
829<p></p></dd>
830<dt class="definition"><strong>procedure:</strong> (flceiling FL)</dt>
831<dd>
832<p></p></dd>
833<dt class="definition"><strong>procedure:</strong> (flround FL)</dt>
834<dd>
835<p></p></dd>
836<dt class="definition"><strong>procedure:</strong> (fldiv FL-N FL-D)</dt>
837<dd>
838<p></p></dd>
839<dt class="definition"><strong>procedure:</strong> (flmod FL-N FL-D)</dt>
840<dd>
841<p></p></dd>
842<dt class="definition"><strong>procedure:</strong> (fldiv-and-mod FL-N FL-D)</dt>
843<dd>
844<p></p></dd>
845<dt class="definition"><strong>procedure:</strong> (fldiv0 FL-N FL-D)</dt>
846<dd>
847<p></p></dd>
848<dt class="definition"><strong>procedure:</strong> (flmod0 FL-N FL-D)</dt>
849<dd>
850<p></p></dd>
851<dt class="definition"><strong>procedure:</strong> (fldiv0-and-mod0 FL-N FL-D)</dt>
852<dd>
853<p></p></dd>
854<dt class="definition"><strong>procedure:</strong> (flexp FL)</dt>
855<dd>
856<p></p></dd>
857<dt class="definition"><strong>procedure:</strong> (fllog FL [BASE])</dt>
858<dd>
859<p></p></dd>
860<dt class="definition"><strong>procedure:</strong> (flsin FL)</dt>
861<dd>
862<p></p></dd>
863<dt class="definition"><strong>procedure:</strong> (flcos FL)</dt>
864<dd>
865<p></p></dd>
866<dt class="definition"><strong>procedure:</strong> (fltan FL)</dt>
867<dd>
868<p></p></dd>
869<dt class="definition"><strong>procedure:</strong> (flasin FL)</dt>
870<dd>
871<p></p></dd>
872<dt class="definition"><strong>procedure:</strong> (flacos FL)</dt>
873<dd>
874<p></p></dd>
875<dt class="definition"><strong>procedure:</strong> (flatan FL [FL2])</dt>
876<dd>
877<p></p></dd>
878<dt class="definition"><strong>procedure:</strong> (flsqrt FL)</dt>
879<dd>
880<p></p></dd>
881<dt class="definition"><strong>procedure:</strong> (flexpt FL EXP)</dt>
882<dd>
883<p></p></dd>
884<dt class="definition"><strong>procedure:</strong> (flnumerator FL)</dt>
885<dd>
886<p></p></dd>
887<dt class="definition"><strong>procedure:</strong> (fldenominator FL)</dt>
888<dd>
889<p></p></dd></div>
890<div class="subsection">
891<h4>Bitwise Procedures</h4>
892<div class="section">
893<h3>Usage</h3>(require-extension bitwise-extras)</div>
894<p>R6RS bitwise functions.</p>
895<p>Unchecked variants of the following procedures are supplied, named as the checked version but with a &quot;%&quot; prefix.</p>
896<dt class="definition"><strong>procedure:</strong> (pow2log2 VALUE)</dt>
897<dd>
898<p>Returns <code>2 ** log2 (<tt>VALUE</tt>)</code>.</p></dd>
899<dt class="definition"><strong>procedure:</strong> (boolean-&gt;bit OBJECT)</dt>
900<dd>
901<p>Returns <code>1</code> for truth values and <code>0</code> for false or zero.</p></dd>
902<dt class="definition"><strong>procedure:</strong> (bitwise-if MASK TRUE FALSE)</dt>
903<dd>
904<p>Merge under mask.</p></dd>
905<dt class="definition"><strong>procedure:</strong> (bitwise-if-not MASK TRUE FALSE)</dt>
906<dd>
907<p>Merge under not mask.</p></dd>
908<dt class="definition"><strong>procedure:</strong> (bitwise-test? VALUE1 VALUE2)</dt>
909<dd>
910<p>Any bits set in both <tt>VALUE1</tt> and <tt>VALUE2</tt>?</p></dd>
911<dt class="definition"><strong>procedure:</strong> (bitwise-bit-count VALUE)</dt>
912<dd>
913<p>Count of set bits.</p></dd>
914<dt class="definition"><strong>procedure:</strong> (bitwise-length VALUE)</dt>
915<dd>
916<p>Minimum number of bits to represent.</p></dd>
917<dt class="definition"><strong>procedure:</strong> (bitwise-first-bit-set VALUE)</dt>
918<dd>
919<p>Least significant bit set.</p></dd>
920<dt class="definition"><strong>procedure:</strong> (bitwise-last-bit-set VALUE)</dt>
921<dd>
922<p>Most significant bit set.</p></dd>
923<dt class="definition"><strong>procedure:</strong> (bitwise-bit-set? VALUE INDEX)</dt>
924<dd>
925<p>Specific bit set?</p></dd>
926<dt class="definition"><strong>procedure:</strong> (bitwise-copy-bit TO START BIT)</dt>
927<dd>
928<p>Set bit.</p></dd>
929<dt class="definition"><strong>procedure:</strong> (bitwise-bit-field VALUE START END)</dt>
930<dd>
931<p>Get bits.</p></dd>
932<dt class="definition"><strong>procedure:</strong> (bitwise-copy-bit-field TO START END FROM)</dt>
933<dd>
934<p>Set bits.</p></dd>
935<dt class="definition"><strong>procedure:</strong> (bitwise-rotate-bit-field VALUE START END COUNT)</dt>
936<dd>
937<p>Rotate bits.</p></dd>
938<dt class="definition"><strong>procedure:</strong> (bitwise-reverse VALUE COUNT)</dt>
939<dd>
940<p>Reverse low-order bits.</p></dd>
941<dt class="definition"><strong>procedure:</strong> (bitwise-reverse-bit-field VALUE START END)</dt>
942<dd>
943<p>Reverse bits.</p></dd>
944<dt class="definition"><strong>procedure:</strong> (bitwise-list-&gt;integer LIST)</dt>
945<dd>
946<p>Converts list of boolean, least-significant to most-significant, to integer.</p></dd>
947<dt class="definition"><strong>procedure:</strong> (bitwise-integer-&gt;list VALUE [LENGTH])</dt>
948<dd>
949<p>Converts integer to list of boolean, least-significant to most-significant.</p></dd>
950<dt class="definition"><strong>procedure:</strong> (bitwise-arithmetic-shift VALUE DIRECTIONAL-AMOUNT)</dt>
951<dd>
952<p><code>(arithmetic-shift VALUE DIRECTIONAL-AMOUNT)</code></p></dd>
953<dt class="definition"><strong>procedure:</strong> (bitwise-arithmetic-shift-left VALUE AMOUNT)</dt>
954<dd>
955<p><code>(arithmetic-shift VALUE AMOUNT)</code></p></dd>
956<dt class="definition"><strong>procedure:</strong> (bitwise-arithmetic-shift-right VALUE AMOUNT)</dt>
957<dd>
958<p><code>(arithmetic-shift VALUE (- AMOUNT))</code></p></dd></div></div>
959<div class="section">
960<h3>Version</h3>
961<ul>
962<li>1.11 Better argument checking. [Kon Lovett]</li>
963<li>1.10 Cygwin compile fix. Added &quot;fixnum/flonum/bitwise-extras&quot;. Removed &quot;count-set-bits&quot; &amp; &quot;count-unset-bits&quot;. [Kon Lovett]</li>
964<li>1.903 Added C int &amp; float types. [Kon Lovett]</li>
965<li>1.9.2 Added log1p (approx.) for Windows, scalbn. Native log2 for linux/macosx/bsd. [Kon Lovett]</li>
966<li>1.9.1 Added integer-log-base2, count-set-bits, count-unset-bits [Kon Lovett]</li>
967<li>1.9 Changed conditional compilation [Kon Lovett]</li>
968<li>1.8 fixes in setup script and .meta file</li>
969<li>1.7 installs mathh-constants.scm in include path [felix]</li>
970<li>1.6 make-log/base [Kon Lovett]</li>
971<li>1.5 fpclassify, fpclass, fxlog2 [Kon Lovett]</li>
972<li>1.4 Added some limits [Kon Lovett]</li>
973<li>1.3 Removed fpclassify (for now), tgamma -&gt; gamma [Kon Lovett]</li>
974<li>1.2 Added missing setup-header [felix]</li>
975<li>1.1 More math.h functions &amp; constants [Kon Lovett]</li>
976<li>1.0 Initial release</li></ul></div>
977<div class="section">
978<h3>License</h3>
979<pre>This code is in the public domain</pre></div></div>
980<div id="footer">
981<hr /><a href="index.html">&lt; Egg index</a>
982<div id="revision-history">$Revision$ $Date$</div>&nbsp;</div></body></html>
Note: See TracBrowser for help on using the repository browser.