B04: clz
作業要求
- 閱讀 重新理解數值 裡頭關於 count leading zero (clz) 的描述,設計實驗,比較 32-bit 數值對以下實做的效能差異:
- recursive version
- iteration version
- binary search technique
- byte-shift version
- Harley's algorithm
- 除了在 重新理解數值 列出的程式,詳閱劉亮谷的實驗紀錄,予以重現並解釋個別實作的運作原理
- 走訪全部的 32-bit 數值,用上述演算法帶入計算 clz 值,先驗證正確性,如果演算法不正確,試圖改正
- 在 GitHub 上 fork clz-tests,以此為基礎進行以下調整
- 找至少 3 個案例,說明 clz 的應用場合
- 將你的觀察、上述要求的解說、應用場合探討,以及各式效能改善過程,善用 gnuplot 製圖,紀錄於「作業區」
截止日期
- Mar 4, 2017 (含) 之前
- 越早在 GitHub 上有動態、越早接受 code review,評分越高
參考資料
引用過往作業成果時,務必標註出處 (包含 GitHub 帳號或人名),連帶相關的超連結