# BVEC Binary Vector Representation of Signed Integers

BVEC is a FORTRAN90 library which demonstrates how signed integers can be stored as binary vectors, and arithmetic can be performed on them.

### Licensing:

The computer code and data files made available on this web page are distributed under the GNU LGPL license.

### Languages:

BVEC is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.

### Related Data and Programs:

SUBSET, a FORTRAN90 library which enumerates, generates, randomizes, ranks and unranks combinatorial objects including combinations, compositions, Gray codes, index sets, partitions, permutations, polynomials, subsets, and Young tables. Backtracking routines are included to solve some combinatorial problems.

UBVEC, a FORTRAN90 library which demonstrates how unsigned binary vectors, strings of 0's and 1's, can represent nonnegative integers or subsets or other mathematical objects, for which various arithmetic and logical operations can be defined.

### List of Routines:

• BVEC_ADD adds two (signed) binary vectors.
• BVEC_AND computes the AND of two binary vectors.
• BVEC_CHECK checks a binary vector.
• BVEC_COMPLEMENT2 computes the two's complement of a binary vector.
• BVEC_MUL computes the product of two binary vectors.
• BVEC_NEXT generates the next BVEC.
• BVEC_NOT "negates" or takes the 1's complement of a binary vector.
• BVEC_OR computes the inclusive OR of two binary vectors.
• BVEC_PRINT prints a BVEC, with an optional title.
• BVEC_REVERSE reverses a binary vector.
• BVEC_SUB subtracts two binary vectors.
• BVEC_TO_I4 makes an integer from a (signed) binary vector.
• BVEC_UNIFORM returns a pseudorandom BVEC.
• BVEC_XOR computes the exclusive OR of two binary vectors.
• I4_TO_BVEC makes a signed binary vector from an I4.
• I4_UNIFORM_AB returns a scaled pseudorandom I4.
• TIMESTAMP prints the current YMDHMS date as a time stamp.

You can go up one level to the FORTRAN90 source codes.

Last revised on 29 March 2014.