LORENE
|
Basic integer array class. More...
#include <itbl.h>
Public Member Functions | |
Itbl (int size0) | |
1D constructor. | |
Itbl (int size1, int size0) | |
2D constructor. | |
Itbl (int size2, int size1, int size0) | |
3D constructor This constructor sets the Itbl in the logical state ETATQCQ , so that it is ready for initialization via the method set(int, int, int ) . | |
Itbl (const Dim_tbl &) | |
Constructor from a Dim_tbl . | |
Itbl (FILE *) | |
Constructor from a file (see sauve(FILE* ) ) | |
Itbl (const Itbl &) | |
Copy constructor. | |
~Itbl () | |
Destructor. | |
void | operator= (const Itbl &) |
Assignment to another Itbl . | |
void | operator= (int) |
Assignment to a int . | |
void | set_etat_nondef () |
Sets the logical state to ETATNONDEF (undefined). | |
void | set_etat_zero () |
Sets the logical state to ETATZERO (zero). | |
void | set_etat_qcq () |
Sets the logical state to ETATQCQ (ordinary state). | |
void | annule_hard () |
Sets the Itbl to zero in a hard way. | |
int & | set (int i) |
Read/write of a particular element (index i ) (1D case) | |
int | operator() (int i) const |
Read-only of a particular element (index i ) (1D case) | |
int & | set (int j, int i) |
Read/write of a particular element (index (j,i) ) (2D case) | |
int | operator() (int j, int i) const |
Read-only of a particular element (index (j,i) ) (2D case) | |
int & | set (int k, int j, int i) |
Read/write of a particular element (index (k,j,i) ) (3D case) | |
int | operator() (int k, int j, int i) const |
Read-only of a particular element (index (k,j,i) ) (3D case) | |
int | get_etat () const |
Gives the logical state. | |
int | get_taille () const |
Gives the total size (ie dim.taille ) | |
int | get_ndim () const |
Gives the number of dimensions (ie dim.ndim ) | |
int | get_dim (int i) const |
Gives the i th dimension (ie {tt dim.dim[i] ) | |
void | sauve (FILE *) const |
Save in a file. | |
void | operator+= (const Itbl &) |
Addition of a Itbl to this . | |
void | operator+= (int) |
Addition of a int to this . | |
void | operator-= (const Itbl &) |
Subtraction of a Itbl to this . | |
void | operator-= (int) |
Subtraction of a int to this . | |
void | operator*= (const Itbl &) |
Multiplication of this by a Itbl . | |
void | operator*= (int) |
Multiplication of this by a int . | |
Public Attributes | |
Dim_tbl | dim |
Number of dimensions, size,... | |
int * | t |
The array of int 's. | |
Private Member Functions | |
void | del_t () |
Logical destructor: dellocates the memory occupied by the array t and sets the logical state to ETATNONDEF. | |
Private Attributes | |
int | etat |
logical state (ETATNONDEF , ETATQCQ or ETATZERO ). | |
Friends | |
ostream & | operator<< (ostream &, const Itbl &) |
Display | |
Basic integer array class.
This class is essentially an int
array class. The elements of the array are stored continuously using the C convention.
The general logical state of an initialized Itbl
is ETATQCQ
; it is the only state for which the memory allocation is performed for the int
array t
. The value zero is treated as a special logical state (ETATZERO
), without any memory allocation.
Contrary to a Tbl
, an Itbl
is initialy created in a logical state ETATQCQ
(i.e. ordinary state, with memory allocated for the array t
).
Arithmetic operations are provided with the usual meaning (see below).
A 1D Itbl can be of dimension 0 (size 0). Its logical state is then ETATZERO
(by convention).
()
|
explicit |
1D constructor.
This constructor sets the Itbl
in the logical state ETATQCQ
, so that it is ready for initialization via the method set(int )
.
size0 | [input] Number of elements of the array t . Will be assigned to dim.dim [0] . The size 0 is allowed (the corresponding logical state will be then ETATZERO). |
2D constructor.
This constructor sets the Itbl
in the logical state ETATQCQ
, so that it is ready for initialization via the method set(int, int )
.
size1 | [input] Defines the range [0, size1-1] of the outermost index in the storage of the array t . Will be assigned to dim.dim [1] . |
size0 | [input] Defines the range [0, size0-1] of the innermost index in the storage of the array t . Will be assigned to dim.dim [0] . |
Definition at line 110 of file itbl.C.
References get_taille(), and t.
3D constructor This constructor sets the Itbl
in the logical state ETATQCQ
, so that it is ready for initialization via the method set(int, int, int )
.
size2 | [input] Defines the range [0, size2-1] of the outermost index in the storage of the array t . Will be assigned to dim.dim [2] . |
size1 | [input] Defines the range [0, size1-1] of the intermediate index in the storage of the array t . Will be assigned to dim.dim [1] . |
size0 | [input] Defines the range [0, size0-1] of the innermost index in the storage of the array t . Will be assigned to dim.dim [0] . |
Definition at line 116 of file itbl.C.
References get_taille(), and t.
Constructor from a Dim_tbl
.
This constructor sets the Itbl
in the logical state ETATQCQ
, so that it is ready for initialization via the method set
.
Definition at line 122 of file itbl.C.
References get_taille(), set_etat_zero(), and t.
|
explicit |
Constructor from a file (see sauve(FILE* )
)
Definition at line 149 of file itbl.C.
References etat, Lorene::fread_be(), get_taille(), and t.
void Lorene::Itbl::annule_hard | ( | ) |
Sets the Itbl
to zero in a hard way.
1/ Sets the logical state to ETATQCQ
, i.e. to an ordinary state. 2/ Allocates the memory of the int
array t
, and fills it with zeros. NB: this function must be used for debugging purposes only. For other operations, the function set_etat_zero()
must be perferred.
Definition at line 272 of file itbl.C.
References etat, get_taille(), and t.
|
private |
Gives the i
th dimension (ie {tt dim.dim[i] )
Definition at line 326 of file itbl.h.
References Lorene::Dim_tbl::dim, dim, and Lorene::Dim_tbl::ndim.
|
inline |
|
inline |
Gives the number of dimensions (ie dim.ndim
)
Definition at line 323 of file itbl.h.
References dim, and Lorene::Dim_tbl::ndim.
|
inline |
Gives the total size (ie dim.taille
)
Definition at line 320 of file itbl.h.
References dim, and Lorene::Dim_tbl::taille.
Read-only of a particular element (index i
) (1D case)
Definition at line 256 of file itbl.h.
References Lorene::Dim_tbl::dim, dim, etat, Lorene::Dim_tbl::ndim, and t.
Read-only of a particular element (index (j,i) ) (2D case)
Definition at line 278 of file itbl.h.
References Lorene::Dim_tbl::dim, dim, etat, Lorene::Dim_tbl::ndim, and t.
Read-only of a particular element (index (k,j,i) ) (3D case)
Definition at line 301 of file itbl.h.
References Lorene::Dim_tbl::dim, dim, etat, Lorene::Dim_tbl::ndim, and t.
Multiplication of this
by a Itbl
.
Definition at line 462 of file itbl_arithm.C.
References dim, etat, get_etat(), get_taille(), set_etat_zero(), and t.
Multiplication of this
by a int
.
Definition at line 487 of file itbl_arithm.C.
References etat, get_taille(), set_etat_zero(), and t.
Addition of a Itbl
to this
.
Definition at line 318 of file itbl_arithm.C.
References dim, etat, get_etat(), get_taille(), set_etat_qcq(), and t.
Addition of a int
to this
.
Definition at line 355 of file itbl_arithm.C.
References etat, get_taille(), set_etat_qcq(), and t.
Subtraction of a Itbl
to this
.
Definition at line 390 of file itbl_arithm.C.
References dim, etat, get_etat(), get_taille(), set_etat_qcq(), and t.
Subtraction of a int
to this
.
Definition at line 427 of file itbl_arithm.C.
References etat, get_taille(), set_etat_qcq(), and t.
Assignment to another Itbl
.
Definition at line 176 of file itbl.C.
References dim, etat, get_etat(), get_taille(), set_etat_qcq(), set_etat_zero(), and t.
Assignment to a int
.
Definition at line 203 of file itbl.C.
References get_taille(), set_etat_qcq(), set_etat_zero(), and t.
Save in a file.
Definition at line 226 of file itbl.C.
References dim, etat, Lorene::fwrite_be(), get_taille(), Lorene::Dim_tbl::sauve(), and t.
Read/write of a particular element (index i
) (1D case)
Definition at line 247 of file itbl.h.
References Lorene::Dim_tbl::dim, dim, etat, Lorene::Dim_tbl::ndim, and t.
Read/write of a particular element (index (j,i) ) (2D case)
Definition at line 269 of file itbl.h.
References Lorene::Dim_tbl::dim, dim, etat, Lorene::Dim_tbl::ndim, and t.
Read/write of a particular element (index (k,j,i) ) (3D case)
Definition at line 291 of file itbl.h.
References Lorene::Dim_tbl::dim, dim, etat, Lorene::Dim_tbl::ndim, and t.
void Lorene::Itbl::set_etat_nondef | ( | ) |
void Lorene::Itbl::set_etat_qcq | ( | ) |
Sets the logical state to ETATQCQ
(ordinary state).
If the state (member etat
) is already ETATQCQ
, this function does nothing. Otherwise, it performs the memory allocation for the int
array t
.
Definition at line 261 of file itbl.C.
References etat, get_taille(), and t.
void Lorene::Itbl::set_etat_zero | ( | ) |
|
private |