HELP: bit-count
{ $values
- { "obj" object }
- { "n" integer }
+ { "obj" object }
+ { "n" integer }
}
{ $description "Returns the number of set bits as an object. This word only works on non-negative integers or objects that can be represented as a byte-array." }
{ $examples
HELP: bitroll-32
{ $values
- { "m" integer } { "s" integer }
- { "n" integer }
+ { "m" integer } { "s" integer }
+ { "n" integer }
}
{ $description "Rolls the number " { $snippet "m" } " by " { $snippet "s" } " bits to the left, wrapping around after 32 bits." }
{ $examples
HELP: bitroll-64
{ $values
- { "m" integer } { "s" "a shift integer" }
- { "n" integer }
+ { "m" integer } { "s" "a shift integer" }
+ { "n" integer }
}
{ $description "Rolls the number " { $snippet "m" } " by " { $snippet "s" } " bits to the left, wrapping around after 64 bits." }
{ $examples
HELP: clear-bit
{ $values
- { "x" integer } { "n" integer }
- { "y" integer }
+ { "x" integer } { "n" integer }
+ { "y" integer }
}
{ $description "Sets the " { $snippet "n" } "th bit of " { $snippet "x" } " to zero." }
{ $examples
HELP: mask
{ $values
- { "x" integer } { "n" integer }
- { "y" integer }
+ { "x" integer } { "n" integer }
+ { "y" integer }
}
{ $description "After the operation, only the bits that were set in both the mask and the original number are set." }
{ $examples
HELP: mask-bit
{ $values
- { "m" integer } { "n" integer }
- { "m'" integer }
+ { "m" integer } { "n" integer }
+ { "m'" integer }
}
{ $description "Turns off all bits besides the " { $snippet "n" } "th bit." }
{ $examples
HELP: mask?
{ $values
- { "x" integer } { "n" integer }
- { "?" boolean }
+ { "x" integer } { "n" integer }
+ { "?" boolean }
}
{ $description "Returns true if all of the bits in the mask " { $snippet "n" } " are set in the integer input " { $snippet "x" } "." }
{ $examples
HELP: on-bits
{ $values
- { "m" integer }
- { "n" integer }
+ { "m" integer }
+ { "n" integer }
}
{ $description "Returns an integer with " { $snippet "m" } " bits set." }
{ $examples
HELP: toggle-bit
{ $values
- { "m" integer }
- { "n" integer }
- { "m'" integer }
+ { "m" integer }
+ { "n" integer }
+ { "m'" integer }
}
{ $description "Toggles the " { $snippet "n" } "th bit of an integer." }
{ $examples
HELP: set-bit
{ $values
- { "x" integer } { "n" integer }
- { "y" integer }
+ { "x" integer } { "n" integer }
+ { "y" integer }
}
{ $description "Sets the " { $snippet "n" } "th bit of " { $snippet "x" } "." }
{ $examples
HELP: shift-mod
{ $values
- { "m" integer } { "s" integer } { "w" integer }
- { "n" integer }
+ { "m" integer } { "s" integer } { "w" integer }
+ { "n" integer }
}
{ $description "Calls " { $link shift } " on " { $snippet "n" } " and " { $snippet "s" } ", wrapping the result to " { $snippet "w" } " bits." } ;
HELP: unmask
{ $values
- { "x" integer } { "n" integer }
- { "y" integer }
+ { "x" integer } { "n" integer }
+ { "y" integer }
}
{ $description "Clears the bits in " { $snippet "x" } " if they are set in the mask " { $snippet "n" } "." }
{ $examples
HELP: unmask?
{ $values
- { "x" integer } { "n" integer }
- { "?" boolean }
+ { "x" integer } { "n" integer }
+ { "?" boolean }
}
{ $description "Tests whether unmasking the bits in " { $snippet "x" } " would return an integer greater than zero." }
{ $examples
HELP: w*
{ $values
- { "x" integer } { "y" integer }
- { "z" integer }
+ { "x" integer } { "y" integer }
+ { "z" integer }
}
{ $description "Multiplies two integers and wraps the result to a 32-bit unsigned integer." }
{ $examples
HELP: w+
{ $values
- { "x" integer } { "y" integer }
- { "z" integer }
+ { "x" integer } { "y" integer }
+ { "z" integer }
}
{ $description "Adds two integers and wraps the result to a 32-bit unsigned integer." }
{ $examples
HELP: w-
{ $values
- { "x" integer } { "y" integer }
- { "z" integer }
+ { "x" integer } { "y" integer }
+ { "z" integer }
}
{ $description "Subtracts two integers and wraps the result to a 32-bit unsigned integer." }
{ $examples
HELP: W*
{ $values
- { "x" integer } { "y" integer }
- { "z" integer }
+ { "x" integer } { "y" integer }
+ { "z" integer }
}
{ $description "Multiplies two integers and wraps the result to a 64-bit unsigned integer." }
{ $examples
HELP: W+
{ $values
- { "x" integer } { "y" integer }
- { "z" integer }
+ { "x" integer } { "y" integer }
+ { "z" integer }
}
{ $description "Adds two integers and wraps the result to 64-bit unsigned integer." }
{ $examples
HELP: W-
{ $values
- { "x" integer } { "y" integer }
- { "z" integer }
+ { "x" integer } { "y" integer }
+ { "z" integer }
}
{ $description "Subtracts two integers and wraps the result to a 64-bit unsigned integer." }
{ $examples
HELP: wrap
{ $values
- { "m" integer } { "n" integer }
- { "m'" integer }
+ { "m" integer } { "n" integer }
+ { "m'" integer }
}
{ $description "Wraps an integer " { $snippet "m" } " by modding it by " { $snippet "n" } ". This word is uses bitwise arithmetic and does not actually call the modulus word, and as such can only mod by powers of two." }
{ $examples "Equivalent to modding by 8:"