@@ -34,7 +34,7 @@ namespace alfi::dist {
3434 };
3535
3636 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
37- Container<Number> uniform (SizeT n, Number a, Number b) {
37+ Container<Number> uniform (SizeT n, const Number& a, const Number& b) {
3838 if (n == 1 )
3939 return {(a+b)/2 };
4040 Container<Number> points (n);
@@ -63,7 +63,7 @@ namespace alfi::dist {
6363 @return a container with \p n points distributed on the segment `[a, b]` according to the transform function
6464 */
6565 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
66- Container<Number> quadratic (SizeT n, Number a, Number b) {
66+ Container<Number> quadratic (SizeT n, const Number& a, const Number& b) {
6767 if (n == 1 )
6868 return {(a+b)/2 };
6969 Container<Number> points (n);
@@ -91,7 +91,7 @@ namespace alfi::dist {
9191 @return a container with \p n points distributed on the segment `[a, b]` according to the transform function
9292 */
9393 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
94- Container<Number> cubic (SizeT n, Number a, Number b) {
94+ Container<Number> cubic (SizeT n, const Number& a, const Number& b) {
9595 if (n == 1 )
9696 return {(a+b)/2 };
9797 Container<Number> points (n);
@@ -104,7 +104,7 @@ namespace alfi::dist {
104104 }
105105
106106 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
107- Container<Number> chebyshev (SizeT n, Number a, Number b) {
107+ Container<Number> chebyshev (SizeT n, const Number& a, const Number& b) {
108108 if (n == 1 )
109109 return {(a+b)/2 };
110110 Container<Number> points (n);
@@ -116,12 +116,12 @@ namespace alfi::dist {
116116 }
117117
118118 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
119- Container<Number> chebyshev_stretched (SizeT n, Number a, Number b) {
119+ Container<Number> chebyshev_stretched (SizeT n, const Number& a, const Number& b) {
120120 return points::stretched<Number,Container>(chebyshev (n, a, b), a, b);
121121 }
122122
123123 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
124- Container<Number> chebyshev_augmented (SizeT n, Number a, Number b) {
124+ Container<Number> chebyshev_augmented (SizeT n, const Number& a, const Number& b) {
125125 if (n == 0 ) {
126126 return {};
127127 }
@@ -137,7 +137,7 @@ namespace alfi::dist {
137137 }
138138
139139 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
140- Container<Number> chebyshev_2 (SizeT n, Number a, Number b) {
140+ Container<Number> chebyshev_2 (SizeT n, const Number& a, const Number& b) {
141141 if (n == 1 )
142142 return {(a+b)/2 };
143143 Container<Number> points (n);
@@ -149,7 +149,7 @@ namespace alfi::dist {
149149 }
150150
151151 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
152- Container<Number> chebyshev_3 (SizeT n, Number a, Number b) {
152+ Container<Number> chebyshev_3 (SizeT n, const Number& a, const Number& b) {
153153 Container<Number> points (n);
154154 for (SizeT i = 0 ; i < n; ++i) {
155155 const Number x = 1 - std::cos (M_PI * static_cast <Number>(2 *i) / static_cast <Number>(2 *n - 1 ));
@@ -159,12 +159,12 @@ namespace alfi::dist {
159159 }
160160
161161 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
162- Container<Number> chebyshev_3_stretched (SizeT n, Number a, Number b) {
162+ Container<Number> chebyshev_3_stretched (SizeT n, const Number& a, const Number& b) {
163163 return points::stretched<Number,Container>(chebyshev_3 (n, a, b), a, b);
164164 }
165165
166166 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
167- Container<Number> chebyshev_4 (SizeT n, Number a, Number b) {
167+ Container<Number> chebyshev_4 (SizeT n, const Number& a, const Number& b) {
168168 Container<Number> points (n);
169169 for (SizeT i = 0 ; i < n; ++i) {
170170 const Number x = 1 - std::cos (M_PI * static_cast <Number>(2 *i + 1 ) / static_cast <Number>(2 *n - 1 ));
@@ -174,12 +174,12 @@ namespace alfi::dist {
174174 }
175175
176176 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
177- Container<Number> chebyshev_4_stretched (SizeT n, Number a, Number b) {
177+ Container<Number> chebyshev_4_stretched (SizeT n, const Number& a, const Number& b) {
178178 return points::stretched<Number,Container>(chebyshev_4 (n, a, b), a, b);
179179 }
180180
181181 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
182- Container<Number> chebyshev_ellipse (SizeT n, Number a, Number b, Number ratio) {
182+ Container<Number> chebyshev_ellipse (SizeT n, const Number& a, const Number& b, const Number& ratio) {
183183 Container<Number> points (n);
184184 for (SizeT i = 0 ; i < n / 2 ; ++i) {
185185 const Number theta = M_PI * (2 * static_cast <Number>(i) + 1 ) / (2 * static_cast <Number>(n));
@@ -193,12 +193,12 @@ namespace alfi::dist {
193193 }
194194
195195 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
196- Container<Number> chebyshev_ellipse_stretched (SizeT n, Number a, Number b, Number ratio) {
196+ Container<Number> chebyshev_ellipse_stretched (SizeT n, const Number& a, const Number& b, const Number& ratio) {
197197 return points::stretched<Number,Container>(chebyshev_ellipse (n, a, b, ratio), a, b);
198198 }
199199
200200 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
201- Container<Number> chebyshev_ellipse_augmented (SizeT n, Number a, Number b, Number ratio) {
201+ Container<Number> chebyshev_ellipse_augmented (SizeT n, const Number& a, const Number& b, const Number& ratio) {
202202 if (n == 0 ) {
203203 return {};
204204 }
@@ -214,7 +214,7 @@ namespace alfi::dist {
214214 }
215215
216216 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
217- Container<Number> chebyshev_ellipse_2 (SizeT n, Number a, Number b, Number ratio) {
217+ Container<Number> chebyshev_ellipse_2 (SizeT n, const Number& a, const Number& b, const Number& ratio) {
218218 Container<Number> points (n);
219219 for (SizeT i = 0 ; i < n / 2 ; ++i) {
220220 const Number theta = M_PI * static_cast <Number>(i) / (static_cast <Number>(n) - 1 );
@@ -228,7 +228,7 @@ namespace alfi::dist {
228228 }
229229
230230 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
231- Container<Number> chebyshev_ellipse_3 (SizeT n, Number a, Number b, Number ratio) {
231+ Container<Number> chebyshev_ellipse_3 (SizeT n, const Number& a, const Number& b, const Number& ratio) {
232232 Container<Number> points (n);
233233 for (SizeT i = 0 ; i < n; ++i) {
234234 const Number theta = M_PI * static_cast <Number>(2 *i) / static_cast <Number>(2 *n - 1 );
@@ -239,12 +239,12 @@ namespace alfi::dist {
239239 }
240240
241241 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
242- Container<Number> chebyshev_ellipse_3_stretched (SizeT n, Number a, Number b, Number ratio) {
242+ Container<Number> chebyshev_ellipse_3_stretched (SizeT n, const Number& a, const Number& b, const Number& ratio) {
243243 return points::stretched<Number,Container>(chebyshev_ellipse_3 (n, a, b, ratio), a, b);
244244 }
245245
246246 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
247- Container<Number> chebyshev_ellipse_4 (SizeT n, Number a, Number b, Number ratio) {
247+ Container<Number> chebyshev_ellipse_4 (SizeT n, const Number& a, const Number& b, const Number& ratio) {
248248 Container<Number> points (n);
249249 for (SizeT i = 0 ; i < n; ++i) {
250250 const Number theta = M_PI * static_cast <Number>(2 *i + 1 ) / static_cast <Number>(2 *n - 1 );
@@ -255,7 +255,7 @@ namespace alfi::dist {
255255 }
256256
257257 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
258- Container<Number> chebyshev_ellipse_4_stretched (SizeT n, Number a, Number b, Number ratio) {
258+ Container<Number> chebyshev_ellipse_4_stretched (SizeT n, const Number& a, const Number& b, const Number& ratio) {
259259 return points::stretched<Number,Container>(chebyshev_ellipse_4 (n, a, b, ratio), a, b);
260260 }
261261
@@ -283,7 +283,7 @@ namespace alfi::dist {
283283 @return a container with \p n points distributed on the interval `(a, b)` according to the transform function
284284 */
285285 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
286- Container<Number> logistic (SizeT n, Number a, Number b, Number steepness) {
286+ Container<Number> logistic (SizeT n, const Number& a, const Number& b, const Number& steepness) {
287287 if (n == 1 )
288288 return {(a+b)/2 };
289289 Container<Number> points (n);
@@ -296,7 +296,7 @@ namespace alfi::dist {
296296 }
297297
298298 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
299- Container<Number> logistic_stretched (SizeT n, Number a, Number b, Number steepness) {
299+ Container<Number> logistic_stretched (SizeT n, const Number& a, const Number& b, const Number& steepness) {
300300 if (n == 0 )
301301 return {};
302302 if (n == 1 )
@@ -338,7 +338,7 @@ namespace alfi::dist {
338338 @return a container with \p n points distributed on the interval `(a, b)` according to the transform function
339339 */
340340 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
341- Container<Number> erf (SizeT n, Number a, Number b, Number steepness) {
341+ Container<Number> erf (SizeT n, const Number& a, const Number& b, const Number& steepness) {
342342 if (n == 0 )
343343 return {};
344344 if (n == 1 )
@@ -353,12 +353,12 @@ namespace alfi::dist {
353353 }
354354
355355 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
356- Container<Number> erf_stretched (SizeT n, Number a, Number b, Number steepness) {
356+ Container<Number> erf_stretched (SizeT n, const Number& a, const Number& b, const Number& steepness) {
357357 return points::stretched<Number,Container>(erf (n, a, b, steepness), a, b);
358358 }
359359
360360 template <typename Number = DefaultNumber, template <typename , typename ...> class Container = DefaultContainer>
361- Container<Number> of_type (Type type, SizeT n, Number a, Number b, Number parameter = NAN) {
361+ Container<Number> of_type (Type type, SizeT n, const Number& a, const Number& b, const Number& parameter = NAN) {
362362 switch (type) {
363363 case Type::QUADRATIC:
364364 return quadratic (n, a, b);
0 commit comments