Thunderbots Project
Loading...
Searching...
No Matches
polynomial1d.h
1#pragma once
2
3#include <cmath>
4#include <vector>
5
11{
12 public:
13 // A helper struct used to represent constraints
14 typedef struct
15 {
16 double input;
17 double output;
18 } Constraint;
19
23 explicit Polynomial1d();
24
31 explicit Polynomial1d(const std::vector<double> &coeffs);
32
39 explicit Polynomial1d(const std::initializer_list<double> &coeffs);
40
53 explicit Polynomial1d(const std::vector<Constraint> constraints);
54
61 double getCoeff(unsigned int order) const;
62
69 void setCoeff(unsigned int order, double coeff);
70
76 unsigned int getOrder() const;
77
85 double valueAt(double val) const;
86
87 private:
88 // the coefficients for the polynomial
89 // of the form coeffs[0] + coeffs[1]*x^(1)
90 // + ... + coeff[n-1]*x^(n-1)
91 std::vector<double> coeffs;
92};
93
102Polynomial1d operator+(const Polynomial1d &p1, const Polynomial1d &p2);
103
112Polynomial1d operator-(const Polynomial1d &p1, const Polynomial1d &p2);
113
122Polynomial1d operator*(const Polynomial1d &p1, const Polynomial1d &p2);
123
132Polynomial1d &operator+=(Polynomial1d &p1, const Polynomial1d &p2);
133
142Polynomial1d &operator-=(Polynomial1d &p1, const Polynomial1d &p2);
143
152Polynomial1d &operator*=(Polynomial1d &p1, const Polynomial1d &p2);
153
162bool operator==(const Polynomial1d &p1, const Polynomial1d &p2);
Definition polynomial1d.h:11
double valueAt(double val) const
Definition polynomial1d.cpp:100
unsigned int getOrder() const
Definition polynomial1d.cpp:84
Polynomial1d(const std::vector< Constraint > constraints)
double getCoeff(unsigned int order) const
Definition polynomial1d.cpp:63
Polynomial1d()
Definition polynomial1d.cpp:10
void setCoeff(unsigned int order, double coeff)
Definition polynomial1d.cpp:75
Definition polynomial1d.h:15