33 char 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 $" ;
103 assert (t.
get_etat() != ETATNONDEF) ;
111 for (
int i=0 ; i<res.get_n_comp() ; i++) {
112 Itbl indices (res.donne_indices(i)) ;
113 res.
set(indices) = -t(indices) ;
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)) ;
176 assert (t.
get_etat() != ETATNONDEF) ;
177 if ( (t.
get_etat() == ETATZERO) || (x ==
double(1)) )
183 if ( x ==
double(0) )
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) ;
202 return double(m) * t ;
207 return double(m) * t ;
219 assert(t1.
get_etat() != ETATNONDEF) ;
220 assert(t2.
get_etat() != ETATNONDEF) ;
225 poids_res = (fabs(poids_res) < 1.e-10 ? 0. : poids_res) ;
226 const Metrique* met_res = 0x0 ;
227 if (poids_res != 0.) {
235 cout <<
"Division by 0 in Tenseur_sym / Tenseur !" << endl ;
251 *(t1.
get_triad()), met_res, poids_res ) ;
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() ;
265 assert (t.
get_etat() != ETATNONDEF) ;
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 ;
291 return t / double(m) ;
double get_poids() const
Returns the weight.
int get_type_indice(int i) const
Returns the type of the index number i .
int & set(int i)
Read/write of a particular element (index i ) (1D case)
void set_poids(double weight)
Sets the weight for a tensor density.
Class intended to describe tensors with a symmetry on the two last indices *** DEPRECATED : use class...
Base_val operator*(const Base_val &, const Base_val &)
This operator is used when calling multiplication or division of Valeur .
Basic integer array class.
Cmp operator/(const Cmp &, const Cmp &)
Cmp / Cmp.
int get_valence() const
Returns the valence.
void set_metric(const Metrique &met)
Sets the pointer on the metric for a tensor density.
const Map * get_mp() const
Returns pointer on the mapping.
const Metrique * get_metric() const
Returns a pointer on the metric defining the conformal factor for tensor densities.
Cmp operator+(const Cmp &)
const Base_vect * get_triad() const
Returns the vectorial basis (triad) on which the components are defined.
int get_etat() const
Returns the logical state.
Cmp operator-(const Cmp &)
- Cmp
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
void set_etat_zero()
Sets the logical state to ETATZERO (zero state).
Tensor handling *** DEPRECATED : use class Tensor instead ***.