]> gitweb.factorcode.org Git - factor.git/blob - basis/math/bits/bits-docs.factor
5babf8c0bfa40ad58128c0629db3fdf99644b3e4
[factor.git] / basis / math / bits / bits-docs.factor
1 ! Copyright (C) 2009 Daniel Ehrenberg
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: help.syntax help.markup math sequences ;
4 IN: math.bits
5
6 ABOUT: "math.bits"
7
8 ARTICLE: "math.bits" "Integer virtual sequences"
9 "The " { $vocab-link "math.bits" } " vocabulary implements words that represent a positive integer as a virtual sequence of bits in order of ascending significance, e.g. " { $snippet "{ f f f t }" } " is " { $snippet "8" } "."
10 { $subsections
11     bits
12     <bits>
13     make-bits
14     bits>number
15 } ;
16
17 HELP: bits
18 { $class-description "Tuple representing a number as a virtual sequence of booleans. The first bit is the least significant bit. Constructors are " { $link <bits> } " or " { $link make-bits } "." } ;
19
20 HELP: <bits>
21 { $values { "number" integer } { "length" integer } { "bits" bits } }
22 { $description "Constructor for a " { $link bits } " tuple." } ;
23
24 HELP: make-bits
25 { $values { "number" integer } { "bits" bits } }
26 { $description "Creates a sequence of " { $link bits } " in ascending significance. Throws an error on negative numbers." }
27 { $examples
28     { $example "USING: math.bits prettyprint arrays ;" "0b1101 make-bits >array ." "{ t f t t }" }
29     { $example "USING: math.bits prettyprint arrays ;" "64 make-bits >array ." "{ f f f f f f t }" }
30 } ;
31 { <bits> make-bits } related-words
32
33 HELP: bits>number
34 { $values { "seq" sequence } { "number" integer } }
35 { $description "Converts a sequence of booleans in ascending significance into a number." } ;
36 { make-bits bits>number } related-words