Update concepts branch to revision 131834
[official-gcc.git] / gcc / ada / s-gecola.ads
blobe9f8d2ea30bd2ffd708ea8d7ce807a45dd351a63
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT RUN-TIME COMPONENTS --
4 -- --
5 -- S Y S T E M . G E N E R I C _ C O M P L E X _ L A P A C K --
6 -- --
7 -- S p e c --
8 -- --
9 -- Copyright (C) 2006-2007, 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 2, 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. See the GNU General Public License --
17 -- for more details. You should have received a copy of the GNU General --
18 -- Public License distributed with GNAT; see file COPYING. If not, write --
19 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
20 -- Boston, MA 02110-1301, USA. --
21 -- --
22 -- As a special exception, if other files instantiate generics from this --
23 -- unit, or you link this unit with other files to produce an executable, --
24 -- this unit does not by itself cause the resulting executable to be --
25 -- covered by the GNU General Public License. This exception does not --
26 -- however invalidate any other reasons why the executable file might be --
27 -- covered by the GNU Public License. --
28 -- --
29 -- GNAT was originally developed by the GNAT team at New York University. --
30 -- Extensive contributions were provided by Ada Core Technologies Inc. --
31 -- --
32 ------------------------------------------------------------------------------
34 -- Package comment required ???
36 with Ada.Numerics.Generic_Complex_Types;
37 generic
38 type Real is digits <>;
39 type Real_Vector is array (Integer range <>) of Real;
41 with package Complex_Types is new Ada.Numerics.Generic_Complex_Types (Real);
42 use Complex_Types;
44 type Complex_Vector is array (Integer range <>) of Complex;
45 type Complex_Matrix is array (Integer range <>, Integer range <>)
46 of Complex;
47 package System.Generic_Complex_LAPACK is
48 pragma Pure;
50 type Integer_Vector is array (Integer range <>) of Integer;
52 Upper : aliased constant Character := 'U';
53 Lower : aliased constant Character := 'L';
55 -- LAPACK Computational Routines
57 -- getrf computes LU factorization of a general m-by-n matrix
59 procedure getrf
60 (M : Natural;
61 N : Natural;
62 A : in out Complex_Matrix;
63 Ld_A : Positive;
64 I_Piv : out Integer_Vector;
65 Info : access Integer);
67 -- getri computes inverse of an LU-factored square matrix,
68 -- with multiple right-hand sides
70 procedure getri
71 (N : Natural;
72 A : in out Complex_Matrix;
73 Ld_A : Positive;
74 I_Piv : Integer_Vector;
75 Work : in out Complex_Vector;
76 L_Work : Integer;
77 Info : access Integer);
79 -- getrs solves a system of linear equations with an LU-factored
80 -- square matrix, with multiple right-hand sides
82 procedure getrs
83 (Trans : access constant Character;
84 N : Natural;
85 N_Rhs : Natural;
86 A : Complex_Matrix;
87 Ld_A : Positive;
88 I_Piv : Integer_Vector;
89 B : in out Complex_Matrix;
90 Ld_B : Positive;
91 Info : access Integer);
93 -- heevr computes selected eigenvalues and, optionally,
94 -- eigenvectors of a Hermitian matrix using the Relatively
95 -- Robust Representations
97 procedure heevr
98 (Job_Z : access constant Character;
99 Rng : access constant Character;
100 Uplo : access constant Character;
101 N : Natural;
102 A : in out Complex_Matrix;
103 Ld_A : Positive;
104 Vl, Vu : Real := 0.0;
105 Il, Iu : Integer := 1;
106 Abs_Tol : Real := 0.0;
107 M : out Integer;
108 W : out Real_Vector;
109 Z : out Complex_Matrix;
110 Ld_Z : Positive;
111 I_Supp_Z : out Integer_Vector;
112 Work : out Complex_Vector;
113 L_Work : Integer;
114 R_Work : out Real_Vector;
115 LR_Work : Integer;
116 I_Work : out Integer_Vector;
117 LI_Work : Integer;
118 Info : access Integer);
120 -- steqr computes all eigenvalues and eigenvectors of a symmetric or
121 -- Hermitian matrix reduced to tridiagonal form (QR algorithm)
123 procedure steqr
124 (Comp_Z : access constant Character;
125 N : Natural;
126 D : in out Real_Vector;
127 E : in out Real_Vector;
128 Z : in out Complex_Matrix;
129 Ld_Z : Positive;
130 Work : out Real_Vector;
131 Info : access Integer);
133 end System.Generic_Complex_LAPACK;