1
0
mirror of https://github.com/tensorflow/haskell.git synced 2024-06-30 16:38:34 +02:00
tensorflow-haskell/docs/haddock/tensorflow-records-0.1.0.0/src/TensorFlow.CRC32C.html

62 lines
13 KiB
HTML
Raw Normal View History

2017-10-20 05:56:38 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-comment">-- Copyright 2016 TensorFlow authors.</span><span>
</span><a name="line-2"></a><span class="hs-comment">--</span><span>
</span><a name="line-3"></a><span class="hs-comment">-- Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span><span>
</span><a name="line-4"></a><span class="hs-comment">-- you may not use this file except in compliance with the License.</span><span>
</span><a name="line-5"></a><span class="hs-comment">-- You may obtain a copy of the License at</span><span>
</span><a name="line-6"></a><span class="hs-comment">--</span><span>
</span><a name="line-7"></a><span class="hs-comment">-- http://www.apache.org/licenses/LICENSE-2.0</span><span>
</span><a name="line-8"></a><span class="hs-comment">--</span><span>
</span><a name="line-9"></a><span class="hs-comment">-- Unless required by applicable law or agreed to in writing, software</span><span>
</span><a name="line-10"></a><span class="hs-comment">-- distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span><span>
</span><a name="line-11"></a><span class="hs-comment">-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span>
</span><a name="line-12"></a><span class="hs-comment">-- See the License for the specific language governing permissions and</span><span>
</span><a name="line-13"></a><span class="hs-comment">-- limitations under the License.</span><span>
</span><a name="line-14"></a><span>
</span><a name="line-15"></a><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">TensorFlow</span><span class="hs-operator">.</span><span class="hs-identifier">CRC32C</span><span>
</span><a name="line-16"></a><span> </span><span class="hs-special">(</span><span> </span><span class="hs-identifier hs-var">crc32c</span><span>
</span><a name="line-17"></a><span> </span><span class="hs-special">,</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cLBS"><span class="hs-identifier hs-var">crc32cLBS</span></a><span>
</span><a name="line-18"></a><span> </span><span class="hs-special">,</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cUpdate"><span class="hs-identifier hs-var">crc32cUpdate</span></a><span>
</span><a name="line-19"></a><span> </span><span class="hs-special">,</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cMasked"><span class="hs-identifier hs-var">crc32cMasked</span></a><span>
</span><a name="line-20"></a><span> </span><span class="hs-special">,</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cLBSMasked"><span class="hs-identifier hs-var">crc32cLBSMasked</span></a><span>
</span><a name="line-21"></a><span> </span><span class="hs-special">,</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cMask"><span class="hs-identifier hs-var">crc32cMask</span></a><span>
</span><a name="line-22"></a><span> </span><span class="hs-special">,</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cUnmask"><span class="hs-identifier hs-var">crc32cUnmask</span></a><span>
</span><a name="line-23"></a><span> </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-24"></a><span>
</span><a name="line-25"></a><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data</span><span class="hs-operator">.</span><span class="hs-identifier">Bits</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">rotateL</span><span class="hs-special">,</span><span> </span><span class="hs-identifier hs-var">rotateR</span><span class="hs-special">)</span><span>
</span><a name="line-26"></a><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Data</span><span class="hs-operator">.</span><span class="hs-identifier">ByteString</span><span> </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">B</span><span>
</span><a name="line-27"></a><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Data</span><span class="hs-operator">.</span><span class="hs-identifier">ByteString</span><span class="hs-operator">.</span><span class="hs-identifier">Lazy</span><span> </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">BL</span><span>
</span><a name="line-28"></a><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data</span><span class="hs-operator">.</span><span class="hs-identifier">Digest</span><span class="hs-operator">.</span><span class="hs-identifier">CRC32C</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">crc32c</span><span class="hs-special">,</span><span> </span><span class="hs-identifier hs-var">crc32c_update</span><span class="hs-special">)</span><span>
</span><a name="line-29"></a><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data</span><span class="hs-operator">.</span><span class="hs-identifier">List</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">foldl'</span><span class="hs-special">)</span><span>
</span><a name="line-30"></a><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data</span><span class="hs-operator">.</span><span class="hs-identifier">Word</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-type">Word32</span><span class="hs-special">)</span><span>
</span><a name="line-31"></a><span>
</span><a name="line-32"></a><span class="hs-comment">-- | Compute the CRC32C checksum of the concatenation of the bytes checksummed</span><span>
</span><a name="line-33"></a><span class="hs-comment">-- by the given CRC32C value and the bytes in the given ByteString.</span><span>
</span><a name="line-34"></a><span class="hs-identifier">crc32cUpdate</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">Word32</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">B</span><span class="hs-operator hs-type">.</span><span class="hs-identifier hs-type">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">Word32</span><span>
</span><a name="line-35"></a><a name="crc32cUpdate"><a href="TensorFlow.CRC32C.html#crc32cUpdate"><span class="hs-identifier">crc32cUpdate</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">crc32c_update</span><span>
</span><a name="line-36"></a><span>
</span><a name="line-37"></a><span class="hs-comment">-- | Compute the CRC32C checksum of the given bytes.</span><span>
</span><a name="line-38"></a><span class="hs-identifier">crc32cLBS</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">BL</span><span class="hs-operator hs-type">.</span><span class="hs-identifier hs-type">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">Word32</span><span>
</span><a name="line-39"></a><a name="crc32cLBS"><a href="TensorFlow.CRC32C.html#crc32cLBS"><span class="hs-identifier">crc32cLBS</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">foldl'</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cUpdate"><span class="hs-identifier hs-var">crc32cUpdate</span></a><span> </span><span class="hs-number">0</span><span> </span><span class="hs-operator hs-var">.</span><span> </span><span class="hs-identifier hs-var">BL</span><span class="hs-operator hs-var">.</span><span class="hs-identifier hs-var">toChunks</span><span>
</span><a name="line-40"></a><span>
</span><a name="line-41"></a><span class="hs-comment">-- | Scramble a CRC32C value so that the result can be safely stored in a</span><span>
</span><a name="line-42"></a><span class="hs-comment">-- bytestream that may itself be CRC'd.</span><span>
</span><a name="line-43"></a><span class="hs-comment">--</span><span>
</span><a name="line-44"></a><span class="hs-comment">-- This masking is the algorithm specified by TensorFlow's TFRecords format.</span><span>
</span><a name="line-45"></a><span class="hs-identifier">crc32cMask</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">Word32</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">Word32</span><span>
2018-08-14 06:05:49 +02:00
</span><a name="line-46"></a><a name="crc32cMask"><a href="TensorFlow.CRC32C.html#crc32cMask"><span class="hs-identifier">crc32cMask</span></a></a><span> </span><a name="local-6989586621679023451"><a href="#local-6989586621679023451"><span class="hs-identifier">x</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">rotateR</span><span> </span><a href="#local-6989586621679023451"><span class="hs-identifier hs-var">x</span></a><span> </span><span class="hs-number">15</span><span> </span><span class="hs-operator hs-var">+</span><span> </span><a href="TensorFlow.CRC32C.html#maskDelta"><span class="hs-identifier hs-var">maskDelta</span></a><span>
2017-10-20 05:56:38 +02:00
</span><a name="line-47"></a><span>
</span><a name="line-48"></a><span class="hs-comment">-- | Inverse of 'crc32cMask'.</span><span>
</span><a name="line-49"></a><span class="hs-identifier">crc32cUnmask</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">Word32</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">Word32</span><span>
2018-08-14 06:05:49 +02:00
</span><a name="line-50"></a><a name="crc32cUnmask"><a href="TensorFlow.CRC32C.html#crc32cUnmask"><span class="hs-identifier">crc32cUnmask</span></a></a><span> </span><a name="local-6989586621679023531"><a href="#local-6989586621679023531"><span class="hs-identifier">x</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">rotateL</span><span> </span><span class="hs-special">(</span><a href="#local-6989586621679023531"><span class="hs-identifier hs-var">x</span></a><span> </span><span class="hs-glyph">-</span><span> </span><a href="TensorFlow.CRC32C.html#maskDelta"><span class="hs-identifier hs-var">maskDelta</span></a><span class="hs-special">)</span><span> </span><span class="hs-number">15</span><span>
2017-10-20 05:56:38 +02:00
</span><a name="line-51"></a><span>
</span><a name="line-52"></a><span class="hs-comment">-- | Convenience function combining 'crc32c' and 'crc32cMask'.</span><span>
</span><a name="line-53"></a><span class="hs-identifier">crc32cMasked</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">B</span><span class="hs-operator hs-type">.</span><span class="hs-identifier hs-type">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">Word32</span><span>
</span><a name="line-54"></a><a name="crc32cMasked"><a href="TensorFlow.CRC32C.html#crc32cMasked"><span class="hs-identifier">crc32cMasked</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cMask"><span class="hs-identifier hs-var">crc32cMask</span></a><span> </span><span class="hs-operator hs-var">.</span><span> </span><span class="hs-identifier hs-var">crc32c</span><span>
</span><a name="line-55"></a><span>
</span><a name="line-56"></a><span class="hs-comment">-- | Convenience function combining 'crc32cLBS' and 'crc32cMask'.</span><span>
</span><a name="line-57"></a><span class="hs-identifier">crc32cLBSMasked</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">BL</span><span class="hs-operator hs-type">.</span><span class="hs-identifier hs-type">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">Word32</span><span>
</span><a name="line-58"></a><a name="crc32cLBSMasked"><a href="TensorFlow.CRC32C.html#crc32cLBSMasked"><span class="hs-identifier">crc32cLBSMasked</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cMask"><span class="hs-identifier hs-var">crc32cMask</span></a><span> </span><span class="hs-operator hs-var">.</span><span> </span><a href="TensorFlow.CRC32C.html#crc32cLBS"><span class="hs-identifier hs-var">crc32cLBS</span></a><span>
</span><a name="line-59"></a><span>
</span><a name="line-60"></a><span class="hs-identifier">maskDelta</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">Word32</span><span>
</span><a name="line-61"></a><a name="maskDelta"><a href="TensorFlow.CRC32C.html#maskDelta"><span class="hs-identifier">maskDelta</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-number">0xa282ead8</span><span>
</span><a name="line-62"></a></pre></body></html>