43 #ifndef SCI_LINEARPWI_H__
44 #define SCI_LINEARPWI_H__
75 res=p[interv].a+p[interv].b*w;
105 if (this->data_valid && (i = this->get_interval(w)) >= 0) {
106 res = T(X[i].a + X[i].b * w, Y[i].a+Y[i].b * w, Z[i].a + Z[i].b * w);
118 if (this->fill_data(pts) && (sz = this->points.size()) > 1) {
123 double lb, rb, delta;
125 for (
int i=0; i<this->points.size()-1; i++){
126 lb = this->points[i];
127 rb = this->points[i+1];
129 X[i].a = (vals[i].x() * rb-vals[i+1].x() * lb) / delta;
130 X[i].b = (vals[i+1].x() - vals[i].x()) / delta;
131 Y[i].a = (vals[i].y() * rb-vals[i+1].y() * lb) / delta;
132 Y[i].b = (vals[i+1].y() - vals[i].y()) / delta;
133 Z[i].a = (vals[i].z() * rb-vals[i+1].z() * lb) / delta;
134 Z[i].b = (vals[i+1].z() - vals[i].z()) / delta;
136 return this->data_valid =
true;
140 return this->data_valid =
false;
146 #endif //SCI_LINEARPWI_H__
bool get_value(double, T &)
Definition: LinearPWI.h:102
Interface to dynamic 1D array class.
Definition: LinearPWI.h:60
double b
Definition: LinearPWI.h:56
bool set_data(const Array1< double > &, const Array1< T > &)
Definition: LinearPWI.h:114
Definition: PiecewiseInterp.h:60
bool get_value(double, double &)
Definition: LinearPWI.h:72
Linear3DPWI()
Definition: LinearPWI.h:84
Definition: LinearPWI.h:54
LinearPWI()
Definition: LinearPWI.cc:46
bool set_data(const Array1< double > &, const Array1< double > &)
Definition: LinearPWI.cc:56
bool data_valid
Definition: PiecewiseInterp.h:62
double a
Definition: LinearPWI.h:55
Definition: LinearPWI.h:82