+#ifndef __bbstdGetIntervalNumberFromIntervalList_h_INCLUDED__
+#define __bbstdGetIntervalNumberFromIntervalList_h_INCLUDED__
+#include "bbstd_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+
+namespace bbstd
+{
+
+class bbstd_EXPORT GetIntervalNumberFromIntervalList
+ :
+ public bbtk::AtomicBlackBox
+{
+ BBTK_BLACK_BOX_INTERFACE(GetIntervalNumberFromIntervalList,bbtk::AtomicBlackBox);
+
+ BBTK_DECLARE_INPUT(Value, double);
+ BBTK_DECLARE_INPUT(IntervalList, std::vector<double>);
+ BBTK_DECLARE_INPUT(ErrorValue, double);
+
+ BBTK_DECLARE_OUTPUT(IntervalNumber, int);
+
+ BBTK_PROCESS(Process);
+ void Process();
+};
+
+ BBTK_BEGIN_DESCRIBE_BLACK_BOX(GetIntervalNumberFromIntervalList,bbtk::AtomicBlackBox);
+ BBTK_NAME("GetIntervalNumberFromIntervalList");
+ BBTK_AUTHOR("Claire Mouton");
+ BBTK_DESCRIPTION("Providing a value and a list of intervals, the box returns the first interval number containing the input value. Interval numbers start at 0.");
+ BBTK_CATEGORY("");
+ BBTK_INPUT(GetIntervalNumberFromIntervalList,Value,"The value to be looked for in the interval list.",double,"");
+ BBTK_INPUT(GetIntervalNumberFromIntervalList,IntervalList,"Interval List provided as a list of double values corresponding to intervals. For example, '0 10 20 50' corresponds to the three following intervals 0/[0; 10[ 1/[10; 20[ 2/[20; 50[.",std::vector<double>,"");
+ BBTK_INPUT(GetIntervalNumberFromIntervalList,ErrorValue,"The output value returned if the value is not in any interval (default is -1).",double,"");
+ BBTK_OUTPUT(GetIntervalNumberFromIntervalList,IntervalNumber,"The (first) interval number containing the input value. If the value is not in any interval, the output is set to the ErrorValue (default is -1).",int,"");
+
+BBTK_END_DESCRIBE_BLACK_BOX(GetIntervalNumberFromIntervalList);
+}
+// EO namespace bbstd
+
+#endif // __bbstdGetIntervalNumberFromIntervalList_h_INCLUDED__
+