]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/s-gecola.ads
Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
[thirdparty/gcc.git] / gcc / ada / s-gecola.ads
CommitLineData
815f44d0
GB
1------------------------------------------------------------------------------
2-- --
3-- GNAT RUN-TIME COMPONENTS --
4-- --
15f6d6e7 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 --
815f44d0
GB
6-- --
7-- S p e c --
8-- --
748086b7 9-- Copyright (C) 2006-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
34with Ada.Numerics.Generic_Complex_Types;
35generic
36 type Real is digits <>;
37 type Real_Vector is array (Integer range <>) of Real;
38
39 with package Complex_Types is new Ada.Numerics.Generic_Complex_Types (Real);
40 use Complex_Types;
41
42 type Complex_Vector is array (Integer range <>) of Complex;
43 type Complex_Matrix is array (Integer range <>, Integer range <>)
44 of Complex;
45package System.Generic_Complex_LAPACK is
46 pragma Pure;
47
48 type Integer_Vector is array (Integer range <>) of Integer;
49
50 Upper : aliased constant Character := 'U';
51 Lower : aliased constant Character := 'L';
52
53 -- LAPACK Computational Routines
54
55 -- getrf computes LU factorization of a general m-by-n matrix
56
57 procedure getrf
58 (M : Natural;
59 N : Natural;
60 A : in out Complex_Matrix;
61 Ld_A : Positive;
62 I_Piv : out Integer_Vector;
63 Info : access Integer);
64
65 -- getri computes inverse of an LU-factored square matrix,
66 -- with multiple right-hand sides
67
68 procedure getri
69 (N : Natural;
70 A : in out Complex_Matrix;
71 Ld_A : Positive;
72 I_Piv : Integer_Vector;
73 Work : in out Complex_Vector;
74 L_Work : Integer;
75 Info : access Integer);
76
77 -- getrs solves a system of linear equations with an LU-factored
78 -- square matrix, with multiple right-hand sides
79
80 procedure getrs
81 (Trans : access constant Character;
82 N : Natural;
83 N_Rhs : Natural;
84 A : Complex_Matrix;
85 Ld_A : Positive;
86 I_Piv : Integer_Vector;
87 B : in out Complex_Matrix;
88 Ld_B : Positive;
89 Info : access Integer);
90
91 -- heevr computes selected eigenvalues and, optionally,
92 -- eigenvectors of a Hermitian matrix using the Relatively
93 -- Robust Representations
94
95 procedure heevr
96 (Job_Z : access constant Character;
97 Rng : access constant Character;
98 Uplo : access constant Character;
99 N : Natural;
100 A : in out Complex_Matrix;
101 Ld_A : Positive;
102 Vl, Vu : Real := 0.0;
103 Il, Iu : Integer := 1;
104 Abs_Tol : Real := 0.0;
105 M : out Integer;
106 W : out Real_Vector;
107 Z : out Complex_Matrix;
108 Ld_Z : Positive;
109 I_Supp_Z : out Integer_Vector;
110 Work : out Complex_Vector;
111 L_Work : Integer;
112 R_Work : out Real_Vector;
113 LR_Work : Integer;
114 I_Work : out Integer_Vector;
115 LI_Work : Integer;
116 Info : access Integer);
117
118 -- steqr computes all eigenvalues and eigenvectors of a symmetric or
119 -- Hermitian matrix reduced to tridiagonal form (QR algorithm)
120
121 procedure steqr
122 (Comp_Z : access constant Character;
123 N : Natural;
124 D : in out Real_Vector;
125 E : in out Real_Vector;
126 Z : in out Complex_Matrix;
127 Ld_Z : Positive;
128 Work : out Real_Vector;
129 Info : access Integer);
130
131end System.Generic_Complex_LAPACK;