aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/ada/s-gearop.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/gcc/ada/s-gearop.ads')
-rw-r--r--gcc-4.8/gcc/ada/s-gearop.ads500
1 files changed, 0 insertions, 500 deletions
diff --git a/gcc-4.8/gcc/ada/s-gearop.ads b/gcc-4.8/gcc/ada/s-gearop.ads
deleted file mode 100644
index f401da219..000000000
--- a/gcc-4.8/gcc/ada/s-gearop.ads
+++ /dev/null
@@ -1,500 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT RUN-TIME COMPONENTS --
--- --
--- S Y S T E M . G E N E R I C _ A R R A Y _ O P E R A T I O N S --
--- --
--- S p e c --
--- --
--- Copyright (C) 2006-2011, Free Software Foundation, Inc. --
--- --
--- GNAT is free software; you can redistribute it and/or modify it under --
--- terms of the GNU General Public License as published by the Free Soft- --
--- ware Foundation; either version 3, or (at your option) any later ver- --
--- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
--- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
--- or FITNESS FOR A PARTICULAR PURPOSE. --
--- --
--- As a special exception under Section 7 of GPL version 3, you are granted --
--- additional permissions described in the GCC Runtime Library Exception, --
--- version 3.1, as published by the Free Software Foundation. --
--- --
--- You should have received a copy of the GNU General Public License and --
--- a copy of the GCC Runtime Library Exception along with this program; --
--- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
--- <http://www.gnu.org/licenses/>. --
--- --
--- GNAT was originally developed by the GNAT team at New York University. --
--- Extensive contributions were provided by Ada Core Technologies Inc. --
--- --
-------------------------------------------------------------------------------
-
-package System.Generic_Array_Operations is
-pragma Pure (Generic_Array_Operations);
-
- ---------------------
- -- Back_Substitute --
- ---------------------
-
- generic
- type Scalar is private;
- type Matrix is array (Integer range <>, Integer range <>) of Scalar;
- with function "-" (Left, Right : Scalar) return Scalar is <>;
- with function "*" (Left, Right : Scalar) return Scalar is <>;
- with function "/" (Left, Right : Scalar) return Scalar is <>;
- with function Is_Non_Zero (X : Scalar) return Boolean is <>;
- procedure Back_Substitute (M, N : in out Matrix);
-
- --------------
- -- Diagonal --
- --------------
-
- generic
- type Scalar is private;
- type Vector is array (Integer range <>) of Scalar;
- type Matrix is array (Integer range <>, Integer range <>) of Scalar;
- function Diagonal (A : Matrix) return Vector;
-
- -----------------------
- -- Forward_Eliminate --
- -----------------------
-
- -- Use elementary row operations to put square matrix M in row echolon
- -- form. Identical row operations are performed on matrix N, must have the
- -- same number of rows as M.
-
- generic
- type Scalar is private;
- type Real is digits <>;
- type Matrix is array (Integer range <>, Integer range <>) of Scalar;
- with function "abs" (Right : Scalar) return Real'Base is <>;
- with function "-" (Left, Right : Scalar) return Scalar is <>;
- with function "*" (Left, Right : Scalar) return Scalar is <>;
- with function "/" (Left, Right : Scalar) return Scalar is <>;
- Zero : Scalar;
- One : Scalar;
- procedure Forward_Eliminate
- (M : in out Matrix;
- N : in out Matrix;
- Det : out Scalar);
-
- --------------------------
- -- Square_Matrix_Length --
- --------------------------
-
- generic
- type Scalar is private;
- type Matrix is array (Integer range <>, Integer range <>) of Scalar;
- function Square_Matrix_Length (A : Matrix) return Natural;
- -- If A is non-square, raise Constraint_Error, else return its dimension
-
- ----------------------------------
- -- Vector_Elementwise_Operation --
- ----------------------------------
-
- generic
- type X_Scalar is private;
- type Result_Scalar is private;
- type X_Vector is array (Integer range <>) of X_Scalar;
- type Result_Vector is array (Integer range <>) of Result_Scalar;
- with function Operation (X : X_Scalar) return Result_Scalar;
- function Vector_Elementwise_Operation (X : X_Vector) return Result_Vector;
-
- ----------------------------------
- -- Matrix_Elementwise_Operation --
- ----------------------------------
-
- generic
- type X_Scalar is private;
- type Result_Scalar is private;
- type X_Matrix is array (Integer range <>, Integer range <>) of X_Scalar;
- type Result_Matrix is array (Integer range <>, Integer range <>)
- of Result_Scalar;
- with function Operation (X : X_Scalar) return Result_Scalar;
- function Matrix_Elementwise_Operation (X : X_Matrix) return Result_Matrix;
-
- -----------------------------------------
- -- Vector_Vector_Elementwise_Operation --
- -----------------------------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Left_Vector is array (Integer range <>) of Left_Scalar;
- type Right_Vector is array (Integer range <>) of Right_Scalar;
- type Result_Vector is array (Integer range <>) of Result_Scalar;
- with function Operation
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar;
- function Vector_Vector_Elementwise_Operation
- (Left : Left_Vector;
- Right : Right_Vector) return Result_Vector;
-
- ------------------------------------------------
- -- Vector_Vector_Scalar_Elementwise_Operation --
- ------------------------------------------------
-
- generic
- type X_Scalar is private;
- type Y_Scalar is private;
- type Z_Scalar is private;
- type Result_Scalar is private;
- type X_Vector is array (Integer range <>) of X_Scalar;
- type Y_Vector is array (Integer range <>) of Y_Scalar;
- type Result_Vector is array (Integer range <>) of Result_Scalar;
- with function Operation
- (X : X_Scalar;
- Y : Y_Scalar;
- Z : Z_Scalar) return Result_Scalar;
- function Vector_Vector_Scalar_Elementwise_Operation
- (X : X_Vector;
- Y : Y_Vector;
- Z : Z_Scalar) return Result_Vector;
-
- -----------------------------------------
- -- Matrix_Matrix_Elementwise_Operation --
- -----------------------------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Left_Matrix is array (Integer range <>, Integer range <>)
- of Left_Scalar;
- type Right_Matrix is array (Integer range <>, Integer range <>)
- of Right_Scalar;
- type Result_Matrix is array (Integer range <>, Integer range <>)
- of Result_Scalar;
- with function Operation
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar;
- function Matrix_Matrix_Elementwise_Operation
- (Left : Left_Matrix;
- Right : Right_Matrix) return Result_Matrix;
-
- ------------------------------------------------
- -- Matrix_Matrix_Scalar_Elementwise_Operation --
- ------------------------------------------------
-
- generic
- type X_Scalar is private;
- type Y_Scalar is private;
- type Z_Scalar is private;
- type Result_Scalar is private;
- type X_Matrix is array (Integer range <>, Integer range <>) of X_Scalar;
- type Y_Matrix is array (Integer range <>, Integer range <>) of Y_Scalar;
- type Result_Matrix is array (Integer range <>, Integer range <>)
- of Result_Scalar;
- with function Operation
- (X : X_Scalar;
- Y : Y_Scalar;
- Z : Z_Scalar) return Result_Scalar;
- function Matrix_Matrix_Scalar_Elementwise_Operation
- (X : X_Matrix;
- Y : Y_Matrix;
- Z : Z_Scalar) return Result_Matrix;
-
- -----------------------------------------
- -- Vector_Scalar_Elementwise_Operation --
- -----------------------------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Left_Vector is array (Integer range <>) of Left_Scalar;
- type Result_Vector is array (Integer range <>) of Result_Scalar;
- with function Operation
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar;
- function Vector_Scalar_Elementwise_Operation
- (Left : Left_Vector;
- Right : Right_Scalar) return Result_Vector;
-
- -----------------------------------------
- -- Matrix_Scalar_Elementwise_Operation --
- -----------------------------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Left_Matrix is array (Integer range <>, Integer range <>)
- of Left_Scalar;
- type Result_Matrix is array (Integer range <>, Integer range <>)
- of Result_Scalar;
- with function Operation
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar;
- function Matrix_Scalar_Elementwise_Operation
- (Left : Left_Matrix;
- Right : Right_Scalar) return Result_Matrix;
-
- -----------------------------------------
- -- Scalar_Vector_Elementwise_Operation --
- -----------------------------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Right_Vector is array (Integer range <>) of Right_Scalar;
- type Result_Vector is array (Integer range <>) of Result_Scalar;
- with function Operation
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar;
- function Scalar_Vector_Elementwise_Operation
- (Left : Left_Scalar;
- Right : Right_Vector) return Result_Vector;
-
- -----------------------------------------
- -- Scalar_Matrix_Elementwise_Operation --
- -----------------------------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Right_Matrix is array (Integer range <>, Integer range <>)
- of Right_Scalar;
- type Result_Matrix is array (Integer range <>, Integer range <>)
- of Result_Scalar;
- with function Operation
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar;
- function Scalar_Matrix_Elementwise_Operation
- (Left : Left_Scalar;
- Right : Right_Matrix) return Result_Matrix;
-
- -------------------
- -- Inner_Product --
- -------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Left_Vector is array (Integer range <>) of Left_Scalar;
- type Right_Vector is array (Integer range <>) of Right_Scalar;
- Zero : Result_Scalar;
- with function "*"
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar is <>;
- with function "+"
- (Left : Result_Scalar;
- Right : Result_Scalar) return Result_Scalar is <>;
- function Inner_Product
- (Left : Left_Vector;
- Right : Right_Vector) return Result_Scalar;
-
- -------------
- -- L2_Norm --
- -------------
-
- generic
- type X_Scalar is private;
- type Result_Real is digits <>;
- type X_Vector is array (Integer range <>) of X_Scalar;
- with function "abs" (Right : X_Scalar) return Result_Real is <>;
- with function Sqrt (X : Result_Real'Base) return Result_Real'Base is <>;
- function L2_Norm (X : X_Vector) return Result_Real'Base;
-
- -------------------
- -- Outer_Product --
- -------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Left_Vector is array (Integer range <>) of Left_Scalar;
- type Right_Vector is array (Integer range <>) of Right_Scalar;
- type Matrix is array (Integer range <>, Integer range <>)
- of Result_Scalar;
- with function "*"
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar is <>;
- function Outer_Product
- (Left : Left_Vector;
- Right : Right_Vector) return Matrix;
-
- ---------------------------
- -- Matrix_Vector_Product --
- ---------------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Matrix is array (Integer range <>, Integer range <>)
- of Left_Scalar;
- type Right_Vector is array (Integer range <>) of Right_Scalar;
- type Result_Vector is array (Integer range <>) of Result_Scalar;
- Zero : Result_Scalar;
- with function "*"
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar is <>;
- with function "+"
- (Left : Result_Scalar;
- Right : Result_Scalar) return Result_Scalar is <>;
- function Matrix_Vector_Product
- (Left : Matrix;
- Right : Right_Vector) return Result_Vector;
-
- ---------------------------
- -- Vector_Matrix_Product --
- ---------------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Left_Vector is array (Integer range <>) of Left_Scalar;
- type Matrix is array (Integer range <>, Integer range <>)
- of Right_Scalar;
- type Result_Vector is array (Integer range <>) of Result_Scalar;
- Zero : Result_Scalar;
- with function "*"
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar is <>;
- with function "+"
- (Left : Result_Scalar;
- Right : Result_Scalar) return Result_Scalar is <>;
- function Vector_Matrix_Product
- (Left : Left_Vector;
- Right : Matrix) return Result_Vector;
-
- ---------------------------
- -- Matrix_Matrix_Product --
- ---------------------------
-
- generic
- type Left_Scalar is private;
- type Right_Scalar is private;
- type Result_Scalar is private;
- type Left_Matrix is array (Integer range <>, Integer range <>)
- of Left_Scalar;
- type Right_Matrix is array (Integer range <>, Integer range <>)
- of Right_Scalar;
- type Result_Matrix is array (Integer range <>, Integer range <>)
- of Result_Scalar;
- Zero : Result_Scalar;
- with function "*"
- (Left : Left_Scalar;
- Right : Right_Scalar) return Result_Scalar is <>;
- with function "+"
- (Left : Result_Scalar;
- Right : Result_Scalar) return Result_Scalar is <>;
- function Matrix_Matrix_Product
- (Left : Left_Matrix;
- Right : Right_Matrix) return Result_Matrix;
-
- ----------------------------
- -- Matrix_Vector_Solution --
- ----------------------------
-
- generic
- type Scalar is private;
- type Vector is array (Integer range <>) of Scalar;
- type Matrix is array (Integer range <>, Integer range <>) of Scalar;
- with procedure Back_Substitute (M, N : in out Matrix) is <>;
- with procedure Forward_Eliminate
- (M : in out Matrix;
- N : in out Matrix;
- Det : out Scalar) is <>;
- function Matrix_Vector_Solution (A : Matrix; X : Vector) return Vector;
-
- ----------------------------
- -- Matrix_Matrix_Solution --
- ----------------------------
-
- generic
- type Scalar is private;
- type Matrix is array (Integer range <>, Integer range <>) of Scalar;
- with procedure Back_Substitute (M, N : in out Matrix) is <>;
- with procedure Forward_Eliminate
- (M : in out Matrix;
- N : in out Matrix;
- Det : out Scalar) is <>;
- function Matrix_Matrix_Solution (A : Matrix; X : Matrix) return Matrix;
-
- ----------
- -- Sqrt --
- ----------
-
- generic
- type Real is digits <>;
- function Sqrt (X : Real'Base) return Real'Base;
-
- -----------------
- -- Swap_Column --
- -----------------
-
- generic
- type Scalar is private;
- type Matrix is array (Integer range <>, Integer range <>) of Scalar;
- procedure Swap_Column (A : in out Matrix; Left, Right : Integer);
-
- ---------------
- -- Transpose --
- ---------------
-
- generic
- type Scalar is private;
- type Matrix is array (Integer range <>, Integer range <>) of Scalar;
- procedure Transpose (A : Matrix; R : out Matrix);
-
- -------------------------------
- -- Update_Vector_With_Vector --
- -------------------------------
-
- generic
- type X_Scalar is private;
- type Y_Scalar is private;
- type X_Vector is array (Integer range <>) of X_Scalar;
- type Y_Vector is array (Integer range <>) of Y_Scalar;
- with procedure Update (X : in out X_Scalar; Y : Y_Scalar);
- procedure Update_Vector_With_Vector (X : in out X_Vector; Y : Y_Vector);
-
- -------------------------------
- -- Update_Matrix_With_Matrix --
- -------------------------------
-
- generic
- type X_Scalar is private;
- type Y_Scalar is private;
- type X_Matrix is array (Integer range <>, Integer range <>) of X_Scalar;
- type Y_Matrix is array (Integer range <>, Integer range <>) of Y_Scalar;
- with procedure Update (X : in out X_Scalar; Y : Y_Scalar);
- procedure Update_Matrix_With_Matrix (X : in out X_Matrix; Y : Y_Matrix);
-
- -----------------
- -- Unit_Matrix --
- -----------------
-
- generic
- type Scalar is private;
- type Matrix is array (Integer range <>, Integer range <>) of Scalar;
- Zero : Scalar;
- One : Scalar;
- function Unit_Matrix
- (Order : Positive;
- First_1 : Integer := 1;
- First_2 : Integer := 1) return Matrix;
-
- -----------------
- -- Unit_Vector --
- -----------------
-
- generic
- type Scalar is private;
- type Vector is array (Integer range <>) of Scalar;
- Zero : Scalar;
- One : Scalar;
- function Unit_Vector
- (Index : Integer;
- Order : Positive;
- First : Integer := 1) return Vector;
-
-end System.Generic_Array_Operations;