public void generateTable(int precision){
        sin = new double[precision];
        cos = new double[precision];
        tan = new double[precision];

        for(int i = 0; i < precision; i++){
            double theta = (((double)i) / ((double)precision)) * tau;

            sin[i] = Math.sin(theta);
            cos[i] = Math.cos(theta);
            tan[i] = Math.tan(theta);
        }

        alpha = new double[256];
        for(int i = 0; i < 256; i++){
            alpha[i] = (((double)i) / 255);
        }
    }