33char tenseur_sym_arithm_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Tenseur/tenseur_sym_arithm.C,v 1.7 2014/10/13 08:53:42 j_novak Exp $" ;
111 for (
int i=0 ;
i<
res.get_n_comp() ;
i++) {
112 Itbl indices (
res.donne_indices(
i)) ;
113 res.set(indices) = -t(indices) ;
126 assert ((
t1.get_etat() != ETATNONDEF) && (
t2.get_etat() != ETATNONDEF)) ;
127 assert (
t1.get_valence() ==
t2.get_valence()) ;
129 if (
t1.get_valence() != 0) {
130 assert ( *(
t1.get_triad()) == *(
t2.get_triad()) ) ;
133 for (
int i=0 ;
i<
t1.get_valence() ;
i++)
134 assert(
t1.get_type_indice(
i) ==
t2.get_type_indice(
i)) ;
138 if (
t1.get_etat() == ETATZERO)
140 else if (
t2.get_etat() == ETATZERO)
144 t1.get_type_indice(), *(
t1.get_triad()),
145 t1.get_metric(),
t1.get_poids() ) ;
148 for (
int i=0 ;
i<
res.get_n_comp() ;
i++) {
149 Itbl indices (
res.donne_indices(
i)) ;
150 res.set(indices) =
t1(indices) +
t2(indices) ;
165 return (
t1 + (-
t2)) ;
177 if ( (t.
get_etat() == ETATZERO) || (x ==
double(1)) )
183 if ( x ==
double(0) )
184 res.set_etat_zero() ;
187 for (
int i=0 ;
i<
res.get_n_comp() ;
i++) {
188 Itbl indices (
res.donne_indices(
i)) ;
189 res.set(indices) = x*t(indices) ;
219 assert(
t1.get_etat() != ETATNONDEF) ;
220 assert(
t2.get_etat() != ETATNONDEF) ;
226 const Metrique*
met_res = 0x0 ;
229 if (
t1.get_metric() != 0x0)
met_res =
t1.get_metric() ;
234 if (
t2.get_etat() == ETATZERO) {
235 cout <<
"Division by 0 in Tenseur_sym / Tenseur !" <<
endl ;
238 if (
t1.get_etat() == ETATZERO) {
254 for (
int i=0 ;
i<
res.get_n_comp() ;
i++) {
255 Itbl indices (
res.donne_indices(
i)) ;
256 res.set(indices) =
t1(indices) /
t2() ;
267 if ( x ==
double(0) ) {
268 cout <<
"Division by 0 in Tenseur_sym / double !" <<
endl ;
272 if ( (t.
get_etat() == ETATZERO) || (x ==
double(1)) )
279 for (
int i=0 ;
i<
res.get_n_comp() ;
i++) {
280 Itbl indices (
res.donne_indices(
i)) ;
281 res.set(indices) = t(indices) / x ;
Time evolution with partial storage (*** under development ***).
Basic integer array class.
Class intended to describe tensors with a symmetry on the two last indices *** DEPRECATED : use class...
Tensor handling *** DEPRECATED : use class Tensor instead ***.
const Base_vect * get_triad() const
Returns the vectorial basis (triad) on which the components are defined.
int get_type_indice(int i) const
Returns the type of the index number i .
const Map * get_mp() const
Returns pointer on the mapping.
double get_poids() const
Returns the weight.
int get_valence() const
Returns the valence.
const Metrique * get_metric() const
Returns a pointer on the metric defining the conformal factor for tensor densities.
int get_etat() const
Returns the logical state.
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 &)