package meerkat.crypto.utils;

/**
 * Created by Tzlil on 3/17/2016.
 * defines the properties of the traditional operations : add,sub,mul,div
 * between two objects of type T
 */
public interface Arithmetic<T> {
    /**
     * addition
     * @param a
     * @param b
     * @return a + b
     */
    T add(T a, T b);
    /**
     * subtraction
     * @param a
     * @param b
     * @return a - b
     */
    T sub(T a, T b);
    /**
     * multiplication
     * @param a
     * @param b
     * @return a * b
     */
    T mul(T a, T b);
    /**
     * division
     * @param a
     * @param b
     * @return a / b
     */
    T div(T a, T b);

}
