.. index:: single: hash_common_64 .. _hash_common_64/0: .. rst-class:: right **object** ``hash_common_64`` ================== Auxiliary predicates for the hashes library 64-bit algorithms. | **Availability:** | ``logtalk_load(hashes(loader))`` | **Author:** Paulo Moura | **Version:** 1:0:0 | **Date:** 2026-04-04 | **Compilation flags:** | ``static, context_switching_calls`` | **Dependencies:** | (none) | **Remarks:** | (none) | **Inherited public predicates:** | (none) .. contents:: :local: :backlinks: top Public predicates ----------------- .. index:: word64_hex/2 .. _hash_common_64/0::word64_hex/2: ``word64_hex/2`` ^^^^^^^^^^^^^^^^ Converts a 64-bit word into a 16-digit lowercase hexadecimal atom. | **Compilation flags:** | ``static`` | **Template:** | ``word64_hex(Word,Hex)`` | **Mode and number of proofs:** | ``word64_hex(+integer,-atom)`` - ``one`` ------------ .. index:: mask64/1 .. _hash_common_64/0::mask64/1: ``mask64/1`` ^^^^^^^^^^^^ Returns the 64-bit mask value. | **Compilation flags:** | ``static`` | **Template:** | ``mask64(Mask)`` | **Mode and number of proofs:** | ``mask64(-integer)`` - ``one`` ------------ .. index:: add64/3 .. _hash_common_64/0::add64/3: ``add64/3`` ^^^^^^^^^^^ Adds two integers modulo 2^64. | **Compilation flags:** | ``static`` | **Template:** | ``add64(A,B,Sum)`` | **Mode and number of proofs:** | ``add64(+integer,+integer,-integer)`` - ``one`` ------------ .. index:: mul64/3 .. _hash_common_64/0::mul64/3: ``mul64/3`` ^^^^^^^^^^^ Multiplies two integers modulo 2^64. | **Compilation flags:** | ``static`` | **Template:** | ``mul64(A,B,Product)`` | **Mode and number of proofs:** | ``mul64(+integer,+integer,-integer)`` - ``one`` ------------ .. index:: rol64/3 .. _hash_common_64/0::rol64/3: ``rol64/3`` ^^^^^^^^^^^ Rotates a 64-bit word left by the given number of bits. | **Compilation flags:** | ``static`` | **Template:** | ``rol64(Value,Shift,Rotated)`` | **Mode and number of proofs:** | ``rol64(+integer,+integer,-integer)`` - ``one`` ------------ .. index:: xor64/3 .. _hash_common_64/0::xor64/3: ``xor64/3`` ^^^^^^^^^^^ Computes the bitwise exclusive-or of two integers modulo 2^64. | **Compilation flags:** | ``static`` | **Template:** | ``xor64(A,B,Xor)`` | **Mode and number of proofs:** | ``xor64(+integer,+integer,-integer)`` - ``one`` ------------ .. index:: or64/3 .. _hash_common_64/0::or64/3: ``or64/3`` ^^^^^^^^^^ Computes the bitwise disjunction of two integers modulo 2^64. | **Compilation flags:** | ``static`` | **Template:** | ``or64(A,B,Or)`` | **Mode and number of proofs:** | ``or64(+integer,+integer,-integer)`` - ``one`` ------------ .. index:: and64/3 .. _hash_common_64/0::and64/3: ``and64/3`` ^^^^^^^^^^^ Computes the bitwise conjunction of two integers modulo 2^64. | **Compilation flags:** | ``static`` | **Template:** | ``and64(A,B,And)`` | **Mode and number of proofs:** | ``and64(+integer,+integer,-integer)`` - ``one`` ------------ .. index:: not64/2 .. _hash_common_64/0::not64/2: ``not64/2`` ^^^^^^^^^^^ Computes the bitwise complement of an integer modulo 2^64. | **Compilation flags:** | ``static`` | **Template:** | ``not64(Value,Complement)`` | **Mode and number of proofs:** | ``not64(+integer,-integer)`` - ``one`` ------------ .. index:: shl64/3 .. _hash_common_64/0::shl64/3: ``shl64/3`` ^^^^^^^^^^^ Shifts a 64-bit word left by the given number of bits and masks the result. | **Compilation flags:** | ``static`` | **Template:** | ``shl64(Value,Shift,Shifted)`` | **Mode and number of proofs:** | ``shl64(+integer,+integer,-integer)`` - ``one`` ------------ .. index:: shr64/3 .. _hash_common_64/0::shr64/3: ``shr64/3`` ^^^^^^^^^^^ Shifts a 64-bit word right by the given number of bits after masking the input. | **Compilation flags:** | ``static`` | **Template:** | ``shr64(Value,Shift,Shifted)`` | **Mode and number of proofs:** | ``shr64(+integer,+integer,-integer)`` - ``one`` ------------ .. index:: integer_to_big_endian_bytes64/2 .. _hash_common_64/0::integer_to_big_endian_bytes64/2: ``integer_to_big_endian_bytes64/2`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Encodes a 64-bit word into eight bytes in big-endian order. | **Compilation flags:** | ``static`` | **Template:** | ``integer_to_big_endian_bytes64(Integer,Bytes)`` | **Mode and number of proofs:** | ``integer_to_big_endian_bytes64(+integer,-list(integer))`` - ``one`` ------------ Protected predicates -------------------- (none) Private predicates ------------------ (none) Operators --------- (none)