| 60 | } |
| 61 | |
| 62 | std::vector<double> Polynomials::AllBernstein(int degree, double paramT) |
| 63 | { |
| 64 | VALIDATE_ARGUMENT(degree >= 0, "degree", "Degree must be greater than zero or equal to zero."); |
| 65 | VALIDATE_ARGUMENT_RANGE(paramT, 0.0, 1.0); |
| 66 | |
| 67 | std::vector<double> bernsteinArray(degree + 1, 0.0); |
| 68 | bernsteinArray[0] = 1.0; |
| 69 | if (degree == 0) { |
| 70 | |
| 71 | return bernsteinArray; |
| 72 | } |
| 73 | |
| 74 | double t1 = 1.0 - paramT; |
| 75 | for (int j = 1; j <= degree; j++) |
| 76 | { |
| 77 | double saved = 0.0; |
| 78 | for (int k = 0; k < j; k++) |
| 79 | { |
| 80 | double temp = bernsteinArray[k]; |
| 81 | bernsteinArray[k] = saved + t1 * temp; |
| 82 | saved = paramT * temp; |
| 83 | } |
| 84 | bernsteinArray[j] = saved; |
| 85 | } |
| 86 | return bernsteinArray; |
| 87 | } |
| 88 | |
| 89 | double Polynomials::Horner(int degreeU, int degreeV, const std::vector<std::vector<double>>& coefficients, UV& uv) |
| 90 | { |
nothing calls this directly
no outgoing calls
no test coverage detected