37 lines
1 KiB
Ada
37 lines
1 KiB
Ada
|
generic
|
||
|
|
||
|
type T_Element is digits <>;
|
||
|
nb_rows: Positive;
|
||
|
nb_cols: Positive;
|
||
|
|
||
|
package Google_Naive is
|
||
|
|
||
|
type T_Google is limited private;
|
||
|
|
||
|
function "*"(left, right: T_Google) return T_Google with
|
||
|
Pre => left'Length(2) = right'Length(1),
|
||
|
Post => "*"'Result'Length(1) = left'Length(1)
|
||
|
and "*"'Result'Length(2) = right'Length(2);
|
||
|
|
||
|
function "+"(left, right: T_Google) return T_Google with
|
||
|
Pre => left'Length(1) = right'Length(1)
|
||
|
and left'Length(2) = right'Length(2);
|
||
|
|
||
|
function "*"(left: in T_Google; right: T_Element) return T_Google;
|
||
|
function "/"(left: in T_Google; right: T_Element) return T_Google with
|
||
|
Pre => right /= 0.0;
|
||
|
|
||
|
procedure initialize(mat: in out T_Google);
|
||
|
|
||
|
function ones(rows, cols: Positive) return T_Google;
|
||
|
|
||
|
procedure insert(mat: in out T_Google; i, j: Natural; elm: T_Element);
|
||
|
|
||
|
--function transpose(mat: in T_Google) return T_Google;
|
||
|
|
||
|
private
|
||
|
|
||
|
type T_Google is array (0..nb_rows-1, 0..nb_cols-1) of T_Element;
|
||
|
|
||
|
end Google_Naive;
|