void julia(double * u, double* v) { static int level = 0; if (level == MAX_LEVEL) { level = 0; *u = start_u; *v = start_v; return; } else { level++; julia(u, v); double u2 = *u; double v2 = *v; to_power(&u2, &v2, POLYNOM_POWER); u2 = u2 + C_REAL; v2 = v2 + C_IMG; if ((u2 == u2) && fabs(u2) != std::numeric_limits<double>::infinity( )) *u = u2; if ((v2 == v2) && fabs(v2) != std::numeric_limits<double>::infinity( )) *v = v2; if (u2 != u2) return; if (v2 != v2){ return; } } }
/* atof: convert string s to double */ double atof( char s[] ) { double val, power, exp; int i, sign, exp_sign; // Skip white space for (i = 0; isspace( s[ i ] ); i++) ; sign = (s[ i ] == '-') ? -1 : 1; if (s[ i ] == '+' || s[ i ] == '-') i++; for (val = 0.0; isdigit( s[ i ] ); i++) val = 10.0 * val + (s[ i ] - '0'); if (s[ i ] == '.') i++; for (power = 1.0; isdigit( s[ i ] ); i++) { val = 10.0 * val + (s[ i ] - '0'); power *= 10; } if (s[ i ] == 'e' || s[ i ] == 'E') { i++; } else { return sign * val / power; } exp_sign = (s[ i ] == '-') ? -1 : 1; if (s[ i ] == '+' || s[ i ] == '-') i++; for (exp = 0.0; isdigit( s[ i ] ); i++) exp = 10.0 * exp + (s[ i ] - '0'); if (exp_sign == 1) { return sign * val / power * to_power( 10, exp ); } else { return sign * val / power / to_power( 10, exp ); } }