Abstract:
The present invention teaches a method for generating an output value corresponding to an input value via a first function comprising a first section and a second section with the use of a lookup table, comprising: prestoring a plurality of first sampling points corresponding only to a third section of a second function, wherein the second function further includes a fourth section and there is a first mathematical transformation between the first function and the second function; receiving the input value corresponding to the first section; generating the output value based on at least one of the first sampling points through performing the first mathematical transformation on the first sampling point; and outputting the output value.

Description:
BACKGROUND OF INVENTION 
   1. Field of the Invention 
   The invention relates to an apparatus for determining an output value according to a look up table and a method thereof, and more particularly, to an apparatus for determining an output value according to a simplified look up table and a method thereof. 
   2. Description of the Prior Art 
   Some specific mathematical functions, such as trigonometric function, exponential function, and logarithmic function, etc., are commonly-used in the operation of the electronic device, such as the electronic device for used in a communication system. It should be noted that the operation of such specific functions are complicated such that a complicated circuit is needed to perform such operations. One of the conventional methods is to build a look up table inside the electronic device to generate the expected value based on the sampling points stored in the look up table through interpolation, instead of performing the complicated math function directly. However, such specific mathematical functions are not linear functions. Therefore, a lot of sampling points needed to be stored in the look up table in order to meet the accuracy requirement of the electronic device. The memory size used for the look up table is large. 
   SUMMARY OF INVENTION 
   It is therefore an objective of the claimed invention to provide a method for selectively determining an output value from an input value to reduce memory usage. 
   According to the claimed object, a method for generating an output value corresponding to an input value via a first function comprising a first section and a second section with the use of a lookup table, comprising: prestoring a plurality of first sampling points corresponding only to a third section of a second function, wherein the second function further includes a fourth section and there is a first mathematical transformation between the first function and the second function; receiving the input value corresponding to the first section; generating the output value based on at least one of the first sampling points through performing the first mathematical transformation on the first sampling point; and outputting the output value. 
   These and other objectives of the claimed invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings. 

   
     BRIEF DESCRIPTION OF DRAWINGS 
       FIG. 1  is a schematic diagram of the curves of the arcsine and arccosine function. 
       FIG. 2  is the flow chart according to the first embodiment of the present invention. 
       FIG. 3  is a schematic diagram of the curve of the exponential function. 
       FIG. 4  is a schematic diagram of the curves of the exponential and the logarithmic function. 
       FIG. 5  is the flow chart according to the second embodiment of the present invention. 
       FIG. 6  is the apparatus according to the embodiment of the present invention. 
   

   DETAILED DESCRIPTION 
   Please refer to  FIG. 1 , it shows the diagram of the arcsine and the arccosine functions. In the embodiment of the present invention, the apparatus for determining the output value of the arcsine and/or the arccosine function and the method thereof are disclosed. The arcsine and the arccosine functions are not linear functions. The slope of the curves varied, as shown in  FIG. 1 . 
   There are two transformation formulas for converting the arcsine function to the arccosine function and vise versa, which are arcsin(x)+arccos(x)=90°, wherein the absolute value of x≦1, and sin(x)=cos(90°−x). In the embodiment of the present invention, the curve of arcsine function is divided into two sections, which are 0&lt;arcsine(x)&lt;45° (section a) and 45°&lt;arcsine(x)&lt;90° (section b) and the curve of arccosine function is divided into two sections, which are 0&lt;arccosine(x)&lt;45° (section c) and 45°&lt;arccosine(x)&lt;90° (section d). Only one of the four sections is needed to store in the look up table. The other three sections can be generated based on the stored section through the transformation formulas disclosed above. In this manner, the memory size reserved for the look up table can be reduced. 
   Take arcsine curve as an example, the slope of section a curve is smaller than the slope of the section b curve. Therefore, if section a curve is stored in the loop up table though storing a number of sampling points and the other three sections are generated based on the sampling points of the section a curve. The accuracy of the result through interpolation can be much higher than generating the other sections based on the sampling points of the section b curve. Thus, in this embodiment of the present invention, it is preferably to store either section a curve or section c curve to the loop up table. 
   In other words, if section a is the curve stored in the loop up table, it takes lesser bits for each of the sampling points stored in the look up table to fit in with the accuracy requirement compared with that section b curve is stored in the loop up table. Thus, the memory size reserved for the loop up table can be further reduced. 
     FIG. 2  shows the flow chart based on the first embodiment of the present invention, which follows: 
   Step  202 : Storing sampling points corresponding to only the first section (Ex: section a of  FIG. 1 ) of the first function (Ex: arcsine function) into the look up table after determining that there is at least a mathematical transformation between the first function and the second function (Ex: arccosine function). 
   Step  204 : Generating the first section (Ex: section c of  FIG. 1 ) of the second function based on the first section of the first function through the first mathematical transformation (Ex: arcsin(x)+arccos(x)=90°, wherein the absolute value of x≦1). 
   Step  206 : Generating the second section of the first function and the second function (Ex: section b of arcsine function, section d of arccosine function shown in  FIG. 1 ) based on the first section of the first function and the second function through the first mathematical transformation and the second mathematical transformation (Ex: sin(x)=cos(90°−x)) It should be noted that the section d of the arccosine function can be generated first then section b of the arcsine function and the section c of the arccosine function can be generated later. The steps of generating section b, c, and d respectively based on section a can be performed in any logical order. 
   Please refer to  FIG. 3 , it shows the diagram of the exponential function: y=a x . The exponential functions is not linear functions. The slope of the curves varied, as shown in  FIG. 3 . 
   The exponential function of  FIG. 3  can be divided into section a, if x&lt;0, and section b, if x≧0. There is a transformation formula to show the mathematical relationship between section a and section b that a x =1/a −x . Therefore, only one of the two sections is needed to store in the look up table. The other section can be generated based on the stored section through the transformation formula disclosed above. In this manner, the memory size reserved for the look up table can be reduced. 
   In addition, the slope of section a curve is smaller than the slope of the section b curve. Therefore, in this embodiment of the present invention, it is preferably to store section a curve to the loop up table. In this manner, it takes lesser bits for each of the sampling points stored in the look up table to fit in with the accuracy requirement compared with that section b curve is stored in the loop up table. Thus, the memory size reserved for the loop up table can be further reduced. 
     FIG. 4  shows the diagram of the exponential function: y=a x  and the logarithmic function: y=log a x. Since the exponential function is the inverse function of the logarithmic function and vice versa, the curve of the logarithmic function: y=log a x can be generated based on the exponential function: y=a x . Accordingly, if section a curve of  FIG. 4  is stored in the loop up table though storing a number of sampling points, the other three sections of  FIG. 4  can be generated based on the sampling points of the section a curve. 
     FIG. 5  shows the flow chart based on the second embodiment of the present invention, which follows: 
   Step  502 : Storing sampling points corresponding to only the first section (Ex: section a of  FIG. 4 ) of the first function (Ex: exponential function) into the look up table after determining that there is at least a mathematical transformation between the first function and the second function (Ex: logarithmic function). 
   Step  204 : Generating the second section (Ex: section b of  FIG. 4 ) of the first function based on the first section of the first function through the first mathematical transformation (Ex: a x =1/a −x ). 
   Step  206 : Generating the values of the second function based on the first section of the first function if there is a mathematical relationship between the first and the second function (inverse function in between). 
   It should be noted that the steps of generating section b, c, and d respectively based on section a can be performed in any logical order. 
   Please refer to  FIG. 6 , it shows the apparatus for performing the above described methods according to the embodiments of the present invention. The apparatus includes a lookup table  604  and a transformation device  602 . When the apparatus receives an input value, the transformation device  602  may perform the above-described methods based on the sampling points stored in the look up table  604  to generate the corresponding output. The look up table device  604  comprises a lookup table for storing at least a first portion of a first function. The transformation device  602  for deriving the output value corresponding to an input value according to the first portion of the first function, wherein a relationship between the input value and the output value is determined by at least a portion of a second function which can be transformed from the first portion of the first function through a first mathematical transformation, and a second portion of the first function relationship which can be transformed from the first portion of the first function through a second mathematical transformation. The transformation device  602  can be any analog or digital circuitry that can perform mathematical operations such as a central processing unit, a data processing unit, a DSP, and a scientific calculator but not limited to what is disclosed. 
   According to the embodiment disclosed above, the present invention can selectively determining an output value from an input value so that the required number of bits in greatly reduced and the resolution of the input does not have to be limited to match the output resolution. As a result, the physical size of the circuit is reduced and at the same time the cost of the circuit is lowered. 
   Those skilled in the art will readily observe that numerous modifications and alterations of the device may be made while retaining the teachings of the invention. Accordingly, that above disclosure should be construed as limited only by the metes and bounds of the appended claims.