54 memset(coefficients,0,
sizeof(
double)*(Degree+1));
55 for(
int i=0;i<=Degree && i<=Degree2;i++){coefficients[i]=P.
coefficients[i];}
62 int d=Degree<Degree2?Degree:Degree2;
63 memset(coefficients,0,
sizeof(
double)*(Degree+1));
64 memcpy(coefficients,p.
coefficients,
sizeof(
double)*(d+1));
71 for(
int i=0;i<Degree;i++){p.
coefficients[i]=coefficients[i+1]*(i+1);}
79 for(
int i=0;i<=Degree;i++){p.
coefficients[i+1]=coefficients[i]/(i+1);}
87 double v=coefficients[Degree];
88 for(
int d=Degree-1 ; d>=0 ; d-- ) v = v*t + coefficients[d];
98 for(
int i=0;i<=Degree;i++){
99 v+=coefficients[i]*(t2-t1)/(i+1);
100 if(t1!=-DBL_MAX && t1!=DBL_MAX){t1*=tMin;}
101 if(t2!=-DBL_MAX && t2!=DBL_MAX){t2*=tMax;}
107 for(
int i=0;i<=Degree;i++){
if(coefficients[i]!=p.
coefficients[i]){
return 0;}}
112 for(
int i=0;i<=Degree;i++){
if(coefficients[i]==p.
coefficients[i]){
return 0;}}
117 for(
int i=0;i<=Degree;i++){
if(coefficients[i]!=0){
return 0;}}
125 for(
int i=0;i<=Degree;i++){coefficients[i]+=p.
coefficients[i]*s;}
130 for(
int i=0;i<=Degree;i++){coefficients[i]+=p.
coefficients[i];}
135 for(
int i=0;i<=Degree;i++){coefficients[i]-=p.
coefficients[i];}
184 template<
int Degree2>
206 for(
int i=0;i<=Degree;i++){coefficients[i]*=s;}
212 for(
int i=0;i<=Degree;i++){coefficients[i]/=s;}
233 for(
int i=0;i<=Degree;i++){q.
coefficients[i]=coefficients[i]*s;}
240 for(
int i=0 ; i<=Degree ; i++ ) q.
coefficients[i] = coefficients[i]/s;
248 for(
int i=0;i<=Degree;i++){
258 for(
int i=0;i<=Degree;i++){
260 for(
int j=i;j>=0;j--){
270 for(
int j=0;j<=Degree;j++){
271 printf(
"%6.4f x^%d ",coefficients[j],j);
272 if(j<Degree && coefficients[j+1]>=0){printf(
"+");}
284 rCount=
Factor(coefficients[1],coefficients[0]-c,r,EPS);
287 rCount=
Factor(coefficients[2],coefficients[1],coefficients[0]-c,r,EPS);
290 rCount=
Factor(coefficients[3],coefficients[2],coefficients[1],coefficients[0]-c,r,EPS);
296 printf(
"Can't solve polynomial of degree: %d\n",Degree);
298 for(
int i=0;i<rCount;i++){
299 if(fabs(r[i][1])<=EPS){
300 roots.push_back(r[i][0]);
311 template<
int Degree >
inline