29char mtbl_arithm_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Mtbl/mtbl_arithm.C,v 1.2 2014/10/13 08:53:08 j_novak Exp $" ;
95 assert(t1.
get_etat() != ETATNONDEF) ;
106 assert(t1.
get_etat() != ETATNONDEF) ;
118 *(r.
t)[i] = -(*(t1.
t)[i]) ;
132 assert(t1.
get_etat() != ETATNONDEF) ;
133 assert(t2.
get_etat() != ETATNONDEF) ;
151 for (
int i=0 ; i<nz ; i++) {
152 *(r.
t)[i] += *(t2.
t)[i] ;
163 assert(t1.
get_etat() != ETATNONDEF) ;
166 if (x ==
double(0)) {
177 for (
int i=0 ; i<nz ; i++) {
185 for (
int i=0 ; i<nz ; i++) {
204 return t1 + double(m) ;
211 return t1 + double(m) ;
224 assert(t1.
get_etat() != ETATNONDEF) ;
225 assert(t2.
get_etat() != ETATNONDEF) ;
243 for (
int i=0 ; i<nz ; i++) {
244 *(r.
t)[i] -= *(t2.
t)[i] ;
256 assert(t1.
get_etat() != ETATNONDEF) ;
259 if (x ==
double(0)) {
270 for (
int i=0 ; i<nz ; i++) {
278 for (
int i=0 ; i<nz ; i++) {
297 return t1 - double(m) ;
304 return double(m) - t1 ;
316 assert(t1.
get_etat() != ETATNONDEF) ;
317 assert(t2.
get_etat() != ETATNONDEF) ;
335 for (
int i=0 ; i<nz ; i++) {
336 *(r.
t)[i] *= (*(t2.
t)[i]) ;
348 assert(t1.
get_etat() != ETATNONDEF) ;
351 if ((t1.
get_etat() == ETATZERO) || ( x ==
double(1) )) {
360 if ( x ==
double(0) ) {
365 for (
int i=0 ; i<nz ; i++) {
384 return t1 * double(m) ;
391 return t1 * double(m) ;
404 assert(t1.
get_etat() != ETATNONDEF) ;
405 assert(t2.
get_etat() != ETATNONDEF) ;
410 cout <<
"Mtbl division by 0 !" << endl ;
424 for (
int i=0 ; i<nz ; i++) {
425 *(r.
t)[i] /= (*(t2.
t)[i]) ;
437 assert(t1.
get_etat() != ETATNONDEF) ;
438 if ( x ==
double(0) ) {
439 cout <<
"Mtbl division by 0 !" << endl ;
444 if ((t1.
get_etat() == ETATZERO) || ( x ==
double(1) )) {
453 for (
int i=0 ; i<nz ; i++) {
464 return t1/double(n) ;
473 assert(t1.
get_etat() != ETATNONDEF) ;
477 cout <<
"Division by 0 in double / Mtbl !" << endl ;
486 if ( x ==
double(0) ) {
492 for (
int i=0 ; i<nz ; i++) {
493 *(r.
t)[i] = x / (*(t1.
t)[i]) ;
505 return double(m)/t1 ;
517 assert(
etat != ETATNONDEF) ;
518 assert(mi.
get_etat() != ETATNONDEF) ;
527 if (
etat == ETATZERO) {
530 for (
int i=0 ; i<
nzone ; i++) {
531 *(
t[i]) += *(mi.
t[i]) ;
539 assert(
etat != ETATNONDEF) ;
540 assert(mi.
get_etat() != ETATNONDEF) ;
549 if (
etat == ETATZERO) {
552 for (
int i=0 ; i<
nzone ; i++) {
553 *(
t[i]) -= *(mi.
t[i]) ;
561 assert(
etat != ETATNONDEF) ;
562 assert(mi.
get_etat() != ETATNONDEF) ;
565 if (
etat == ETATZERO) {
574 for (
int i=0 ; i<
nzone ; i++) {
575 *(
t[i]) *= *(mi.
t[i]) ;
const Mg3d * get_mg() const
Gives the Mg3d on which the Mtbl is defined.
int get_etat() const
Gives the logical state.
const Mg3d * mg
Pointer on the multi-grid Mgd3 on which this is defined.
void operator+=(const Mtbl &)
+= Mtbl
Tbl ** t
Array (size nzone ) of pointers on the Tbl 's.
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
int nzone
Number of domains (zones)
void set_etat_zero()
Sets the logical state to ETATZERO (zero).
int get_nzone() const
Gives the number of zones (domains)
void operator*=(const Mtbl &)
*= Mtbl
int etat
Logical state (ETATNONDEF , ETATQCQ or ETATZERO ).
void annule_hard()
Sets the Mtbl to zero in a hard way.
void operator-=(const Mtbl &)
-= Mtbl
void set_etat_zero()
Sets the logical state to ETATZERO (zero).
Base_val operator*(const Base_val &, const Base_val &)
This operator is used when calling multiplication or division of Valeur .
Cmp operator-(const Cmp &)
- Cmp
Cmp operator/(const Cmp &, const Cmp &)
Cmp / Cmp.
Cmp operator+(const Cmp &)