@@ -27,7 +27,7 @@ import mir.ndslice.internal: ConstIfPointer;
2727/+ +
2828Constructs piecewise cubic hermite interpolating polynomial with nodes on rectilinear grid.
2929+/
30- template pchip (T, size_t N = 1 , FirstGridIterator = T * , NextGridIterators = Repeat! (N - 1 , FirstGridIterator))
30+ template pchip (T, size_t N = 1 , FirstGridIterator = immutable (T) * , NextGridIterators = Repeat! (N - 1 , FirstGridIterator))
3131 if (isFloatingPoint! T && is (T == Unqual! T) && N <= 6 )
3232{
3333 static assert (N == 1 , " multivariate PCHIP is not implemented." );
@@ -65,8 +65,8 @@ version(mir_test)
6565 import mir.ndslice.slice: sliced;
6666 import mir.ndslice.topology: vmap;
6767
68- auto x = [1.0 , 2 , 4 , 5 , 8 , 10 , 12 , 15 , 19 , 22 ].sliced;
69- auto y = [17.0 , 0 , 16 , 4 , 10 , 15 , 19 , 5 , 18 , 6 ].sliced;
68+ auto x = [1.0 , 2 , 4 , 5 , 8 , 10 , 12 , 15 , 19 , 22 ].idup. sliced;
69+ auto y = [17.0 , 0 , 16 , 4 , 10 , 15 , 19 , 5 , 18 , 6 ].idup. sliced;
7070 auto interpolant = pchip! double (x, y);
7171
7272 auto xs = x[0 .. $ - 1 ] + 0.5 ;
@@ -95,8 +95,8 @@ version(mir_test)
9595 import mir.ndslice.allocation: slice;
9696 import mir.ndslice.topology: retro, map;
9797
98- auto points = [1.0 , 2 , 4 , 5 , 8 , 10 , 12 , 15 , 19 , 22 ].sliced;
99- auto values = [17.0 , 0 , 16 , 4 , 10 , 15 , 19 , 5 , 18 , 6 ].sliced;
98+ auto points = [1.0 , 2 , 4 , 5 , 8 , 10 , 12 , 15 , 19 , 22 ].idup. sliced;
99+ auto values = [17.0 , 0 , 16 , 4 , 10 , 15 , 19 , 5 , 18 , 6 ].idup. sliced;
100100
101101 auto results = [
102102 5.333333333333334 ,
0 commit comments