1 /++
2 
3 $(H1 GLAS (Generic Linear Algebra Subprograms))
4 
5 The GLAS are generic routines that provide standard building blocks for performing vector and matrix operations.
6 The Level 1 GLAS perform scalar, vector and vector-vector operations,
7 the Level 2 GLAS perform matrix-vector operations, and the Level 3 GLAS perform matrix-matrix operations.
8 
9 $(H2 Implemented Routines)
10 
11 The list of already implemented features.
12 
13 $(BOOKTABLE ,
14     $(TR
15         $(TH Modules)
16         $(TH Description)
17     )
18     $(TR
19         $(TDNW $(SUBMODULE l1))
20         $(TD vector operations 100% done, partially optimized for now)
21     )
22     $(TR
23         $(TDNW $(SUBMODULE l2))
24         $(TD matrix-vector operations %3 done, partially optimized for now)
25     )
26     $(TR
27         $(TDNW l3 was moved to $(HTTP github.com/libmir/mir-glas, mir-glas))
28         $(TD matrix-matrix operations 50% done)
29     )
30 )
31 
32 GLAS is generalization of $(LINK2 http://www.netlib.org/blas/, BLAS) (Basic Linear Algebra Subprograms)
33 Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of
34 high quality linear algebra or related software, such as
35 $(LINK2 http://www.netlib.org/lapack/, LAPACK),
36 $(LINK2 http://www.numpy.org/,  NumPy), or $(LINK2 http://julialang.org/, The Julia language).
37 
38 Efficient Level 3 BLAS implementation requires
39 $(LINK2 https://en.wikipedia.org/wiki/CPU_cache, cache)-friendly matrix blocking.
40 In additional, $(LINK2 https://en.wikipedia.org/wiki/SIMD, SIMD) instructions should be used for all levels on modern architectures.
41 
42 $(H2 Why GLAS)
43 
44 GLAS is ...
45 <ul>
46 <li>fast to execute.</li>
47 <li>fast to compile.</li>
48 <li>fast to extend using $(MREF_ALTTEXT ndslices, mir, ndslice).</li>
49 <li>fast to add new instruction set targets.</li>
50 </ul>
51 
52 $(H2 Optimization notes)
53 
54 GLAS requires recent $(LINK2 https://github.com/ldc-developers/ldc, LDC) >= 1.1.0-beta2.
55 
56 License:   $(HTTP boost.org/LICENSE_1_0.txt, Boost License 1.0).
57 Copyright: Copyright © 2016-, Ilya Yaroshenko
58 Authors:   Ilya Yaroshenko
59 
60 Macros:
61 SUBMODULE = $(MREF_ALTTEXT $1, mir, glas, $1)
62 SUBREF = $(REF_ALTTEXT $(TT $2), $2, mir, glas, $1)$(NBSP)
63 +/
64 module mir.glas;
65 
66 public import mir.glas.l1;
67 public import mir.glas.l2;