30char tbl_math_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Tbl/tbl_math.C,v 1.4 2014/10/13 08:53:41 j_novak Exp $" ;
81 assert(ti.
get_etat() != ETATNONDEF) ;
93 for (
int i=0 ; i<taille ; i++) {
94 to.
t[i] =
sin(ti.
t[i]) ;
106 assert(ti.
get_etat() != ETATNONDEF) ;
114 for (
int i=0 ; i<taille ; i++) {
123 for (
int i=0 ; i<taille ; i++) {
124 to.
t[i] =
cos(ti.
t[i]) ;
136 assert(ti.
get_etat() != ETATNONDEF) ;
148 for (
int i=0 ; i<taille ; i++) {
149 to.
t[i] =
tan(ti.
t[i]) ;
161 assert(ti.
get_etat() != ETATNONDEF) ;
173 for (
int i=0 ; i<taille ; i++) {
186 assert(ti.
get_etat() != ETATNONDEF) ;
194 for (
int i=0 ; i<taille ; i++) {
195 to.
t[i] = M_PI * .5 ;
203 for (
int i=0 ; i<taille ; i++) {
216 assert(ti.
get_etat() != ETATNONDEF) ;
228 for (
int i=0 ; i<taille ; i++) {
241 assert(ti.
get_etat() != ETATNONDEF) ;
253 for (
int i=0 ; i<taille ; i++) {
266 assert(ti.
get_etat() != ETATNONDEF) ;
274 for (
int i=0 ; i<taille ; i++) {
283 for (
int i=0 ; i<taille ; i++) {
284 to.
t[i] =
exp(ti.
t[i]) ;
296 assert(ti.
get_etat() != ETATNONDEF) ;
304 for (
int i=0 ; i<taille ; i++) {
313 for (
int i=0 ; i<taille ; i++) {
329 assert(ti.
get_etat() != ETATNONDEF) ;
333 cout <<
"Tbl log: log(ETATZERO) !" << endl ;
342 for (
int i=0 ; i<taille ; i++) {
343 to.
t[i] =
log(ti.
t[i]) ;
355 assert(ti.
get_etat() != ETATNONDEF) ;
359 cout <<
"Tbl log10: log10(ETATZERO) !" << endl ;
368 for (
int i=0 ; i<taille ; i++) {
381 assert(ti.
get_etat() != ETATNONDEF) ;
389 cout <<
"Tbl pow: ETATZERO^n avec n<=0 ! "<< endl ;
400 for (
int i=0 ; i<taille ; i++) {
401 to.
t[i] =
pow(ti.
t[i], x) ;
413 assert(ti.
get_etat() != ETATNONDEF) ;
421 cout <<
"Tbl pow: ETATZERO^x avec x<=0 !" << endl ;
431 for (
int i=0 ; i<taille ; i++) {
432 to.
t[i] =
pow(ti.
t[i], x) ;
444 assert(ti.
get_etat() != ETATNONDEF) ;
457 const double* xi = ti.
t ;
461 for (
int i=0 ; i<taille ; i++) {
462 xo[i] = fabs( xi[i] ) ;
474 assert(ti.
get_etat() != ETATNONDEF) ;
485 Tbl res (
pow(absolute, 1./3.)) ;
501 assert(ti.
get_etat() != ETATNONDEF) ;
511 const double* x = ti.
t ;
514 if ( x[i] > resu ) resu = x[i] ;
527 assert(ti.
get_etat() != ETATNONDEF) ;
537 const double* x = ti.
t ;
540 if ( x[i] < resu ) resu = x[i] ;
553 assert(ti.
get_etat() != ETATNONDEF) ;
560 const double* x = ti.
t ;
562 resu += fabs( x[i] ) ;
577 assert(t1.
get_etat() != ETATNONDEF) ;
578 assert(t2.
get_etat() != ETATNONDEF) ;
580 double norm2 =
norme(t2) ;
581 double normdiff =
norme(t1-t2) ;
583 if ( norm2 ==
double(0) ) {
587 resu = normdiff / norm2 ;
601 assert(t1.
get_etat() != ETATNONDEF) ;
602 assert(t2.
get_etat() != ETATNONDEF) ;
604 double max2 =
max(
abs(t2)) ;
605 double maxdiff =
max(
abs(t1-t2)) ;
607 if ( max2 ==
double(0) ) {
611 resu = maxdiff / max2 ;
Dim_tbl dim
Number of dimensions, size,...
int get_etat() const
Gives the logical state.
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
int get_taille() const
Gives the total size (ie dim.taille)
double * t
The array of double.
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.