## Math_Test A library of commonly used mathematical functions. **Note:** Jack compilers implement multiplication and division using OS method calls. ### function void init() { Initializes the library. ### function int abs(int x) Returns the absolute value of x. ### function int multiply(int x, int y) Returns the product of x and y. When a Jack compiler detects the multiplication operator `"*"` in the program's code, it handles it by invoking this method. In other words, the Jack expressions x*y and multiply(x,y) return the same value. ### function int divide(int x, int y) Returns the integer part of x/y. When a Jack compiler detects the multiplication operator `"/"` in the program's code, it handles it by invoking this method. In other words, the Jack expressions x/y and divide(x,y) return the same value. ### function int sqrt(int x) Returns the integer part of the square root of x. ### function int max(int a, int b) Returns the greater number. ### function int min(int a, int b) Returns the smaller number. *** ## Project * Implement `Math.jack` * Test in simulation: ``` $ cd 00_Math_Test $ make $ cd ../00_HACK $ apio clean $ apio sim ``` * Compare the content of special function register DEBUG0--DEBUG4. ![](math.png)