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.spline
for cubic interpolation. Warning: multivariate cubic spline with derivatives is still experimental. - New module
mir.interpolate.constant
for constant interpolation. Warning: multivariate constant interpolant is still experimental.
API Changes since v0.6.21
- Added in
mir.math.common
function attributes@optmath
and@fmamath
. They only have effect when compiling with LDC but can be used with all compilers. (This now also applies to@fastmath
.)@optmath
is similar to@fastmath
but does not allow unsafe-fp-math. Does not force LDC to replace division with multiplication by reciprocal. - New
mir.utility.extMul
extended unsigned multiplication that makes available the high bits of the result - New
mir.functional.aliasCall
- New
mir.ndslice.algorithm.maxLength
returns max length across all dimensions. - New
mir.ndslice.slice.IteratorOf!(T : Slice)
extracts iterator type from a Slice - New
mir.ndslice.slice.ndassign
assignment utility template that works both with scalars and with ndslices. - In
mir.ndslice.slice.Slice
:iterator
is nowinout
;opUnary
now works with-
and+
;opIndexAssign
now returns refthis
instead ofvoid
. mir.ndslice.field.MagicField
supportslength
andshape
.
Removed Modules
mir.interpolation
,mir.interpolation.linear
,mir.interpolation.
Migrate to replacements.
Other Changes since v0.6.21
- Uses of
@fastmath
in the Mir codebase have been replaced by@optmath
, exceptingmir.math.sum
Summation.fast
. - In
mir.ndslice.topology
under-the-hood improvements inslide
,diff
,pairwise
- In
mir.ndslice.slice.Slice
opBinary
andopBinaryRight
now internally usemir.ndslice.topology.vmap
instead ofmir.ndslice.topology.indexed
.
Fixed since v0.7.0-alpha10
- Fix in
mir.ndslice.topology.map
for 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.flattened
backwards compatible with LDC 1.2.0 for those who haven't upgraded - Added workaround in
mir.ndslice.algorithm.reduce
for DMD inlining bug for non-Windows x86-64 (LDC unaffected) mir.primitives.shape
now takes its argument by reference