29char mtbl_math_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Mtbl/mtbl_math.C,v 1.4 2014/10/13 08:53:08 j_novak Exp $" ;
83 assert(ti.
get_etat() != ETATNONDEF) ;
95 for (
int i=0 ; i<nzone ; i++) {
96 *(to.
t[i]) =
sin( *(ti.
t[i]) ) ;
108 assert(ti.
get_etat() != ETATNONDEF) ;
116 for (
int i=0 ; i<nzone ; i++) {
124 for (
int i=0 ; i<nzone ; i++) {
125 *(to.
t[i]) =
cos( *(ti.
t[i]) ) ;
137 assert(ti.
get_etat() != ETATNONDEF) ;
149 for (
int i=0 ; i<nzone ; i++) {
150 *(to.
t[i]) =
tan( *(ti.
t[i]) ) ;
162 assert(ti.
get_etat() != ETATNONDEF) ;
174 for (
int i=0 ; i<nzone ; i++) {
175 *(to.
t[i]) =
asin( *(ti.
t[i]) ) ;
187 assert(ti.
get_etat() != ETATNONDEF) ;
195 for (
int i=0 ; i<nzone ; i++) {
196 *(to.
t[i]) = M_PI * .5 ;
203 for (
int i=0 ; i<nzone ; i++) {
204 *(to.
t[i]) =
acos( *(ti.
t[i]) ) ;
216 assert(ti.
get_etat() != ETATNONDEF) ;
228 for (
int i=0 ; i<nzone ; i++) {
229 *(to.
t[i]) =
atan( *(ti.
t[i]) ) ;
241 assert(ti.
get_etat() != ETATNONDEF) ;
253 for (
int i=0 ; i<nzone ; i++) {
254 *(to.
t[i]) =
sqrt( *(ti.
t[i]) ) ;
267 assert(ti.
get_etat() != ETATNONDEF) ;
279 for (
int i=0 ; i<nzone ; i++) {
291 assert(ti.
get_etat() != ETATNONDEF) ;
299 for (
int i=0 ; i<nzone ; i++) {
307 for (
int i=0 ; i<nzone ; i++) {
308 *(to.
t[i]) =
exp( *(ti.
t[i]) ) ;
320 assert(ti.
get_etat() != ETATNONDEF) ;
328 for (
int i=0 ; i<nzone ; i++) {
336 for (
int i=0 ; i<nzone ; i++) {
349 assert(ti.
get_etat() != ETATNONDEF) ;
353 cout <<
"Mtbl log: log(ETATZERO) !" << endl ;
362 for (
int i=0 ; i<nzone ; i++) {
363 *(to.
t[i]) =
log( *(ti.
t[i]) ) ;
375 assert(ti.
get_etat() != ETATNONDEF) ;
379 cout <<
"Mtbl log10: log10(ETATZERO) !" << endl ;
388 for (
int i=0 ; i<nzone ; i++) {
389 *(to.
t[i]) =
log10( *(ti.
t[i]) ) ;
401 assert(ti.
get_etat() != ETATNONDEF) ;
409 cout <<
"Mtbl pow: ETATZERO^n avec n<=0 ! "<< endl ;
420 for (
int i=0 ; i<nzone ; i++) {
421 *(to.
t[i]) =
pow( *(ti.
t[i]), x ) ;
433 assert(ti.
get_etat() != ETATNONDEF) ;
441 cout <<
"Mtbl pow: ETATZERO^x avec x<=0 !" << endl ;
451 for (
int i=0 ; i<nzone ; i++) {
452 *(to.
t[i]) =
pow( *(ti.
t[i]), x ) ;
464 assert(ti.
get_etat() != ETATNONDEF) ;
480 for (
int l=0 ; l<nzone ; l++) {
481 *(to.
t[l]) =
abs( *(ti.
t[l]) ) ;
497 assert(mti.
get_etat() != ETATNONDEF) ;
501 double resu = -1E99 ;
510 for (
int l=0 ; l<nz ; l++) {
511 resu =
max(resu,
max( *(mti.
t[l]) )) ;
525 assert(mti.
get_etat() != ETATNONDEF) ;
538 for (
int l=0 ; l<nz ; l++) {
539 resu =
min(resu,
min( *(mti.
t[l]) )) ;
554 assert(mti.
get_etat() != ETATNONDEF) ;
568 for (
int l=0 ; l<nz ; l++) {
569 resu.
set(l) =
max( *(mti.
t[l]) ) ;
583 assert(mti.
get_etat() != ETATNONDEF) ;
597 for (
int l=0 ; l<nz ; l++) {
598 resu.
set(l) =
min( *(mti.
t[l]) ) ;
612 assert(mti.
get_etat() != ETATNONDEF) ;
626 for (
int l=0 ; l<nz ; l++) {
641 assert(mt1.
get_etat() != ETATNONDEF) ;
642 assert(mt2.
get_etat() != ETATNONDEF) ;
650 assert(normdiff.
get_etat() == ETATQCQ) ;
651 assert(norme2.
get_etat() == ETATQCQ) ;
654 for (
int l=0; l<nz; l++) {
655 if ( norme2(l) ==
double(0) ) {
656 resu.
set(l) = normdiff(l) ;
659 resu.
set(l) = normdiff(l) / norme2(l) ;
674 assert(mt1.
get_etat() != ETATNONDEF) ;
675 assert(mt2.
get_etat() != ETATNONDEF) ;
683 assert(maxdiff.
get_etat() == ETATQCQ) ;
684 assert(max2.
get_etat() == ETATQCQ) ;
687 for (
int l=0; l<nz; l++) {
688 if ( max2(l) ==
double(0) ) {
689 resu.
set(l) = maxdiff(l) ;
692 resu.
set(l) = maxdiff(l) / max2(l) ;
const Mg3d * get_mg() const
Gives the Mg3d on which the Mtbl is defined.
int get_etat() const
Gives the logical state.
Tbl ** t
Array (size nzone ) of pointers on the Tbl 's.
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
int get_nzone() const
Gives the number of zones (domains)
int get_etat() const
Gives the logical state.
void annule_hard()
Sets the Tbl to zero in a hard way.
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
double & set(int i)
Read/write of a particular element (index i) (1D case)
Cmp atan(const Cmp &)
Arctangent.
Cmp sqrt(const Cmp &)
Square root.
Cmp log10(const Cmp &)
Basis 10 logarithm.
Cmp exp(const Cmp &)
Exponential.
Cmp sin(const Cmp &)
Sine.
Tbl diffrel(const Cmp &a, const Cmp &b)
Relative difference between two Cmp (norme version).
Tbl norme(const Cmp &)
Sums of the absolute values of all the values of the Cmp in each domain.
Cmp acos(const Cmp &)
Arccosine.
Cmp asin(const Cmp &)
Arcsine.
Cmp racine_cubique(const Cmp &)
Cube root.
Tbl min(const Cmp &)
Minimum values of a Cmp in each domain.
Tbl max(const Cmp &)
Maximum values of a Cmp in each domain.
Cmp pow(const Cmp &, int)
Power .
Cmp cos(const Cmp &)
Cosine.
Cmp abs(const Cmp &)
Absolute value.
Tbl diffrelmax(const Cmp &a, const Cmp &b)
Relative difference between two Cmp (max version).
Cmp tan(const Cmp &)
Tangent.
Cmp log(const Cmp &)
Neperian logarithm.
Mtbl Heaviside(const Mtbl &)
Heaviside function.
double totalmin(const Mtbl &)
Minimum value of the Mtbl elements in all domain.
double totalmax(const Mtbl &)
Maximum value of the Mtbl elements in all domains.