PLE5P8                                             PLE DESIGN SPECIFICATION
P5024                                                 WILLY VOLDAN 06/02/84
HYPOTENUSE OF A RIGHT TRIANGLE LOOK-UP TABLE
MMI GMBH MUNICH
.ADD A0 A1 B0 B1 B2
.DAT C0 C1 C2 C3 C4 C5 C6 C7


C0 =      A0*/B2* B1           ; COMPUTE DIGIT FOR 2EXP-5 (0.03125) (LSB)
   + /A1* A0* B2*/B1
   +  A1*    /B2*     B0
   +  A1*    /B2* B1
   +  A1*/A0* B2*/B1*/B0
   +  A1* A0*     B1* B0
   +      A0*/B2*     B0

C1 =      A0*     B1*/B0       ; COMPUTE DIGIT FOR 2EXP-4 (0.0625)
   + /A1* A0* B2
   +  A1*/A0*/B2*     B0
   +  A1*/A0* B2*    /B0
   +      A0* B2*     B0
   +  A1* A0*     B1

C2 =      A0*/B2*     B0       ; COMPUTE DIGIT FOR 2EXP-3 (0.125)
   + /A1* A0*/B2* B1
   +  A1*/A0* B2*/B1
   +  A1* A0* B2* B1
   +  A1*    /B2*/B1* B0

C3 = /A1* A0*/B2*/B1* B0       ; COMPUTE DIGIT FOR 2EXP-2 (0.25)
   +  A1*/A0*     B1*/B0
   +  A1*/A0* B2
   +  A1*     B2*     B0

C4 =  A1*/A0*/B2* B1           ; COMPUTE DIGIT FOR 2EXP-1 (0.5)
   +  A1* A0* B2*/B1* B0
   +  A1* A0*     B1*/B0

C5 = /A1*             B0       ; COMPUTE DIGIT FOR 2EXP0 (1)
   +      A0*/B2*/B1
   +     /A0*     B1* B0
   +          B2*     B0
   +  A1* A0*/B2*    /B0
   +  A1* A0*    /B1

C6 = /A1*         B1           ; COMPUTE DIGIT FOR 2EXP1 (2)
   +  A1*    /B2*/B1
   +          B2* B1
   +     /A0*     B1
   +              B1*/B0

C7 =          B2               ; COMPUTE DIGIT FOR 2EXP2 (4) (MSB)
   +  A1* A0*     B1* B0


FUNCTION TABLE

;-LENGTH OF SIDES-    LENGTH OF THE HYPOTENUSE
;SIDE A    SIDE B     INTEGER      FRACTION       SIDES   LENGTH OF HYPOTENUSE
 A1 A0    B2 B1 B0    C7 C6 C5  C4 C3 C2 C1 C0    ;A B    LOOK-UP   CALCULATED
-------------------------------------------------------------------------------
 L  L     L  L  L     L  L  L   L  L  L  L  L      0 0      0.00       0.00
 L  L     L  L  H     L  L  H   L  L  L  L  L      0 1      1.00       1.00
 L  L     L  H  L     L  H  L   L  L  L  L  L      0 2      2.00       2.00
 L  L     H  L  L     H  L  L   L  L  L  L  L      0 4      4.00       4.00
 L  H     L  L  L     L  L  H   L  L  L  L  L      1 0      1.00       1.00
 H  L     L  L  L     L  H  L   L  L  L  L  L      2 0      1.00       1.00
 H  L     L  H  L     L  H  L   H  H  L  L  H      2 2      2.78       2.83
 H  L     H  L  L     H  L  L   L  H  H  H  H      2 4      4.47       4.47
 H  H     L  H  L     L  H  H   H  L  L  H  H      3 2      3.59       3.61
 H  H     H  H  H     H  H  H   L  H  H  H  H      3 7      7.47       7.62
-------------------------------------------------------------------------------


DESCRIPTION

THE GENERATION OF COMPLEX ARITHMETIC FUNCTIONS SUCH AS THE PATHAGORAS THEOREM
IS USUALLY VERY DIFFICULT TO IMPLEMENT DIRECTLY IN HARDWARE.  HOWEVER,
IMPLEMENTING THE FUNCTION AS A LOOK-UP TABLE USING A PLE GREATLY SIMPLIFIES
THE PROBLEM.

THIS EXAMPLE ILLUSTRATES HOW TO IMPLEMENT A LOOK-UP TABLE IN A PLE5P8 WHICH
CALCULATES THE LENGTH OF THE HYPOTENUSE OF A RIGHT TRIANGLE AS A FUNCTION OF
THE LENGTH OF THE TWO REMAINING SIDES OF THE TRIANGLE.  THE THEOREM OF
PATHAGORAS STATES THAT THE LENGTH OF THE HYPOTENUSE OF A RIGHT TRIANGLE IS
EQUAL TO THE SQUARE ROOT OF THE SUM OF THE SQUARE OF THE OTHER TWO SIDES OR
C = SQRT(A**2 + B**2).  THE INPUTS, "A" AND "B", CORRESPOND TO THE SIDES
ADJACENT TO THE RIGHT ANGLE (I.E. 90 DEGREE ANGLE), WHILE THE OUTPUT, "C",
CORRESPONDS TO THE SIDE OPPOSITE TO THE RIGHT ANGLE WHICH IS CALLED THE
HYPOTENUSE.

C = SQRT(A**2 + B**2)     WHERE C = LENGTH OF SIDE C (THE HYPOTENUSE)
                                A = LENGTH OF SIDE A
                                B = LENGTH OF SIDE B

EXAMPLE:  FOR A = 2 AND B = 4, C = SQRT(2**2 + 4**2) = 4.47
