diff options
Diffstat (limited to 'gcc/ada/s-gearop.ads')
-rw-r--r-- | gcc/ada/s-gearop.ads | 502 |
1 files changed, 0 insertions, 502 deletions
diff --git a/gcc/ada/s-gearop.ads b/gcc/ada/s-gearop.ads deleted file mode 100644 index 7e252eefb25..00000000000 --- a/gcc/ada/s-gearop.ads +++ /dev/null @@ -1,502 +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-2016, 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; - Zero : Scalar; - 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; - Zero : 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_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; |