Can you summarize the following document?
        
  

  許多計算機只能執行基本的算術運算,而不能直接計算給定值的正弦值,它們使用如下面泰勒級數這樣的複雜公式計算相當高精度的正弦值:  formula_1("x"接近0)然而,這樣的計算費用可能是非常大的,尤其是在低速的處理器上。有許多的應用程式,尤其是傳統的計算機圖形每秒需要幾千次的正弦值計算。一個常用的解決方案就是在剛開始計算許多均勻分佈數值的正弦值,然後在表中查詢最接近所需"x"的正弦值,這個值非常接近於正確的數值,這是因為正弦函式是一個有限變化率的連續函式。例如:  不幸的是,查詢表需要一定的空間:如果使用IEEE雙精度浮點數的話,將會需要16,000位元組。如果使用較少的取樣點,那麼精度將會大幅度地下降。一個較好的解決方案是線性插值,在表中待計算點左右兩側兩個點的值之間連直線,這個點對應的直線上的值就是所計算點的正弦值。這種方法計算速度也很快,對於如正弦函式這樣的平滑函式來說也有更高的精度。這裡是使用線性插值的一個例子:  當使用插值的時候,可以得益於"不均勻取樣",也就是說在接近直線的地方,使用較少的取樣點,在變化較快的地方使用較多的取樣點以最大限度地接近實際的曲線。更多的資訊請參考插值。

  "population function"。例如,數字37的二進位制形式是100101,所以它包含有三個設定成1的位。一個計算32位"整數"中1的位數的簡單c語言程式是:  不幸的是,這個簡單的演算法在現代的架構上將需要數以百計的時鐘週期才能完成,這是因為它造成了許多分支和迴圈,而分支的速度是很慢的。這可以使用迴圈展開和其它一些聰明的技巧進行改進,但是最簡單快捷的解決方案是查詢表:簡單地構建一個 包含每個位元組可能值包含的1的個數的256個條目的表。然後使用這個表查詢整數中每個位元組包含的1的個數,並且將結果相加。沒有分支、四次記憶體訪問、幾乎沒有算術運算,這樣與上面的演算法相比就可以大幅度地提升速度。

  

  儲存快取(包括儲存檔案的磁碟快取,或是儲存程式碼或資料的處理器快取),工作原理也類似查詢表。表格被儲存在非常快速的記憶體上,而不是慢速的外部儲存。

  在數位電路中,"n"位查詢表可以使用多路複用器甚至 ROM 來實現。使用多路複用實現時,選擇線是LUT的輸入而輸入是常數;使用 ROM 實現時,只需將輸入連到地址線上即可直接從資料線讀取結果。"n"位LUT通過將布林邏輯函式建模為真值表從而可以編碼任意"n"位輸入,這是編碼布林邏輯函式的一個有效途徑,4位LUT實際上是現代FPGA的主要元件。
在電腦科學中,查詢表(Lookup Table)是用簡單的查詢操作替換執行時計算的陣列或者關聯陣列這樣的資料結構。由於從記憶體中提取數值經常要比複雜的計算速度快很多,所以這樣得到的速度提升是很顯著的。