@Override
    public double calculateFractalWithoutPeriodicity(Complex pixel) {
        iterations = 0;

        Complex tempz = new Complex(pertur_val.getPixel(init_val.getPixel(pixel)));
        Complex tempz2 = new Complex(init_val2.getPixel(pixel));

        Complex[] complex = new Complex[3];
        complex[0] = tempz;//z
        complex[1] = new Complex(pixel);//c
        complex[2] = tempz2;//z2

        Complex zold = new Complex();

        if(parser.foundS()) {
            parser.setSvalue(new Complex(complex[0]));
        }

        if(parser2.foundS()) {
            parser2.setSvalue(new Complex(complex[0]));
        }

        if(parser.foundP()) {
            parser.setPvalue(new Complex());
        }

        if(parser2.foundP()) {
            parser2.setPvalue(new Complex());
        }

        for(; iterations < max_iterations; iterations++) {

            if(bailout_algorithm.escaped(complex[0], zold)) {
                Object[] object = {iterations, complex[0], zold};
                return out_color_algorithm.getResult(object);
            }
            zold.assign(complex[0]);
            function(complex);

            if(parser.foundP()) {
                parser.setPvalue(new Complex(zold));
            }

            if(parser2.foundP()) {
                parser2.setPvalue(new Complex(zold));
            }

        }

        Object[] object = {complex[0], zold};
        return in_color_algorithm.getResult(object);

    }