-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPolynomial.java
More file actions
33 lines (29 loc) · 912 Bytes
/
Polynomial.java
File metadata and controls
33 lines (29 loc) · 912 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Polynomial{
double [] coefficients;
public Polynomial(){
coefficients = new double[0];
}
public Polynomial(double[] args){
coefficients = args;
}
public Polynomial add(Polynomial p){
int len = Math.max(p.coefficients.length, coefficients.length);
double[] arr = new double[len];
for (int i = 0; i < len; ++i){
if (p.coefficients.length > i) arr[i] += p.coefficients[i];
if (coefficients.length > i) arr[i] += coefficients[i];
}
Polynomial output = new Polynomial(arr);
return output;
}
public double evaluate(double x){
double result = 0;
for (int i = 0; i < coefficients.length; ++i){
result += coefficients[i] * Math.pow(x, i);
}
return result;
}
public boolean hasRoot(double x){
return evaluate(x) == 0;
}
}