fixing pr42337
[official-gcc.git] / gcc / ada / s-gerebl.ads
blobdacbf7bdb132803652920d609234b7b7a886243f
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT RUN-TIME COMPONENTS --
4 -- --
5 -- SYSTEM.GENERIC_REAL_BLAS --
6 -- --
7 -- S p e c --
8 -- --
9 -- Copyright (C) 2009, Free Software Foundation, Inc. --
10 -- --
11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE. --
17 -- --
18 -- As a special exception under Section 7 of GPL version 3, you are granted --
19 -- additional permissions described in the GCC Runtime Library Exception, --
20 -- version 3.1, as published by the Free Software Foundation. --
21 -- --
22 -- You should have received a copy of the GNU General Public License and --
23 -- a copy of the GCC Runtime Library Exception along with this program; --
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
25 -- <http://www.gnu.org/licenses/>. --
26 -- --
27 -- GNAT was originally developed by the GNAT team at New York University. --
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
29 -- --
30 ------------------------------------------------------------------------------
32 -- Package comment required ???
34 generic
35 type Real is digits <>;
36 type Real_Vector is array (Integer range <>) of Real;
37 type Real_Matrix is array (Integer range <>, Integer range <>) of Real;
38 package System.Generic_Real_BLAS is
39 pragma Pure;
41 -- Although BLAS support is only available for IEEE single and double
42 -- compatible floating-point types, this unit will accept any type
43 -- and apply conversions as necessary, with possible loss of
44 -- precision and range.
46 No_Trans : aliased constant Character := 'N';
47 Trans : aliased constant Character := 'T';
48 Conj_Trans : aliased constant Character := 'C';
50 -- BLAS Level 1 Subprograms and Types
52 function dot
53 (N : Positive;
54 X : Real_Vector;
55 Inc_X : Integer := 1;
56 Y : Real_Vector;
57 Inc_Y : Integer := 1) return Real;
59 function nrm2
60 (N : Natural;
61 X : Real_Vector;
62 Inc_X : Integer := 1) return Real;
64 procedure gemv
65 (Trans : access constant Character;
66 M : Natural := 0;
67 N : Natural := 0;
68 Alpha : Real := 1.0;
69 A : Real_Matrix;
70 Ld_A : Positive;
71 X : Real_Vector;
72 Inc_X : Integer := 1; -- must be non-zero
73 Beta : Real := 0.0;
74 Y : in out Real_Vector;
75 Inc_Y : Integer := 1); -- must be non-zero
77 -- BLAS Level 3
79 -- gemm s, d, c, z Matrix-matrix product of general matrices
81 procedure gemm
82 (Trans_A : access constant Character;
83 Trans_B : access constant Character;
84 M : Positive;
85 N : Positive;
86 K : Positive;
87 Alpha : Real := 1.0;
88 A : Real_Matrix;
89 Ld_A : Integer;
90 B : Real_Matrix;
91 Ld_B : Integer;
92 Beta : Real := 0.0;
93 C : in out Real_Matrix;
94 Ld_C : Integer);
96 end System.Generic_Real_BLAS;