Assignment 2 Write 2 functions with the calling sequences int dummul(int *a, int *b, int *c, int len), int dumdiv(int *a, int *b, int *c, int len), performing multiplication and division of "long" real numbers, represented by integer arrays of length len+2. In each of the above functions, arrays *a, *b contain the input operands, whose contents may not be altered; on exit, the array *c will contain the result of the operation. The structure of the representation is illustrated by the following two examples. Example 1. Integer array of length 7 (here, len=5) 1 3 2 7 4 3 5 represents the real number 3 1 * 0.27435 * 10 . Example 2. Integer array of length 10 (here, len=8) -1 -2 7 4 1 2 8 2 1 represents the real number -2 -1 * 0.7412821 * 10 . In other words, the first element (in C, this is element number 0) of the array represents the sign of the number (-1 means negative, 1 means positive), the second element is the decimal exponent, and the remaining len elements represent the decimal mantissa. You may assume that in all cases, len < 1001. The maximal permitted absolute value of the decimal exponent is 1000 000; if the result of any operation has the exponent whose absolute value exceeds 1000 000, an error code is returned (see below); in such cases, the function does not alter the contents of *c. The error code returned by each function is its own integer value. The possible values for the function dummul are 0 (successful conclusion) and 1 (overflow, the absolute value of the exponent is bigger than 1000 000). The function dumdiv has the same two possible returned values; in addition, at can return the value 2, meaning that the divider was equal to zero. There is also a bonus problem: write a function dumsqrt with the calling sequence int dumsqrt(int *a, int *b, int len), returning in array b the square root of the long number represented by the array a; its possible return error codes are 0 (everything was OK) and 2 (the number represented by a is negative). In the latter case, the contents of *b are not changed. Again, please note that the contents of *a should not be changed. This assignment is due on Wednesday, October 4.