DIP80: phobos additions

via Digitalmars-d digitalmars-d at puremagic.com
Sun Jun 14 07:46:33 PDT 2015


On Sunday, 14 June 2015 at 14:25:11 UTC, Ilya Yaroshenko wrote:
> I am sorry for this trolling:
> Lisp is the best abstraction, thought.

Even it if was, it does not provide the meta info and alignment 
type constraints that makes it possible to hardware/SIMD optimize 
it behind the scenes.

> For example many programmers don't want to use Boost only 
> because it's abstractions makes them crazy.

Yes, C++ templates are a hard nut to crack, if D had added 
excellent pattern matching to its meta programming repertoire the 
I think this would be enough to put D in a different league.

Application programmers should not have to deal with lots of type 
parameters, they can use the simplified version (aliases). That's 
what I do in my C++ libs, using templated aliasing to make a 
complicated type composition easy to use while still getting the 
benefits generic pattern matching and generic programming.

>>> Convolutions, identiy matrices, invertible matrices are stuff
> For daily scientific purposes - yes.
> For R/Matlab like mathematical library - yes.
> For real world application - no. Engineer can achieve best 
> performance without special cases by lowering "abstraction" 
> down. Simplicity and transparency ("how it works") is more 
> important in this case.

Getting platform optimized versions of frequently used heavy 
operations is the primary reason for why I would use a builtin 
library over rolling my own. Especially if the compiler has 
builtin high-level optimizations for the algebra.

A naive basic matrix library is simple to write, I don't need 
standard library support for that + I get it to work the way I 
want by using SIMD registers directly... => I probably would not 
use it if I could implement it in less than 10 hours.


More information about the Digitalmars-d mailing list