@@ -82,6 +82,33 @@ namespace qlibs {
8282 }
8383 };
8484
85+
86+ struct timeDelay {
87+ real_t value;
88+ constexpr explicit timeDelay (real_t v) : value(v) {}
89+ /* * @cond **/
90+ constexpr size_t operator ()(const real_t dt) const {
91+ return static_cast <size_t >((value / dt) + 0 .5f );
92+ }
93+ constexpr size_t operator [](const real_t dt) const {
94+ return static_cast <size_t >((value / dt) + 0 .5f );
95+ }
96+ /* * @endcond **/
97+ };
98+ /* * @cond **/
99+ constexpr timeDelay operator " " _td(long double v) {
100+ return timeDelay (static_cast <real_t >(v));
101+ }
102+
103+ constexpr size_t operator ,(const timeDelay td, const real_t dt) {
104+ return static_cast <size_t >( ( td.value /dt ) + 0 .5_re );
105+ }
106+
107+ constexpr size_t operator +(const timeDelay td, const real_t dt) {
108+ return static_cast <size_t >( ( td.value /dt ) + 0 .5_re );
109+ }
110+ /* * @endcond **/
111+
85112 /* *
86113 * @brief Computes the number of discrete delays required for a specified
87114 * amount of time using a defined time-step.
@@ -96,6 +123,20 @@ namespace qlibs {
96123 return static_cast <size_t >( ( Time/dt ) + 0 .5_re );
97124 }
98125
126+ /* *
127+ * @brief Computes the number of discrete delays required for a specified
128+ * amount of time using a defined time-step.
129+ * @see transportDelay
130+ * @param[in] Time The amount of time to delay
131+ * @param[in] dt The time step
132+ * @return The number of discrete delays required to delay @a Time seconds
133+ * using the time step @a dt
134+ */
135+ constexpr size_t delayFromTime ( const timeDelay Time, const real_t dt )
136+ {
137+ return static_cast <size_t >( ( Time.value /dt ) + 0 .5_re );
138+ }
139+
99140 /* *
100141 * @brief Delays the input by a specified amount of time. You can use this
101142 * class to simulate a time delay.
@@ -134,6 +175,10 @@ namespace qlibs {
134175 delay.insertSample ( xInput );
135176 return delay.getOldest ();
136177 }
178+
179+ constexpr size_t getNumberOfDelays () const noexcept {
180+ return numberOfDelays;
181+ }
137182 };
138183
139184 /* *
0 commit comments