]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/s-gerebl.ads
Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
[thirdparty/gcc.git] / gcc / ada / s-gerebl.ads
CommitLineData
815f44d0
GB
1------------------------------------------------------------------------------
2-- --
3-- GNAT RUN-TIME COMPONENTS --
4-- --
5-- SYSTEM.GENERIC_REAL_BLAS --
6-- --
7-- S p e c --
8-- --
748086b7 9-- Copyright (C) 2009, Free Software Foundation, Inc. --
815f44d0
GB
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- --
748086b7 13-- ware Foundation; either version 3, or (at your option) any later ver- --
815f44d0
GB
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 --
748086b7
JJ
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/>. --
815f44d0
GB
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------------------------------------------------------------------------------
31
32-- Package comment required ???
33
34generic
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;
38package System.Generic_Real_BLAS is
39 pragma Pure;
40
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.
45
46 No_Trans : aliased constant Character := 'N';
47 Trans : aliased constant Character := 'T';
48 Conj_Trans : aliased constant Character := 'C';
49
50 -- BLAS Level 1 Subprograms and Types
51
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;
58
59 function nrm2
60 (N : Natural;
61 X : Real_Vector;
62 Inc_X : Integer := 1) return Real;
63
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
76
77 -- BLAS Level 3
78
79 -- gemm s, d, c, z Matrix-matrix product of general matrices
80
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);
95
96end System.Generic_Real_BLAS;