Esempio n. 1
0
int equation(double a, double b, double c, double *x1, double *x2)
{
	double d;
	
	if (a == 0 && b == 0 && c == 0) 
		return NO_ROOTS;
	if (a == 0 && b == 0)
		return NO_ROOTS;
	if (a == 0 && c == 0) {
		*x1 = *x2 = 0;
		return SAME_ROOT;
	}
	if (a == 0) {
		*x1 = *x2 = -c / b;
		return SAME_ROOT;
	}
	d = discr(a, b, c);
	if (d > 0) {
		*x1 = (-b - sqrt(d)) / (2 * a);
		*x2 = (-b + sqrt(d)) / (2 * a);
		return TWO_ROOTS;
	}
	if (d == 0) {
		*x1 = *x2 = -b / (2 * a);
		return SAME_ROOT;
	}
	return NO_ROOTS;
}
Esempio n. 2
0
double quadratic_root1(double a, double b, double c) {
    return (-b + sqrt(discr(a,b,c))/(2 * a));
}