Lorene::Itbl Class Reference
Utilities.

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 &o, const Itbl &t)
| Display.

## Detailed Description

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).

()

Definition at line 122 of file itbl.h.

## Constructor & Destructor Documentation

## Itbl() [1/6]

Lorene::Itbl::Itbl | ( | int | size0 | ) |

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 )` .

Parameters

  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).

Definition at line 97 of file itbl.C.

References dim, etat, and t.

## Itbl() [2/6]

Lorene::Itbl::Itbl | ( | int | size1,
|  | int | size0 )

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 )` .

Parameters

  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 dim, etat, get_taille(), and t.

## Itbl() [3/6]

Lorene::Itbl::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 )` .

Parameters

  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 dim, etat, get_taille(), and t.

## Itbl() [4/6]

Lorene::Itbl::Itbl | ( | const Dim_tbl & | dt | ) |

explicit

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 dim, etat, get_taille(), set_etat_zero(), and t.

## Itbl() [5/6]

Lorene::Itbl::Itbl | ( | FILE * | fd | ) |

explicit

Constructor from a file (see `sauve(FILE* )` ).

Definition at line 149 of file itbl.C.

References dim, etat, Lorene::fread_be(), get_taille(), Itbl(), and t.

## Itbl() [6/6]

Lorene::Itbl::Itbl | ( | const Itbl & | tc | ) |

Copy constructor.

Definition at line 133 of file itbl.C.

References dim, etat, and Itbl().

## ~Itbl()

Lorene::Itbl::~Itbl | ( |  | ) |

Destructor.

Definition at line 167 of file itbl.C.

References t.

## Member Function Documentation

## annule_hard()

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.

## del_t()

void Lorene::Itbl::del_t | ( |  | ) |

private

Logical destructor: dellocates the memory occupied by the array `t` and sets the logical state to ETATNONDEF.

Definition at line 240 of file itbl.C.

References etat, and t.

## get_dim()

int Lorene::Itbl::get_dim | ( | int | i | ) | const

inline

Gives the `i` th dimension (ie {tt dim.dim[i] ).

Definition at line 326 of file itbl.h.

References dim.

## get_etat()

int Lorene::Itbl::get_etat | ( |  | ) | const

inline

Gives the logical state.

Definition at line 317 of file itbl.h.

References etat.

## get_ndim()

int Lorene::Itbl::get_ndim | ( |  | ) | const

inline

Gives the number of dimensions (ie `dim.ndim` ).

Definition at line 323 of file itbl.h.

References dim.

## get_taille()

int Lorene::Itbl::get_taille | ( |  | ) | const

inline

Gives the total size (ie `dim.taille` ).

Definition at line 320 of file itbl.h.

References dim.

## operator()() [1/3]

int Lorene::Itbl::operator() | ( | int | i | ) | const

inline

Read-only of a particular element (index `i` ) (1D case).

Definition at line 256 of file itbl.h.

References dim, etat, and t.

## operator()() [2/3]

int Lorene::Itbl::operator() | ( | int | j,
|  | int | i ) const

inline

Read-only of a particular element (index ``(j,i) ) (2D case).

Definition at line 278 of file itbl.h.

References dim, etat, and t.

## operator()() [3/3]

int Lorene::Itbl::operator() | ( | int | k,
|  | int | j,
|  | int | i ) const

inline

Read-only of a particular element (index ``(k,j,i) ) (3D case).

Definition at line 301 of file itbl.h.

References dim, etat, and t.

## operator*=() [1/2]

void Lorene::Itbl::operator*= | ( | const Itbl & | ti | ) |

Multiplication of `this` by a `Itbl`.

Definition at line 462 of file itbl_arithm.C.

References dim, etat, get_etat(), get_taille(), Itbl(), set_etat_zero(), and t.

## operator*=() [2/2]

void Lorene::Itbl::operator*= | ( | int | x | ) |

Multiplication of `this` by a `int`.

Definition at line 487 of file itbl_arithm.C.

References etat, get_taille(), set_etat_zero(), t, and Lorene::x.

## operator+=() [1/2]

void Lorene::Itbl::operator+= | ( | const Itbl & | ti | ) |

Addition of a `Itbl` to `this`.

Definition at line 318 of file itbl_arithm.C.

References dim, etat, get_etat(), get_taille(), Itbl(), set_etat_qcq(), and t.

## operator+=() [2/2]

void Lorene::Itbl::operator+= | ( | int | x | ) |

Addition of a `int` to `this`.

Definition at line 355 of file itbl_arithm.C.

References etat, get_taille(), set_etat_qcq(), t, and Lorene::x.

## operator-=() [1/2]

void Lorene::Itbl::operator-= | ( | const Itbl & | ti | ) |

Subtraction of a `Itbl` to `this`.

Definition at line 390 of file itbl_arithm.C.

References dim, etat, get_etat(), get_taille(), Itbl(), set_etat_qcq(), and t.

## operator-=() [2/2]

void Lorene::Itbl::operator-= | ( | int | x | ) |

Subtraction of a `int` to `this`.

Definition at line 427 of file itbl_arithm.C.

References etat, get_taille(), set_etat_qcq(), t, and Lorene::x.

## operator=() [1/2]

void Lorene::Itbl::operator= | ( | const Itbl & | tx | ) |

Assignment to another `Itbl`.

Definition at line 176 of file itbl.C.

References dim, etat, get_etat(), get_taille(), Itbl(), set_etat_qcq(), set_etat_zero(), and t.

## operator=() [2/2]

void Lorene::Itbl::operator= | ( | int | a | ) |

Assignment to a `int`.

Definition at line 203 of file itbl.C.

References get_taille(), set_etat_qcq(), set_etat_zero(), and t.

## sauve()

void Lorene::Itbl::sauve | ( | FILE * | fd | ) | const

Save in a file.

Definition at line 226 of file itbl.C.

References dim, etat, Lorene::fwrite_be(), get_taille(), and t.

## set() [1/3]

int & Lorene::Itbl::set | ( | int | i | ) |

inline

Read/write of a particular element (index `i` ) (1D case).

Definition at line 247 of file itbl.h.

References dim, etat, and t.

## set() [2/3]

int & Lorene::Itbl::set | ( | int | j,
|  | int | i )

inline

Read/write of a particular element (index ``(j,i) ) (2D case).

Definition at line 269 of file itbl.h.

References dim, etat, and t.

## set() [3/3]

int & Lorene::Itbl::set | ( | int | k,
|  | int | j,
|  | int | i )

inline

Read/write of a particular element (index ``(k,j,i) ) (3D case).

Definition at line 291 of file itbl.h.

References dim, etat, and t.

## set_etat_nondef()

void Lorene::Itbl::set_etat_nondef | ( |  | ) |

Sets the logical state to `ETATNONDEF` (undefined).

Deallocates the memory occupied by the `int` array `t` .

Definition at line 254 of file itbl.C.

References del_t(), and etat.

## set_etat_qcq()

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.

## set_etat_zero()

void Lorene::Itbl::set_etat_zero | ( |  | ) |

Sets the logical state to `ETATZERO` (zero).

Deallocates the memory occupied by the `int` array `t` .

Definition at line 247 of file itbl.C.

References del_t(), and etat.

## Friends And Related Symbol Documentation

## operator<<

ostream & operator<< | ( | ostream & | o,
|  | const Itbl & | t )

friend

Display.

Definition at line 291 of file itbl.C.

References Itbl(), operator<<, and t.

## Member Data Documentation

## dim

Dim_tbl Lorene::Itbl::dim

Number of dimensions, size,...

Definition at line 131 of file itbl.h.

## etat

int Lorene::Itbl::etat

private

logical state (`ETATNONDEF` , `ETATQCQ` or `ETATZERO` ).

Definition at line 128 of file itbl.h.

## t

int* Lorene::Itbl::t

The array of `int` 's.

Definition at line 132 of file itbl.h.

The documentation for this class was generated from the following files:

- itbl.h
- itbl.C
- itbl_arithm.C