|
Module type_boolean
Home
--> Fact
Sheet -->
Free Source Code
--> type_boolean
About the Module
type_boolean
Go directly to Downloads
Type boolean is a typeless type- that is, conversion
to or from type boolean consists of copying the bits as is. Entities of type
boolean consist of an ordered set of bits, no meaning is attached to any bit.
Entities of type boolean have available several operations and procedures, all
of which are bit-oriented. This module uses
module standard_types, which may be
obtained from the Portability Project
pages.
Back to the Top
A list of (most) operators and procedures defined
follows.
- Constants
- all_set and all_clear are
boolean constants with all bits set and all bits clear, respectively.
Back to the Top
- Operators
- = 4 byte real, integer, logical and
character entities may be assigned to a boolean and vice versa. The assignment
is a bit-wise copy.
- + and - are unary operators
which treat boolean variables as signed integers
- .set. and .clear. are
binary operators requiring a left boolean and a right integer, which set or
clear, respectively, the bit in the boolean indicated by the integer.
- .isset. and .isclear. are
binary logical operators requiring a left boolean and a right integer which are
true if the bit indicated by the integer in the boolean is set or clear,
respectively.
- .and., .or. and
.eor. are binary bitwise operators requiring two booleans and
producing a boolean result. .not. is a unary bitwise operator.
- .xor., .eqv. and
.neqv. are binary bitwise operators requiring two booleans and
producing a boolean result.
- .eq., .ne.,
.gt., .ge., .le. and
.lt. are binary logical operators requiring two booleans and
producing a logical result. The comparisons take place as if the operands were
signed integers.
- +, -, *
and / are binary operators which treat boolean variables as
signed integers.
- .hamd. is a binary operator which computes
the Hamming distance between the two booleans and produces an integer result.
- .shift. and .rotate. are
binary linear and circular shift operators.
Back to the Top
- Library
- bool(), int(),
real(), logical() and char()
routines convert between boolean and other four byte types. No change in the
underlying bit pattern occurs.
- compl() returns the boolean compliment
(reverses each bit) of its operand. csmg() provides the
merging of two booleans based on a third.
- leadz(), lastz(),
popcnt() and poppar() return the integer
leading zero count, last zero count, population count and population count
parity, respectively. hamd() returns the integer Hamming
distance.
- mask(), maskl() and
maskr() take integer operands and return masks of type
boolean.
- ishft() and ishftc() are
the boolean equivalents of the standard integer intrinsics.
- dshftl(), dshftr() and
dshftc() are boolean double shifts.
- ibset(), ibclr(),
btest(), mvbits() and
ibits() are the boolean equivalent of the integer intrinsics.
bztest() returns true if the bit tested is clear rather than
set.
- not() reverses each bit of its boolean
operand.
- rev_endian() reverses the byte order of a
boolean.
- swap() exchanges two booleans.
- bit_size() returns the bit size of its
boolean operand.
Back to the Top
To download the type_boolean module, click
type_boolean. This module
depends on the standard_types module, see the portability project for information about how to make
one for your compiler.
Back to the Top
To make comments or suggestions regarding
standard_functions, or any of our software, please
E-mail us. We're always happy to share
the experiences others have using our software. |