@@ -0,0 +1,1209 @@
+package com.oozinoz.function;%0A%0Apublic class Arithmetic extends Function %0A%7B%0A%09protected char operator;%0A/**%0A * Construct an arithmetic function that decorates the %0A * provided source functions.%0A *%0A * @param char the operator to apply (+ - * /)%0A *%0A * @param Function the first source function that this%0A *                 function wraps%0A *%0A * @param Function the second source function %0A */%0Apublic Arithmetic(%0A%09char operator,%0A%09Function f1,%0A%09Function f2)%0A%7B%0A%09super(new Function%5B%5D %7B f1, f2 %7D);%0A%09this.operator = operator;%0A%7D%0A/**%0A * Return the result of applying this objects' arithmetic %0A * operator (+ - * /) to the source functions' values%0A * at time t.%0A *%0A * @param t the time function that goes 0 to 1 and that%0A *          other functions use as a parameter%0A *%0A * @return the result of applying this objects' arithmetic %0A *         operator (+ - * /) to the source functions' values%0A *         at time t%0A */%0Apublic double f(double t)%0A%7B%0A%09switch (operator)%0A%09%7B%0A%09%09case '+' :%0A%09%09%09return source%5B0%5D.f(t) + source%5B1%5D.f(t);%0A%09%09case '-' :%0A%09%09%09return source%5B0%5D.f(t) - source%5B1%5D.f(t);%0A%09%09case '*' :%0A%09%09%09return source%5B0%5D.f(t) * source%5B1%5D.f(t);%0A%09%09case '/' :%0A%09%09%09return source%5B0%5D.f(t) / source%5B1%5D.f(t);%0A%09%09default :%0A%09%09%09return 0;%0A%09%7D%0A%7D%0A%7D%0A

Create Arithmetic.java