mathpaqs_20200214.0.0_c897786f/lin_alg/real_arrays_io.ads

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
-- Author: Jon Squire
-- Original code here:
--   http://www.cs.umbc.edu/~squire/adaclass/gnatmath95/
-- Changes:
--   - Generic_Real_Arrays = Ada.Numerics.Generic_Real_Arrays (Ada 2005)

-- real_arrays_io.ads     generic package specification

-- instantiate: package Arrays_IO is new Real_Arrays_IO(Float, Real_Arrays);

with Ada.Numerics.Generic_Real_Arrays;
with Ada.Text_IO;
with Ada.IO_Exceptions;
 
generic 

  type Real is digits <>;
  with package Real_Arrays is new Ada.Numerics.Generic_Real_Arrays(Real);

package Real_Arrays_IO is

  use Real_Arrays;

  package REAL_IO is new Ada.Text_IO.Float_IO(Real);
     -- to get DEFAULT_FORE, DEFAULT_AFT and DEFAULT_EXP for specifications
 
  procedure GET (FILE  : in  Ada.Text_IO.FILE_TYPE;
                 ITEM  : out REAL;
                 WIDTH : in Ada.Text_IO.FIELD := 0) renames REAL_IO.GET;
 
  procedure GET (ITEM : out REAL; 
                 WIDTH : in Ada.Text_IO.FIELD := 0) renames REAL_IO.GET;
 
  procedure PUT (FILE : in  Ada.Text_IO.FILE_TYPE;
                 ITEM : in REAL;
                 FORE : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_FORE;
                 AFT  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_AFT;
                 EXP  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_EXP)
                                                   renames REAL_IO.PUT;
 
  procedure PUT (ITEM : in REAL;
                 FORE : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_FORE;
                 AFT  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_AFT;
                 EXP  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_EXP)
                                                   renames REAL_IO.PUT;
 
  procedure GET (FROM : in STRING; 
                 ITEM : out REAL;
                 LAST : out POSITIVE) renames REAL_IO.GET;
 
  procedure PUT (TO   : out STRING;
                 ITEM : in REAL;
                 AFT  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_AFT;
                 EXP  : in Ada.Text_IO.FIELD:= REAL_IO.DEFAULT_EXP)
                                                    renames REAL_IO.PUT;
 
  procedure GET (FILE  : in  Ada.Text_IO.FILE_TYPE;
                 ITEM  : out REAL_VECTOR;
                 WIDTH : in Ada.Text_IO.FIELD := 0);
 
  procedure GET (ITEM  : out REAL_VECTOR ;
                 WIDTH : in Ada.Text_IO.FIELD := 0);

  procedure PUT (FILE : in  Ada.Text_IO.FILE_TYPE;
                 ITEM : in REAL_VECTOR;
                 FORE : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_FORE;
                 AFT  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_AFT;
                 EXP  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_EXP);
 
  procedure PUT (ITEM : in REAL_VECTOR ;
                 FORE : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_FORE;
                 AFT  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_AFT;
                 EXP  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_EXP);

  procedure GET (FILE  : in  Ada.Text_IO.FILE_TYPE;
                 ITEM  : out REAL_MATRIX;
                 WIDTH : in Ada.Text_IO.FIELD := 0);
 
  procedure GET (ITEM  : out REAL_MATRIX ;
                 WIDTH : in Ada.Text_IO.FIELD := 0);

  procedure PUT (FILE : in  Ada.Text_IO.FILE_TYPE;
                 ITEM : in REAL_MATRIX;
                 FORE : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_FORE;
                 AFT  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_AFT;
                 EXP  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_EXP);

  procedure PUT (ITEM : in REAL_MATRIX ;
                 FORE : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_FORE;
                 AFT  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_AFT;
                 EXP  : in Ada.Text_IO.FIELD := REAL_IO.DEFAULT_EXP);

  -- string intentionally omitted on vector and matrix

  End_Error : exception renames Ada.IO_EXCEPTIONS.END_ERROR ;
 
end Real_Arrays_IO;