Basic array class. More...
#include <tbl.h>
Public Member Functions | |
Tbl (int size0) | |
1D constructor | |
Tbl (int size1, int size0) | |
2D constructor | |
Tbl (int size2, int size1, int size0) | |
3D constructor | |
Tbl (Itbl sizes) | |
N-dimensional constructor. | |
Tbl (const Grille3d &grid) | |
Constructor from a 3D grid. | |
Tbl (const Dim_tbl &dim) | |
Constructor from a Dim_tbl . | |
Tbl (FILE *) | |
Constructor from a file (see sauve(FILE* ) ). | |
Tbl (const Tbl &a) | |
Copy constructor. | |
Tbl (const Matrice &mat) | |
Constructor from a matrix. | |
~Tbl () | |
Destructor. | |
void | operator= (const Tbl &) |
Assignment to another Tbl . | |
void | operator= (double) |
Assignment to a double . | |
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 Tbl to zero in a hard way. | |
double & | set (int i) |
Read/write of a particular element (index i ) (1D case). | |
void | affecte (int i, double val) |
Affectation of a particular element (index i ) (1D case). | |
double | operator() (int i) const |
Read-only of a particular element (index i ) (1D case). | |
double & | set (int j, int i) |
Read/write of a particular element (index (j,i)) (2D case). | |
double | operator() (int j, int i) const |
Read-only of a particular element (index (j,i)) (2D case). | |
double & | set (int k, int j, int i) |
Read/write of a particular element (index (k,j,i)) (3D case). | |
double | operator() (int k, int j, int i) const |
Read-only of a particular element (index (k,j,i)) (3D case). | |
double & | set (const Itbl place) |
Read/write of a particular element (multi-dimensional case). | |
double | operator() (const Itbl place) const |
Read-only of a particular element (index (k,j,i)) (multi-dimensional 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 dim.dim [i]). | |
void | sauve (FILE *) const |
Save in a file. | |
void | affiche_seuil (ostream &ostr, int precision=4, double threshold=1.e-7) const |
Prints only the values greater than a given threshold. | |
void | operator+= (const Tbl &) |
Addition of a Tbl to this . | |
void | operator+= (double) |
Addition of a double to this . | |
void | operator-= (const Tbl &) |
Subtraction of a Tbl to this . | |
void | operator-= (double) |
Subtraction of a double to this . | |
void | operator*= (const Tbl &) |
Multiplication of this by a Tbl . | |
void | operator*= (double) |
Multiplication of this by a double . | |
void | operator/= (const Tbl &) |
Division of this by a Tbl . | |
void | operator/= (double) |
Division of this by a double . | |
Public Attributes | |
Dim_tbl | dim |
Number of dimensions, size,... | |
double * | t |
The array of double . | |
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 | |
class | Matrice |
ostream & | operator<< (ostream &, const Tbl &) |
Display. |
Basic array class.
This class is essentially an double
array class. The elements of the array are stored continuously using the C convention. A Tbl
is initialy created with a logical state ETATNONDEF
(i.e. undefined), except by the copy constructor and the constructor from a file. The general logical state of an initialized Tbl
is ETATQCQ
; it is the only state for which the memory allocation is performed for the double}
array t
. The value zero is treated as a special logical state (ETATZERO
), without any memory allocation. Arithmetic operations are provided with the usual meaning (see below). ()
Definition at line 157 of file tbl.h.
Tbl::Tbl | ( | int | size0 | ) | [explicit] |
Tbl::Tbl | ( | int | size1, | |
int | size0 | |||
) |
2D constructor
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]. |
Tbl::Tbl | ( | int | size2, | |
int | size1, | |||
int | size0 | |||
) |
3D constructor
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]. |
Tbl::Tbl | ( | Itbl | sizes | ) |
N-dimensional constructor.
sizes | [input] the sizes of each dimensions |
Definition at line 154 of file tbl.C.
References dim, and Itbl::get_dim().
Tbl::Tbl | ( | const Grille3d & | grid | ) | [explicit] |
Tbl::Tbl | ( | const Dim_tbl & | dim | ) | [explicit] |
Tbl::Tbl | ( | FILE * | fd | ) | [explicit] |
Constructor from a file (see sauve(FILE* )
).
Definition at line 191 of file tbl.C.
References etat, fread_be(), get_taille(), and t.
Tbl::Tbl | ( | const Tbl & | a | ) |
Tbl::Tbl | ( | const Matrice & | mat | ) | [explicit] |
Constructor from a matrix.
If the matrix has only one row or one column, the Tbl
is 1D, otherwise it is 2D.
Definition at line 206 of file tbl.C.
References Dim_tbl::dim, dim, etat, Matrice::get_array(), get_taille(), Dim_tbl::ndim, and t.
void Tbl::affecte | ( | int | i, | |
double | val | |||
) | [inline] |
Affectation of a particular element (index i
) (1D case).
Definition at line 286 of file tbl.h.
References Dim_tbl::dim, dim, etat, Dim_tbl::ndim, and t.
void Tbl::affiche_seuil | ( | ostream & | ostr, | |
int | precision = 4 , |
|||
double | threshold = 1.e-7 | |||
) | const |
Prints only the values greater than a given threshold.
ostr | [input] Output stream used for the printing | |
precision | [input] Number of printed digits (default: 4) | |
threshold | [input] Value above which an array element is printed (default: 1.e-7) |
Definition at line 464 of file tbl.C.
References etat, get_dim(), get_ndim(), and get_taille().
void Tbl::annule_hard | ( | ) |
Sets the Tbl
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 double
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 368 of file tbl.C.
References etat, get_taille(), and t.
void Tbl::del_t | ( | ) | [private] |
int Tbl::get_dim | ( | int | i | ) | const [inline] |
Gives the i-th dimension (ie dim.dim
[i]).
Definition at line 399 of file tbl.h.
References Dim_tbl::dim, dim, and Dim_tbl::ndim.
int Tbl::get_etat | ( | ) | const [inline] |
int Tbl::get_ndim | ( | ) | const [inline] |
Gives the number of dimensions (ie dim.ndim
).
Definition at line 396 of file tbl.h.
References dim, and Dim_tbl::ndim.
int Tbl::get_taille | ( | ) | const [inline] |
Gives the total size (ie dim.taille
).
Definition at line 393 of file tbl.h.
References dim, and Dim_tbl::taille.
double Tbl::operator() | ( | const Itbl | place | ) | const [inline] |
Read-only of a particular element (index (k,j,i)) (multi-dimensional case).
Definition at line 367 of file tbl.h.
References Dim_tbl::dim, dim, etat, Itbl::get_dim(), Dim_tbl::ndim, and t.
double Tbl::operator() | ( | int | k, | |
int | j, | |||
int | i | |||
) | const [inline] |
Read-only of a particular element (index (k,j,i)) (3D case).
Definition at line 339 of file tbl.h.
References Dim_tbl::dim, dim, etat, Dim_tbl::ndim, and t.
double Tbl::operator() | ( | int | j, | |
int | i | |||
) | const [inline] |
Read-only of a particular element (index (j,i)) (2D case).
Definition at line 316 of file tbl.h.
References Dim_tbl::dim, dim, etat, Dim_tbl::ndim, and t.
double Tbl::operator() | ( | int | i | ) | const [inline] |
Read-only of a particular element (index i
) (1D case).
Definition at line 294 of file tbl.h.
References Dim_tbl::dim, dim, etat, Dim_tbl::ndim, and t.
void Tbl::operator*= | ( | double | x | ) |
Multiplication of this
by a double
.
Definition at line 650 of file tbl_arithm.C.
References etat, get_taille(), set_etat_zero(), and t.
void Tbl::operator*= | ( | const Tbl & | ti | ) |
Multiplication of this
by a Tbl
.
Definition at line 624 of file tbl_arithm.C.
References dim, etat, get_etat(), get_taille(), set_etat_zero(), and t.
void Tbl::operator+= | ( | double | x | ) |
Addition of a double
to this
.
Definition at line 517 of file tbl_arithm.C.
References etat, get_taille(), set_etat_qcq(), and t.
void Tbl::operator+= | ( | const Tbl & | ti | ) |
Addition of a Tbl
to this
.
Definition at line 480 of file tbl_arithm.C.
References dim, etat, get_etat(), get_taille(), set_etat_qcq(), and t.
void Tbl::operator-= | ( | double | x | ) |
Subtraction of a double
to this
.
Definition at line 589 of file tbl_arithm.C.
References etat, get_taille(), set_etat_qcq(), and t.
void Tbl::operator-= | ( | const Tbl & | ti | ) |
Subtraction of a Tbl
to this
.
Definition at line 552 of file tbl_arithm.C.
References dim, etat, get_etat(), get_taille(), set_etat_qcq(), and t.
void Tbl::operator/= | ( | double | x | ) |
Division of this
by a double
.
Definition at line 701 of file tbl_arithm.C.
References etat, get_taille(), and t.
void Tbl::operator/= | ( | const Tbl & | ti | ) |
Division of this
by a Tbl
.
Definition at line 674 of file tbl_arithm.C.
References dim, etat, get_etat(), get_taille(), and t.
void Tbl::operator= | ( | int | m | ) |
Assignment to a int
.
Definition at line 301 of file tbl.C.
References get_taille(), set_etat_qcq(), set_etat_zero(), and t.
void Tbl::operator= | ( | double | a | ) |
Assignment to a double
.
Definition at line 286 of file tbl.C.
References get_taille(), set_etat_qcq(), set_etat_zero(), and t.
void Tbl::operator= | ( | const Tbl & | tx | ) |
Assignment to another Tbl
.
Definition at line 255 of file tbl.C.
References dim, etat, get_etat(), get_taille(), set_etat_qcq(), set_etat_zero(), and t.
void Tbl::sauve | ( | FILE * | fd | ) | const |
Save in a file.
Definition at line 322 of file tbl.C.
References dim, etat, fwrite_be(), get_taille(), Dim_tbl::sauve(), and t.
double& Tbl::set | ( | const Itbl | place | ) | [inline] |
Read/write of a particular element (multi-dimensional case).
Definition at line 353 of file tbl.h.
References Dim_tbl::dim, dim, Dim_tbl::ndim, and t.
double& Tbl::set | ( | int | k, | |
int | j, | |||
int | i | |||
) | [inline] |
Read/write of a particular element (index (k,j,i)) (3D case).
Definition at line 329 of file tbl.h.
References Dim_tbl::dim, dim, etat, Dim_tbl::ndim, and t.
double& Tbl::set | ( | int | j, | |
int | i | |||
) | [inline] |
Read/write of a particular element (index (j,i)) (2D case).
Definition at line 307 of file tbl.h.
References Dim_tbl::dim, dim, etat, Dim_tbl::ndim, and t.
double& Tbl::set | ( | int | i | ) | [inline] |
Read/write of a particular element (index i
) (1D case).
Definition at line 277 of file tbl.h.
References Dim_tbl::dim, dim, etat, Dim_tbl::ndim, and t.
void Tbl::set_etat_nondef | ( | ) |
void Tbl::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 double
array t
.
Definition at line 357 of file tbl.C.
References etat, get_taille(), and t.
void Tbl::set_etat_zero | ( | ) |
ostream& operator<< | ( | ostream & | , | |
const Tbl & | ||||
) | [friend] |
Display.
int Tbl::etat [private] |