Now consider the mathematics necessary to determine the contents of the MAP based on P and D. The upper part of the diagram shown here as one cycle of a sinusoid with its amplitude midpoint offset from 0 by a value of M and with a peak amplitude of A. Its angular expanse, theta, ranges from 0 to 2-pi radians. Equation 1 expresses the amplitude of the sinusoid, y, for a specified angle, theta, in the analog (or continuous) domain. However, the output of the MAP is not continuous, but quantized, so y is constrained to integer values. Therefore, Equation 2 modifies Equation 1 for the digital domain indicating that for a given angle theta, the resulting y is an integer. Next, consider the sinusoid at the output of the MAP. The output bus width of the map, D, sets the scale for the amplitude of the sinusoid, while the input bus width of the map, P, sets the angular scale. Because the angular range is from 0 to 2-pi, the value x associated with the P-bit input value to the map scales linearly as shown by the expression theta on the horizontal axis. Namely, theta = 2-pi times x divided by 2-to-the-power-P. Now with regard to the amplitude scale, typically, the smallest D-bit value, that is 0, corresponds to the bottom of the sinusoid. Similarly, the largest D-bit value, that is, 2 to the D minus 1 corresponds to the top of the sinusoid. This means the amplitude midpoint M is half of 2 to the D minus 1. Because of the vertical symmetry of a sinusoid, A is equal to M. Substituting A, M and theta into the form of Equation 2 yields Equation 3, which gives y, the D-bit output value for any given P-bit input value, x. Although Equation 3 is a valid formula for calculating the contents of the map, it has a problem, namely the midpoint value, M. Note that M can be expressed as 2 raised to the D minus 1 power minus one half. But D is an integer by definition, so 2 raised to the D minus 1 power is also an integer. This implies that no value of x in equation 3 can equal M because equation 3 only yields integers while M has a one half term. The consequence is a map that uses Equation 3 to determine y will not have an output code corresponding to M, the midpoint of the sinusoid. This is an unacceptable behavior in certain situations, so the map for DDS purposes uses Equation 4, instead. Equation 4 solves the problem by not using the largest D-bit value as the top of the sinusoid. Instead, it ignores the largest value, 2 to the D minus 1, and uses one count less, 2 to the D minus 2, to represent the top of the sinusoid. This eliminates the one half term so that M is an integer regardless of the choice of D for the output bus width of the map. Keep in mind that it makes no difference whether the map is a lookup table or a computational engine. The y-value resulting for a given x input value using a lookup table must be the same as the y-value using a computational engine.