OSDN Git Service

* ChangeLog.vta: New.
[pf3gnuchains/gcc-fork.git] / gcc / ada / s-gecola.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT RUN-TIME COMPONENTS                         --
4 --                                                                          --
5 --                      SYSTEM.GENERIC_COMPLEX_LAPACK                       --
6 --                                                                          --
7 --                                 S p e c                                  --
8 --                                                                          --
9 --            Copyright (C) 2006, 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 ------------------------------------------------------------------------------
33
34 --  Package comment required ???
35
36 with Ada.Numerics.Generic_Complex_Types;
37 generic
38    type Real is digits <>;
39    type Real_Vector is array (Integer range <>) of Real;
40
41    with package Complex_Types is new Ada.Numerics.Generic_Complex_Types (Real);
42    use Complex_Types;
43
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;
49
50    type Integer_Vector is array (Integer range <>) of Integer;
51
52    Upper : aliased constant Character := 'U';
53    Lower : aliased constant Character := 'L';
54
55    --  LAPACK Computational Routines
56
57    --  getrf computes LU factorization of a general m-by-n matrix
58
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);
66
67    --  getri computes inverse of an LU-factored square matrix,
68    --  with multiple right-hand sides
69
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);
78
79    --  getrs solves a system of linear equations with an LU-factored
80    --  square matrix, with multiple right-hand sides
81
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);
92
93    --  heevr computes selected eigenvalues and, optionally,
94    --  eigenvectors of a Hermitian matrix using the Relatively
95    --  Robust Representations
96
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);
119
120    --  steqr computes all eigenvalues and eigenvectors of a symmetric or
121    --  Hermitian matrix reduced to tridiagonal form (QR algorithm)
122
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);
132
133 end System.Generic_Complex_LAPACK;