v0.7.0
New Modules since v0.6.21
- Reworked interpolation API, now found in
mir.interpolate,mir.interpolate.linear,mir.interpolate.pchip. - New module
mir.interpolate.splinefor cubic interpolation. Warning: multivariate cubic spline with derivatives is still experimental. - New module
mir.interpolate.constantfor constant interpolation. Warning: multivariate constant interpolant is still experimental.
API Changes since v0.6.21
- Added in
mir.math.commonfunction attributes@optmathand@fmamath. They only have effect when compiling with LDC but can be used with all compilers. (This now also applies to@fastmath.)@optmathis similar to@fastmathbut does not allow unsafe-fp-math. Does not force LDC to replace division with multiplication by reciprocal. - New
mir.utility.extMulextended unsigned multiplication that makes available the high bits of the result - New
mir.functional.aliasCall - New
mir.ndslice.algorithm.maxLengthreturns max length across all dimensions. - New
mir.ndslice.slice.IteratorOf!(T : Slice)extracts iterator type from a Slice - New
mir.ndslice.slice.ndassignassignment utility template that works both with scalars and with ndslices. - In
mir.ndslice.slice.Slice:iteratoris nowinout;opUnarynow works with-and+;opIndexAssignnow returns refthisinstead ofvoid. mir.ndslice.field.MagicFieldsupportslengthandshape.
Removed Modules
mir.interpolation,mir.interpolation.linear,mir.interpolation.Migrate to replacements.
Other Changes since v0.6.21
- Uses of
@fastmathin the Mir codebase have been replaced by@optmath, exceptingmir.math.sumSummation.fast. - In
mir.ndslice.topologyunder-the-hood improvements inslide,diff,pairwise - In
mir.ndslice.slice.SliceopBinaryandopBinaryRightnow internally usemir.ndslice.topology.vmapinstead ofmir.ndslice.topology.indexed.
Fixed since v0.7.0-alpha10
- Fix in
mir.ndslice.topology.mapfor compilation failing in cases where chained map calls couldn't be coalesced due to capturing multiple contexts (seemingly a compiler bug in some cases) #111
Fixed since v0.6.21
- Made
mir.ndslice.topology.flattenedbackwards compatible with LDC 1.2.0 for those who haven't upgraded - Added workaround in
mir.ndslice.algorithm.reducefor DMD inlining bug for non-Windows x86-64 (LDC unaffected) mir.primitives.shapenow takes its argument by reference