35 if (m_knots.size() - functions.size() != 1) {
37 <<
")-functions(" << m_functions.size() <<
")";
40 m_functions.reserve(functions.size());
44 auto knotsIter = m_knots.begin();
45 while (++knotsIter != m_knots.end()) {
46 if (*knotsIter <= *(knotsIter-1)) {
54 if (m_knots.size() - m_functions.size() != 1) {
56 <<
")-functions(" << m_functions.size() <<
")";
58 auto knotsIter = m_knots.begin();
59 while (++knotsIter != m_knots.end()) {
60 if (*knotsIter <= *(knotsIter-1)) {
76 if (x < *knotsBegin) {
79 if (x == *knotsBegin) {
84 if (findX == knotsEnd) {
118 auto prevKnotIter = knotIter - 1;
119 if (max <= *prevKnotIter) {
122 if (min < *knotIter) {
123 double down = (min > *prevKnotIter) ? min : *prevKnotIter;
124 double up = (max < *knotIter) ? max : *knotIter;
129 return direction * result;