ubvec
    
    
    
      ubvec,
      a MATLAB code 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. 
    
    
      Licensing:
    
    
      The information on this web page is distributed under the MIT license.
    
    
      Languages:
    
    
      ubvec is available in
      a C version and
      a C++ version and
      a Fortran90 version and
      a MATLAB version and
      an Octave version and
      a Python version.
    
    
      Related Data and Programs:
    
    
      
      ubvec_test
    
    
      
      bvec,
      a MATLAB code which
      demonstrates how signed integers can be stored as
      binary vectors, and arithmetic can be performed on them.
    
    
      
      subset,
      a MATLAB code 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.
    
    
      Source Code:
    
    
      
        - 
          i4_uniform_ab.m, 
          returns a scaled pseudorandom I4 between A and B.
        
 
        - 
          i4vec_print.m,
          prints an I4VEC;
        
 
        - 
          ksubset_colex_unrank.m, 
          computes the K subset of given colex rank.
        
 
        - 
          ksubset_enum.m, 
          enumerates the K subsets of an N set.
        
 
        - 
          morse_thue.m, 
          generates a Morse_Thue number.
        
 
        - 
          nim_sum.m, 
          computes the Nim sum of two integers.
        
 
        - 
          ubvec_add.m, 
          adds two unsigned binary vectors.
        
 
        - 
          ubvec_and.m, 
          computes the AND of two unsigned binary vectors.
        
 
        - 
          ubvec_and_test.m
        
 
        - 
          ubvec_check.m, 
          checks an unsigned binary vector.
        
 
        - 
          ubvec_complement1.m, 
          computes the one's complement of an unsigned binary vector.
        
 
        - 
          ubvec_enum.m, 
          enumerates the unsigned binary vectors of length N.
        
 
        - 
          ubvec_next.m, 
          generates the next UBVEC.
        
 
        - 
          ubvec_next_gray.m, 
          generates the next UBVEC in Gray code order.
        
 
        - 
          ubvec_next_grlex.m, 
          generates the next UBVEC in GRLEX order.
        
 
        - 
          ubvec_or.m, 
          computes the OR of two unsigned binary vectors.
        
 
        - 
          ubvec_print.m, 
          prints a UBVEC, with an optional title.
        
 
        - 
          ubvec_random.m, 
          returns a pseudorandom UBVEC.
        
 
        - 
          ubvec_rank_gray.m, 
          ranks a UBVEC according to the Gray ordering.
        
 
        - 
          ubvec_reverse.m, 
          reverses a UBVEC.
        
 
        - 
          ubvec_to_ui4.m, 
          makes an unsigned integer from an unsigned binary vector.
        
 
        - 
          ubvec_unrank_gray.m, 
          unranks a UBVEC using the Gray ordering.
        
 
        - 
          ubvec_unrank_grlex.m, 
          unranks a UBVEC using the GRLEX ordering.
        
 
        - 
          ubvec_xor.m, 
          computes the exclusive OR of two unsigned binary vectors.
        
 
        - 
          ui4_rank_gray.m, 
          ranks a Gray code.
        
 
        - 
          ui4_to_ubvec.m, 
          makes an unsigned binary vector from an unsigned integer.
        
 
        - 
          ui4_unrank_gray.m, 
          unranks a Gray code.
        
 
      
    
    
    
      Last revised on 10 February 2019.