Ejemplo n.º 1
0
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;
		}
	}
}
Ejemplo n.º 2
0
/* 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 );
    }
}