Method Reference: calendarDuration.keyHash

calendarDuration: key = keyHash (calD)
calendarDuration: key = keyHash (calD, base)

Generate a hash code for a calendarDuration array.

key = keyHash (calD) generates a uint64 scalar that represents the input array calD. keyHash utilizes the 64-bit FNV-1a variant of the Fowler-Noll-Vo non-cryptographic hash function.

key = keyHash (calD, base) also generates a 64-bit hash code using base as the offset basis for the FNV-1a hash algorithm. base must be a uint64 integer type scalar. Use this syntax to cascade keyHash on multiple objects for which a single hash code is required.

A calendarDuration array is keyed on its months, days and time components, so calendar units that are interchangeable share a key: calmonths (12) hashes as calyears (1), and calweeks (1) as caldays (7). Units that are not interchangeable stay distinct, calmonths (1) and caldays (30) among them. The Format property is display only and is not part of the key. Two arrays that keyMatch reports as the same key always hash alike.

Note that unlike MATLAB, this implementation does not use any random seed. As a result, keyHash will always generate the exact same hash key for any particular input across different workers and Octave sessions.

Source Code: calendarDuration