fork(1) download
  1. #include <fstream>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. double polyeval(const double* polyarray, double x, int arraySize) {
  6. if(arraySize <= 0) { return 0; }
  7. double value = 0;
  8. const double * p = polyarray + (arraySize-1);
  9. for(int i=0; i<arraySize; ++i) {
  10. value *= x;
  11. value += *p;
  12. p--;
  13. }
  14. return value;
  15. }
  16.  
  17. int main () {
  18.  
  19. const int arraySize = 3;
  20.  
  21. const double polyarrayA[3] = {0.0,0.0,1.0}; // 0 x^2 + 0 x + 1
  22. const double polyarrayB[3] = {0.0,1.0,0.0}; // 0 x^2 + 1 x + 0
  23. const double polyarrayC[3] = {1.0,0.0,0.0}; // 1 x^2 + 0 x + 1
  24.  
  25. cout << "Polynomial Evaluation A f(x) = " << polyeval(polyarrayA, 0.5, arraySize)<<std::endl;
  26. cout << "Polynomial Evaluation B f(x) = " << polyeval(polyarrayB, 0.5, arraySize)<<std::endl;
  27. cout << "Polynomial Evaluation C f(x) = " << polyeval(polyarrayC, 0.5, arraySize)<<std::endl;
  28.  
  29.  
  30. }
  31.  
Success #stdin #stdout 0s 2896KB
stdin
Standard input is empty
stdout
Polynomial Evaluation A f(x) = 0.25
Polynomial Evaluation B f(x) = 0.5
Polynomial Evaluation C f(x) = 1