C++ main module for mmsd Package  1.0
MATH_QuadraticPolynom.hpp
Go to the documentation of this file.
1 #ifndef MATH_QuadraticPolynom_HPP
2 #define MATH_QuadraticPolynom_HPP
3 
4 
5 template<class T>
6 void MATH_QuadraticPolynom::solve(const tReal& a,const tReal& b,const tReal& c,
7  int& n, T solutions[3]) {
8 
9  n=1;
10  if (a==0) {
11  if (b==0) {
12  if (c==0) {
13  n=1;
14  solutions[0]=0;
15  } else {
16  n=0;
17  }
18  } else {
19  n=1;
20  solutions[0]=-c/b;
21  }
22  return ;
23  }
24  double delta=b*b-4*a*c;
25  if (delta<0) {
26  n=0;
27  } else if (delta>0) {
28  delta=sqrt(delta);
29  n=2;
30  if (a>0) {
31  solutions[0]=(-b-delta)/(2*a);
32  solutions[1]=(-b+delta)/(2*a);
33  } else {
34  solutions[1]=(-b-delta)/(2*a);
35  solutions[0]=(-b+delta)/(2*a);
36  }
37  } else {
38  n=1;
39  solutions[0]=-b/(2*a);
40  }
41 }
42 
43 #endif
static void solve(const tReal &a, const tReal &b, const tReal &c, int &n, T solutions[2])
#define tReal
Definition: types.h:18