xor Interface

public interface xor

Sets the bits in set1 to the bitwise xor of the original bits in set1 and set2. The sets must have the same number of bits otherwise the result is undefined. (Specification)

Example

    program demo_xor
        use stdlib_bitsets
        type(bitset_large) :: set0, set1
        call set0 % init(166)
        call set1 % init(166)
        call xor( set0, set1 ) ! none none
        if ( none(set0) ) write(*,*) 'First test of XOR worked.'
        call set0 % not()
        call xor( set0, set1 ) ! all none
        if ( all(set0) ) write(*,*) 'Second test of XOR worked.'
        call set0 % not()
        call set1 % not()
        call xor( set0, set1 ) ! none all
        if ( all(set0) ) write(*,*) 'Third test of XOR worked.'
        call set0 % not()
        call xor( set0, set1 ) ! all all
        if ( none(set0) ) write(*,*) 'Fourth test of XOR worked.'
    end program demo_xor

Contents


Subroutines

public elemental subroutine xor_64(set1, set2)

Arguments

Type IntentOptional AttributesName
type(bitset_64), intent(inout) :: set1
type(bitset_64), intent(in) :: set2

public elemental subroutine xor_large(set1, set2)

Arguments

Type IntentOptional AttributesName
type(bitset_large), intent(inout) :: set1
type(bitset_large), intent(in) :: set2