34 if (m_knots.size() - functions.size() != 1) {
35 throw Elements::Exception() <<
"Invalid number of knots(" << m_knots.size() <<
")-functions(" << m_functions.size() <<
")";
38 m_functions.reserve(functions.size());
42 auto knotsIter = m_knots.begin();
43 while (++knotsIter != m_knots.end()) {
44 if (*knotsIter <= *(knotsIter - 1)) {
52 if (m_knots.size() - m_functions.size() != 1) {
53 throw Elements::Exception() <<
"Invalid number of knots(" << m_knots.size() <<
")-functions(" << m_functions.size() <<
")";
55 auto knotsIter = m_knots.begin();
56 while (++knotsIter != m_knots.end()) {
57 if (*knotsIter <= *(knotsIter - 1)) {
73 if (x < *knotsBegin) {
76 if (x == *knotsBegin) {
81 if (findX == knotsEnd) {
115 auto prevKnotIter = knotIter - 1;
116 if (max <= *prevKnotIter) {
119 if (min < *knotIter) {
120 double down = (min > *prevKnotIter) ? min : *prevKnotIter;
121 double up = (max < *knotIter) ? max : *knotIter;
126 return direction * result;