www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Mir Algorithm v1.1.3

reply 9il <ilyayaroshenko gmail.com> writes:
Mir Algorithm [1, 2]
=============

Dlang core library for math, finance and a home for Dlang 
multidimensional array package - ndslice.

New features:
  - most of routines in mir.ndslice.topology (e.g. map, zip, 
stride) accept common arrays
  - `Series` got the same formating as builtin associative arrays
  - `Series` got ~ overloaded operator for set union.
  - mir.series: `unionSeries` was added (for N=2 optimised using 
`troykaSeries`)
  - mir.series: `troykaGalop` and `troykaSeries` were added. They 
are awesome too iterate over set union when both side set 
differences and/or set intersection should be handled seprately 
[6, 7]
  - ... and a lot of others I forgot since v0.8.0 announce

Few bugs was fixed.

And a small tip about syntax sugar [3]:

/+dub.sdl:
dependency "mir-algorithm" version="~>1.1.3"
+/

import mir.ndslice;
void main()
{
     auto v = [1.0, 2];
     auto w = [1.0, 2];

      // `map` knows about `zip`
     auto lazySum1 = zip(v, w).map!((a, b) => a + b);

     //  it is elementwise sum too.
     auto lazySum2 = v.sliced + w.sliced;

     assert(lazySum1 == lazySum2);
}

Major part of this work has been sponsored by Symmetry 
Investments [4] and Kaleidic Associates [5].

Acknowledgements:
   Sebastian Wilzbach,
   Nathan Sashihara,
   John Hall,
   Shigeki Karita.

[1] https://github.com/libmir/mir-algorithm
[2] http://docs.algorithm.dlang.io/latest/index.html
[3] https://run.dlang.io/gist/e45d9892299131cee9c90541bbc00183
[4] http://symmetryinvestments.com
[5] https://github.com/kaleidicassociates
[6] 
http://docs.algorithm.dlang.io/latest/mir_series.html#.troykaGalop
[7] 
http://docs.algorithm.dlang.io/latest/mir_series.html#.troykaSeries

Best Regards,
Ilya Yaroshenko
Jul 01
next sibling parent reply jmh530 <john.michael.hall gmail.com> writes:
On Sunday, 1 July 2018 at 15:18:55 UTC, 9il wrote:
 Mir Algorithm [1, 2]
 =============

 Dlang core library for math, finance and a home for Dlang 
 multidimensional array package - ndslice.

 New features:
  - most of routines in mir.ndslice.topology (e.g. map, zip, 
 stride) accept common arrays
  - `Series` got the same formating as builtin associative arrays
  - `Series` got ~ overloaded operator for set union.
  - mir.series: `unionSeries` was added (for N=2 optimised using 
 `troykaSeries`)
  - mir.series: `troykaGalop` and `troykaSeries` were added. 
 They are awesome too iterate over set union when both side set 
 differences and/or set intersection should be handled seprately 
 [6, 7]
  - ... and a lot of others I forgot since v0.8.0 announce
 [snip]
Great. I'll need to look into some of these changes, particularly on Series. What are you plans for next steps with Mir?
Jul 02
parent reply 9il <ilyayaroshenko gmail.com> writes:
On Monday, 2 July 2018 at 13:51:17 UTC, jmh530 wrote:
 On Sunday, 1 July 2018 at 15:18:55 UTC, 9il wrote:
 Mir Algorithm [1, 2]
 =============

 Dlang core library for math, finance and a home for Dlang 
 multidimensional array package - ndslice.

 New features:
  - most of routines in mir.ndslice.topology (e.g. map, zip, 
 stride) accept common arrays
  - `Series` got the same formating as builtin associative 
 arrays
  - `Series` got ~ overloaded operator for set union.
  - mir.series: `unionSeries` was added (for N=2 optimised 
 using `troykaSeries`)
  - mir.series: `troykaGalop` and `troykaSeries` were added. 
 They are awesome too iterate over set union when both side set 
 differences and/or set intersection should be handled 
 seprately [6, 7]
  - ... and a lot of others I forgot since v0.8.0 announce
 [snip]
Great. I'll need to look into some of these changes, particularly on Series. What are you plans for next steps with Mir?
New Mir features are open source reflection of work on large proprietary codebase. We have awesome Levenberg–Marquardt algorithm implementation (ndim non-linear least squares solver) in mir.optim, but it is closed source. Maybe if people from the community ask Laeeth to allow to open source it he would like to do so. No idea why it is closed source for now. -- Ilya
Jul 03
parent jmh530 <john.michael.hall gmail.com> writes:
On Tuesday, 3 July 2018 at 12:47:58 UTC, 9il wrote:
 [snip]

 New Mir features are open source reflection of work on large 
 proprietary codebase. We have awesome Levenberg–Marquardt 
 algorithm implementation (ndim non-linear least squares solver) 
 in mir.optim, but it is closed source. Maybe if people from the 
 community ask Laeeth to allow to open source it he would like 
 to do so. No idea why it is closed source for now.

 -- Ilya
There are a lot of cases where non-linear least squares can be useful: options pricing, yield curve fitting, etc. I've been doing so much of my statistics with MC-Stan that I forget about how useful stuff like that can be. Bayesian techniques are always so much slower.
Jul 03
prev sibling parent Bauss <jj_1337 live.dk> writes:
On Sunday, 1 July 2018 at 15:18:55 UTC, 9il wrote:
 Mir Algorithm [1, 2]
 =============

 Dlang core library for math, finance and a home for Dlang 
 multidimensional array package - ndslice.

 New features:
  - most of routines in mir.ndslice.topology (e.g. map, zip, 
 stride) accept common arrays
  - `Series` got the same formating as builtin associative arrays
  - `Series` got ~ overloaded operator for set union.
  - mir.series: `unionSeries` was added (for N=2 optimised using 
 `troykaSeries`)
  - mir.series: `troykaGalop` and `troykaSeries` were added. 
 They are awesome too iterate over set union when both side set 
 differences and/or set intersection should be handled seprately 
 [6, 7]
  - ... and a lot of others I forgot since v0.8.0 announce

 Few bugs was fixed.

 And a small tip about syntax sugar [3]:

 /+dub.sdl:
 dependency "mir-algorithm" version="~>1.1.3"
 +/

 import mir.ndslice;
 void main()
 {
     auto v = [1.0, 2];
     auto w = [1.0, 2];

      // `map` knows about `zip`
     auto lazySum1 = zip(v, w).map!((a, b) => a + b);

     //  it is elementwise sum too.
     auto lazySum2 = v.sliced + w.sliced;

     assert(lazySum1 == lazySum2);
 }

 Major part of this work has been sponsored by Symmetry 
 Investments [4] and Kaleidic Associates [5].

 Acknowledgements:
   Sebastian Wilzbach,
   Nathan Sashihara,
   John Hall,
   Shigeki Karita.

 [1] https://github.com/libmir/mir-algorithm
 [2] http://docs.algorithm.dlang.io/latest/index.html
 [3] https://run.dlang.io/gist/e45d9892299131cee9c90541bbc00183
 [4] http://symmetryinvestments.com
 [5] https://github.com/kaleidicassociates
 [6] 
 http://docs.algorithm.dlang.io/latest/mir_series.html#.troykaGalop
 [7] 
 http://docs.algorithm.dlang.io/latest/mir_series.html#.troykaSeries

 Best Regards,
 Ilya Yaroshenko
Thank you for the great work!
Jul 02