How does the hashing function Kerl work, i.e. how exactly is an input hashed into the standard 81-tryte-long output? I know that under the hood it uses Keccak (this is not what I am interested in).
What I am specifically wondering about is the flow of how a specific input of trytes is converted to trits, chunked up, absorbed, squeezed, digested, hashed, etc.
So for example, if we have a 2187-tryte-long input, how is this treated to arrive at a 81-tryte-long output?