DIP80: phobos additions
Ilya Yaroshenko via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jun 9 09:54:02 PDT 2015
On Tuesday, 9 June 2015 at 16:40:56 UTC, Ilya Yaroshenko wrote:
> On Tuesday, 9 June 2015 at 16:18:06 UTC, Manu wrote:
>> On 10 June 2015 at 01:26, Ilya Yaroshenko via Digitalmars-d
>> <digitalmars-d at puremagic.com> wrote:
>>>
>>>> I believe that Phobos must support some common methods of
>>>> linear algebra
>>>> and general mathematics. I have no desire to join D with
>>>> Fortran libraries
>>>> :)
>>>
>>>
>>> D definitely needs BLAS API support for matrix
>>> multiplication. Best BLAS
>>> libraries are written in assembler like openBLAS. Otherwise D
>>> will have last
>>> position in corresponding math benchmarks.
>>
>> A complication for linear algebra (or other mathsy things in
>> general)
>> is the inability to detect and implement compound operations.
>> We don't declare mathematical operators to be algebraic
>> operations,
>> which I think is a lost opportunity.
>> If we defined the properties along with their properties
>> (commutativity, transitivity, invertibility, etc), then the
>> compiler
>> could potentially do an algebraic simplification on
>> expressions before
>> performing codegen and optimisation.
>> There are a lot of situations where the optimiser can't
>> simplify
>> expressions because it runs into an arbitrary function call,
>> and I've
>> never seen an optimiser that understands exp/log/roots, etc,
>> to the
>> point where it can reduce those expressions properly. To
>> compete with
>> maths benchmarks, we need some means to simplify expressions
>> properly.
>
> Simplified expressions would help because
> 1. On matrix (hight) level optimisation can be done very well
> by programer (algorithms with matrixes in terms of count of
> matrix multiplications are small).
> 2. Low level optimisation requires specific CPU/Cache
> optimisation. Modern implementations are optimised for all
> cache levels. See work by KAZUSHIGE GOTO
> http://www.cs.utexas.edu/users/pingali/CS378/2008sp/papers/gotoPaper.pdf
EDIT: would NOT help
More information about the Digitalmars-d
mailing list