KADATH
term_eq.hpp
1 /*
2  Copyright 2017 Philippe Grandclement
3 
4  This file is part of Kadath.
5 
6  Kadath is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  Kadath is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with Kadath. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #ifndef __TERM_EQ_HPP_
21 #define __TERM_EQ_HPP_
22 
23 #include "tensor.hpp"
24 #include "metric_tensor.hpp"
25 #include "tensor_impl.hpp"
26 
27 #define TERM_D 0
28 #define TERM_T 1
29 namespace Kadath {
30  class Term_eq ;
31 
32  ostream& operator<< (ostream&, const Term_eq&) ;
33  Term_eq operator+ (const Term_eq&, const Term_eq&) ;
34  Term_eq operator- (const Term_eq&, const Term_eq&) ;
35  Term_eq operator* (const Term_eq&, const Term_eq&) ;
36  Term_eq operator/ (const Term_eq&, const Term_eq&) ;
37 
38  Term_eq pow (const Term_eq&, int) ;
39  Term_eq operator* (int, const Term_eq&) ;
40  Term_eq operator* (const Term_eq&, int) ;
41  Term_eq operator* (double, const Term_eq&) ;
42  Term_eq operator* (const Term_eq&, double) ;
43  Term_eq operator/ (const Term_eq&, double) ;
44  Term_eq partial (const Term_eq&, char) ;
45  Term_eq bessel_jl (const Term_eq&, int) ;
46  Term_eq bessel_yl (const Term_eq&, int) ;
47  Term_eq bessel_djl (const Term_eq&, int) ;
48  Term_eq bessel_dyl (const Term_eq&, int) ;
49  Term_eq sqrt (const Term_eq&) ;
50  Term_eq div_1mx2 (const Term_eq&) ;
51 
52  Term_eq scalar_product (const Term_eq&, const Term_eq&) ;
53 
62  class Term_eq : public Memory_mapped {
63 
64  protected:
65  const int dom ;
66  double* val_d ;
67  double* der_d ;
75  const int type_data ;
76 
77  public:
83  Term_eq (int dom, int val) ;
89  Term_eq (int dom, double val) ;
96  Term_eq (int dom, double val, double der) ;
102  Term_eq (int dom, const Tensor& val) ;
109  Term_eq (int dom, const Tensor& val, const Tensor& der) ;
110  Term_eq (const Term_eq&) ;
111  ~Term_eq() ;
112 
113  Term_eq(Term_eq&&) noexcept;
114  Term_eq & operator=(Term_eq &&) noexcept;
115 
116  double get_val_d() const ;
117  double get_der_d() const ;
118  Tensor const & get_val_t() const ;
119  Tensor const & get_der_t() const ;
123  const Tensor* get_p_val_t() const {return val_t;} ;
127  const Tensor* get_p_der_t() const {return der_t;} ;
131  int get_type_data() const {return type_data ;} ;
135  int get_dom() const {return dom ;} ;
136 
137  void operator= (const Term_eq&) ;
138 
139  void set_val_d (double) ;
140  void set_der_d (double) ;
141  void set_val_t (Tensor) ;
142  void set_der_t (Tensor) ;
143  void set_der_zero() ;
147  Tensor* set_val_t() {return val_t;} ;
151  Tensor* set_der_t() {return der_t;} ;
152 
157  Term_eq der_abs(int i) const ;
158 
159  friend ostream& operator<< (ostream&, const Term_eq&) ;
160  friend Term_eq operator+ (const Term_eq&, const Term_eq&) ;
161  friend Term_eq operator- (const Term_eq&, const Term_eq&) ;
162  friend Term_eq operator* (const Term_eq&, const Term_eq&) ;
163  friend Term_eq operator/ (const Term_eq&, const Term_eq&) ;
164  friend Term_eq scalar_product (const Term_eq&, const Term_eq&) ;
165 
166  friend Term_eq operator* (int, const Term_eq&) ;
167  friend Term_eq operator* (const Term_eq&, int) ;
168  friend Term_eq operator* (double, const Term_eq&) ;
169  friend Term_eq operator* (const Term_eq&, double) ;
170  friend Term_eq operator* (const Scalar&, const Term_eq&) ;
171  friend Term_eq operator/ (const Term_eq&, double) ;
172  friend Term_eq sqrt (const Term_eq&) ;
173  friend Term_eq partial (const Term_eq&, char) ;
174 
175  friend Term_eq div_1mx2 (const Term_eq&) ;
176 
177  friend Term_eq bessel_jl (const Term_eq&, int) ;
178  friend Term_eq bessel_yl (const Term_eq&, int) ;
179  friend Term_eq bessel_djl (const Term_eq&, int) ;
180  friend Term_eq bessel_dyl (const Term_eq&, int) ;
181  friend Term_eq fjl (const Space&, int, int , const Term_eq& , const Param& ) ;
182  friend Term_eq fyl (const Space&, int, int , const Term_eq& , const Param& ) ;
183 
184  friend Term_eq operator+ (const Term_eq&, double) ;
185  friend Term_eq operator+ (double, const Term_eq&) ;
186  friend Term_eq operator- (const Term_eq&) ;
187 
188  friend class Ope_lap ;
189  friend class Ope_lap2 ;
190  friend class Ope_dn ;
191  friend class Ope_int ;
192  friend class Ope_grad ;
193  friend class Ope_id ;
194  friend class Ope_der ;
195  friend class Ope_der_flat ;
196  friend class Ope_der_background ;
197  friend class Ope_mult_r ;
198  friend class Ope_mult_x ;
199  friend class Ope_div_rsint ;
200  friend class Ope_mult_rsint ;
201  friend class Ope_div_r ;
202  friend class Ope_div_sint ;
203  friend class Ope_div_cost ;
204  friend class Ope_mult_sint ;
205  friend class Ope_div_xpone ;
206  friend class Ope_partial ;
207  friend class Ope_partial_var ;
208  friend class Ope_determinant ;
209  friend class Ope_inverse ;
210  friend class Ope_inverse_nodet ;
211  friend class Ope_mode ;
212  friend class Ope_val_mode ;
213  friend class Ope_val ;
214  friend class Ope_point ;
215  friend class Ope_val_ori ;
216  friend class Ope_sqrt ;
217  friend class Ope_sqrt_anti ;
218  friend class Ope_sqrt_nonstd ;
219  friend class Ope_def ;
220  friend class Ope_def_global ;
221  friend class Ope_srdr ;
222  friend class Ope_ddp ;
223  friend class Ope_ddt ;
224  friend class Ope_dt ;
225  friend class Ope_ddr ;
226  friend class Ope_dr ;
227  friend class Ope_exp ;
228  friend class Ope_log ;
229  friend class Ope_atanh;
230  friend class Ope_cosh;
231  friend class Ope_sinh;
232  friend class Ope_cos;
233  friend class Ope_sin;
234  friend class Ope_int_volume ;
235  friend class Ope_fit_waves ;
236  friend class Ope_change_basis ;
237  friend class Ope_mult_1mrsL ;
238  friend class Ope_div_1mrsL ;
239  friend class Ope_div_1mx2 ;
240  friend class Ope_dtime ;
241  friend class Ope_ddtime ;
242  friend class Ope_conjug ;
243  friend class Domain ;
244  friend class Domain_nucleus ;
245  friend class Domain_shell ;
246  friend class Domain_compact ;
247  friend class Domain_shell_outer_adapted ;
248  friend class Domain_shell_inner_adapted ;
249  friend class Domain_polar_shell_outer_adapted ;
250  friend class Domain_polar_shell_inner_adapted ;
251  friend class Domain_polar_shell_inner_homothetic ;
252  friend class Domain_polar_shell_outer_homothetic ;
253  friend class Domain_bispheric_rect ;
254  friend class Domain_bispheric_eta_first ;
255  friend class Domain_bispheric_chi_first ;
256  friend class Domain_nucleus_symphi ;
257  friend class Domain_shell_symphi ;
258  friend class Domain_compact_symphi ;
259  friend class Metric ;
260  friend class Metric_general ;
261  friend class Metric_flat ;
262  friend class Metric_dirac ;
263  friend class Metric_dirac_const ;
264  friend class Metric_harmonic ;
265  friend class Metric_conf ;
266  friend class Metric_const ;
267  friend class Metric_ADS ;
268  friend class Metric_AADS ;
269  friend class Metric_conf_factor ;
270  friend class Metric_conf_factor_const ;
271  friend class System_of_eqs ;
272  friend class Space_spheric_adapted ;
273  friend class Space_polar_adapted ;
274  friend class Space_bin_ns ;
275  friend class Space_bin_bh ;
276  friend class Metric_flat_nophi ;
277  friend class Metric_nophi ;
278  friend class Metric_nophi_const ;
279  friend class Metric_nophi_AADS ;
280  friend class Metric_nophi_AADS_const ;
281  friend class Metric_cfc ;
282  friend class Domain_polar_periodic_nucleus ;
283  friend class Domain_polar_periodic_shell ;
284  friend class Space_polar_periodic ;
285  friend class Space_adapted_bh ;
286  friend class Space_bbh ;
287  } ;
288 
289  inline Term_eq::Term_eq (int dd, int tipe) :
290  dom{dd}, val_d{nullptr}, der_d{nullptr}, val_t{nullptr}, der_t{nullptr}, type_data {tipe}
291  {
292  assert ((tipe==TERM_D) || (tipe==TERM_T)) ;
293  }
294 
295  inline Term_eq::Term_eq (int dd, double vx) :
296  dom{dd}, val_d{new double{vx}}, der_d{nullptr}, val_t{nullptr}, der_t{nullptr}, type_data {TERM_D}
297  {}
298 
299  inline Term_eq::Term_eq (int dd, double vx, double dx) :
300  dom{dd}, val_d{new double{vx}}, der_d{new double{dx}} , val_t{nullptr}, der_t{nullptr}, type_data {TERM_D}
301  {}
302 
303  inline Term_eq::Term_eq(Kadath::Term_eq &&so) noexcept :
304  dom{so.dom},
305  val_d{so.val_d},
306  der_d{so.der_d},
307  val_t{so.val_t},
308  der_t{so.der_t},
309  type_data{so.type_data}
310  {
311  so.val_d = nullptr;
312  so.der_d = nullptr;
313  so.val_t = nullptr;
314  so.der_t = nullptr;
315  }
316 
317  inline Term_eq& Term_eq::operator=(Term_eq && so) noexcept
318  {
319  assert(dom == so.dom && type_data == so.type_data);
320  std::swap(val_d,so.val_d);
321  std::swap(der_d,so.der_d);
322  std::swap(val_t,so.val_t);
323  std::swap(der_t,so.der_t);
324  return *this;
325  }
326 
327  inline double Term_eq::get_val_d() const {
328 #ifndef REMOVE_ALL_CHECKS
329  if (type_data!=TERM_D) {
330  cerr << "Wrong type of data in Term_eq" << endl ;
331  abort() ;
332  }
333  if (val_d ==nullptr) {
334  cerr << "val_d uninitialised in Term_eq" << endl ;
335  abort() ;
336  }
337 #endif
338  return *val_d ;
339  }
340 
341  inline double Term_eq::get_der_d() const {
342 #ifndef REMOVE_ALL_CHECKS
343  if (type_data!=TERM_D) {
344  cerr << "Wrong type of data in Term_eq" << endl ;
345  abort() ;
346  }
347  if (der_d ==nullptr) {
348  cerr << "der_d uninitialised in Term_eq" << endl ;
349  abort() ;
350  }
351 #endif
352  return *der_d ;
353  }
354 
355  inline Tensor const & Term_eq::get_val_t() const {
356 #ifndef REMOVE_ALL_CHECKS
357  if (type_data!=TERM_T) {
358  cerr << "Wrong type of data in Term_eq" << endl ;
359  abort() ;
360  }
361  if (val_t ==nullptr) {
362  cerr << "val_t uninitialised in Term_eq" << endl ;
363  abort() ;
364  }
365 #endif
366  return *val_t ;
367  }
368 
369  inline Tensor const & Term_eq::get_der_t() const {
370 #ifndef REMOVE_ALL_CHECKS
371  if (type_data!=TERM_T) {
372  cerr << "Wrong type of data in Term_eq" << endl ;
373  abort() ;
374  }
375  if (der_t ==nullptr) {
376  cerr << "der_t uninitialised in Term_eq" << endl ;
377  abort() ;
378  }
379 #endif
380  return *der_t ;
381  }
382 
383  inline void Term_eq::set_val_d (double so) {
384 #ifndef REMOVE_ALL_CHECKS
385  if (type_data!=TERM_D) {
386  cerr << "Wrong type of data in Term_eq" << endl ;
387  abort() ;
388  }
389 #endif
390  if (val_d!=nullptr)
391  delete val_d ;
392  val_d = new double(so) ;
393  }
394 
395  inline void Term_eq::set_der_d (double so) {
396 #ifndef REMOVE_ALL_CHECKS
397  if (type_data!=TERM_D) {
398  cerr << "Wrong type of data in Term_eq" << endl ;
399  abort() ;
400  }
401 #endif
402  if (der_d!=nullptr)
403  delete der_d ;
404  der_d = new double(so) ;
405  }
406 }
407 #endif
Class for bispherical coordinates with a symmetry with respect to the plane .
Definition: bispheric.hpp:460
Class for bispherical coordinates with a symmetry with respect to the plane .
Definition: bispheric.hpp:878
Class for bispherical coordinates with a symmetry with respect to the plane .
Definition: bispheric.hpp:64
Class for a spherical compactified domain and a symmetry with respect to the plane and a quadrant sy...
Class for a spherical compactified domain and a symmetry with respect to the plane .
Definition: spheric.hpp:1007
Class for a spherical domain containing the origin a symmetry with respect to the plane and an quadr...
Class for a spherical domain containing the origin and a symmetry with respect to the plane .
Definition: spheric.hpp:66
Class for a spherical nucleus with a symmetry in .
Class for a spherical shell with a symmetry in .
Class for a spherical-like domain, having a symmetry with respect to the plane .
Class for a spherical-like domain, having a symmetry with respect to the plane .
Class for a spherical-like domain, having a symmetry with respect to the plane .
Definition: adapted.hpp:51
Class for a spherical-like domain, having a symmetry with respect to the plane .
Definition: adapted.hpp:367
Class for a spherical shell and a symmetry with respect to the plane and an quadrant symmetry wrt .
Class for a spherical shell and a symmetry with respect to the plane .
Definition: spheric.hpp:555
Abstract class that implements the fonctionnalities common to all the type of domains.
Definition: space.hpp:60
Class to manage asymptotically anti de Sitter metrics.
Class to manage anti de Sitter metrics.
Definition: metric_AADS.hpp:45
Class to deal with a metric with a conformaly flat metric.
Definition: metric.hpp:632
Class to deal with a metric with a conformal decomposition (mainly used for AADS spacetimes) The true...
Definition: metric.hpp:562
Class to deal with a metric which determinant is 1.
Definition: metric.hpp:443
Class to deal with arbitrary type of metric but that is constant.
Definition: metric.hpp:416
Class to deal with a conformal metric in the Dirac gauge.
Definition: metric.hpp:510
Class to deal with a conformal metric in the Dirac gauge.
Definition: metric.hpp:485
Class that deals with flat metric assuming a axisymmetric setting (nothing depends on ).
Class that deals with flat metric.
Definition: metric.hpp:222
Class to deal with arbitrary type of metric.
Definition: metric.hpp:379
Class to deal with a metric in the spatial harmonic gauge.
Definition: metric.hpp:535
Class to deal with a metric independant of with a conformal decomposition and constant.
Class to deal with a metric independant of with a conformal decomposition (mainly used for AADS spac...
Class to deal with a metric independant of and constant.
Class to deal with a metric independant of .
Purely abstract class for metric handling.
Definition: metric.hpp:39
Operator inverse hyperbolic tangent (only defined for a scalar field or a double)
Definition: ope_eq.hpp:1168
Operator changin the tensorial basis of a field.
Definition: ope_eq.hpp:1317
Complex conjugate (only changes the m_quant parameter so far).
Definition: ope_eq.hpp:1363
Operator cosine (only defined for a scalar field or a double)
Definition: ope_eq.hpp:1186
Operator hyperbolic cosine (only defined for a scalar field or a double)
Definition: ope_eq.hpp:1131
The operator second derivative wrt .
Definition: ope_eq.hpp:595
The operator second radial derivative.
Definition: ope_eq.hpp:559
The operator second derivative wrt .
Definition: ope_eq.hpp:631
Second time derivative Computes the second time derivative.
Definition: ope_eq.hpp:264
Operator for a global definition (i.e.
Definition: ope_eq.hpp:1340
The operator definition.
Definition: ope_eq.hpp:480
The operator covariant derivative with respect to the background metric.
Definition: ope_eq.hpp:414
The operator covariant derivative with respect to the flat metric.
Definition: ope_eq.hpp:389
The operator covariant derivative.
Definition: ope_eq.hpp:364
The operator determinant.
Definition: ope_eq.hpp:852
The operator division by (for AADS spacetimes).
Definition: ope_eq.hpp:759
The operator division by .
Definition: ope_eq.hpp:741
The operator division by .
Definition: ope_eq.hpp:703
The operator division by .
Definition: ope_eq.hpp:649
The operator division by .
Definition: ope_eq.hpp:667
The operator division by .
Definition: ope_eq.hpp:813
The operator division by .
Definition: ope_eq.hpp:723
The operator normal derivative Computes the derivative in the direction normal to a given boundary.
Definition: ope_eq.hpp:302
The operator first radial derivative.
Definition: ope_eq.hpp:577
The operator first derivative wrt .
Definition: ope_eq.hpp:613
The operator time derivative.
Definition: ope_eq.hpp:244
Operator exponential (only defined for a scalar field or a double)
Definition: ope_eq.hpp:1095
Operator that fits a field to outgoing waves (highly specialized stuff)
Definition: ope_eq.hpp:1222
The operator flat gradient Intended for systems where no metric has been defined.
Definition: ope_eq.hpp:325
The operator identity.
Definition: ope_eq.hpp:72
The operator volume integral (in a given Domain)
Definition: ope_eq.hpp:460
The operator surface integral.
Definition: ope_eq.hpp:438
The operator inverse (of a Metric_tensor ; i.e.
Definition: ope_eq.hpp:887
The operator inverse (of a Metric_tensor ; i.e.
Definition: ope_eq.hpp:869
The operator Laplacian 2D.
Definition: ope_eq.hpp:283
The operator Laplacian 3D.
Definition: ope_eq.hpp:225
Operator logarithm (only defined for a scalar field or a double)
Definition: ope_eq.hpp:1113
This operator gives the value of one coefficient of a field, on a given boundary.
Definition: ope_eq.hpp:926
The operator multiplication by (for AADS spacetimes).
Definition: ope_eq.hpp:777
The operator multiplication by .
Definition: ope_eq.hpp:503
The operator multiplication by .
Definition: ope_eq.hpp:685
The operator multiplication by .
Definition: ope_eq.hpp:795
The operator multiplication by (what it means depend on the Space considered).
Definition: ope_eq.hpp:521
The operator partial derivative wrt one variable (same thing as Ope_partial ??)
Definition: ope_eq.hpp:904
The operator partial derivative.
Definition: ope_eq.hpp:832
This operator gives the value of a field at a point (arbitrary not necesseraly a collocation one)
Definition: ope_eq.hpp:999
Operator sine (only defined for a scalar field or a double)
Definition: ope_eq.hpp:1204
Operator hyperbolic sine (only defined for a scalar field or a double)
Definition: ope_eq.hpp:1149
Operator square-root (only defined for a scalar field or a double).
Definition: ope_eq.hpp:1058
Operator square-root (only defined for a scalar field or a double).
Definition: ope_eq.hpp:1077
Operator square-root (only defined for a scalar field or a double)
Definition: ope_eq.hpp:1039
The operator multiplication by .
Definition: ope_eq.hpp:539
This operator gives the value of one coefficient of a field.
Definition: ope_eq.hpp:955
This operator gives the value of a field at the origin.
Definition: ope_eq.hpp:1020
This operator gives the value of a field at a given collocation point.
Definition: ope_eq.hpp:978
Parameter storage.
Definition: param.hpp:30
The class Scalar does not really implements scalars in the mathematical sense but rather tensorial co...
Definition: scalar.hpp:67
The Space_spheric_adapted class fills the space with one shell adapted on the inside,...
Definition: adapted_bh.hpp:36
Spacetime intended for binary black hole configurations in full general relativity (see constructor f...
Definition: bbh.hpp:33
Spacetime intended for binary black hole configurations (see constructor for details about the domain...
Definition: bin_bh.hpp:35
Spacetime intended for binary neutron stars configurations (see constructor for details about the dom...
Definition: bin_ns.hpp:35
The Space_polar_adapted class fills the space with one polar nucleus, one polar shell adapted on the ...
The Space_polar_periodic class fills the space with one polar nucleus and several polar shells,...
The Space_spheric_adapted class fills the space with one nucleus, one shell adapted on the outside,...
Definition: adapted.hpp:661
The Space class is an ensemble of domains describing the whole space of the computation.
Definition: space.hpp:1362
Class used to describe and solve a system of equations.
Tensor handling.
Definition: tensor.hpp:149
This class is intended to describe the manage objects appearing in the equations.
Definition: term_eq.hpp:62
friend Term_eq bessel_jl(const Term_eq &, int)
Bessel function.
Tensor * set_val_t()
Read/write accessor to the tensorial value.
Definition: term_eq.hpp:147
Tensor * der_t
Pointer on the variation, if the Term_eq is a Tensor.
Definition: term_eq.hpp:69
const int type_data
Flag describing the type of data :
Definition: term_eq.hpp:75
double * val_d
Pointer on the value, if the Term_eq is a double.
Definition: term_eq.hpp:66
friend Term_eq fyl(const Space &, int, int, const Term_eq &, const Param &)
Bessel function.
void set_der_d(double)
Sets the double variation.
Definition: term_eq.hpp:395
friend Term_eq fjl(const Space &, int, int, const Term_eq &, const Param &)
Bessel function.
friend Term_eq scalar_product(const Term_eq &, const Term_eq &)
Operator scalar product.
double get_der_d() const
Definition: term_eq.hpp:341
friend Term_eq sqrt(const Term_eq &)
Operator square root.
Term_eq & operator=(Term_eq &&) noexcept
Move assignment operator.
Definition: term_eq.hpp:317
double get_val_d() const
Definition: term_eq.hpp:327
int get_dom() const
Definition: term_eq.hpp:135
const Tensor * get_p_val_t() const
Definition: term_eq.hpp:123
void set_der_zero()
Sets the variation of the approriate type to zero.
Definition: term_eq.cpp:187
int get_type_data() const
Definition: term_eq.hpp:131
const int dom
Index of the Domain where the Term_eq is defined.
Definition: term_eq.hpp:65
Term_eq der_abs(int i) const
Computes the derivative wrt to an absolute coordinate (i.e.
friend Term_eq operator-(const Term_eq &, const Term_eq &)
Operator -.
void set_val_d(double)
Sets the double value.
Definition: term_eq.hpp:383
double * der_d
Pointer on the variation if the Term_eq is a double.
Definition: term_eq.hpp:67
friend Term_eq bessel_djl(const Term_eq &, int)
Bessel function.
const Tensor * get_p_der_t() const
Definition: term_eq.hpp:127
Tensor const & get_val_t() const
Definition: term_eq.hpp:355
friend Term_eq partial(const Term_eq &, char)
Operator partial derivative.
friend Term_eq bessel_dyl(const Term_eq &, int)
Bessel function.
friend Term_eq operator+(const Term_eq &, const Term_eq &)
Operator +.
Tensor const & get_der_t() const
Definition: term_eq.hpp:369
friend Term_eq operator/(const Term_eq &, const Term_eq &)
Operator /.
Term_eq(int dom, int val)
Constructor for a double type Term_eq.
Definition: term_eq.hpp:289
friend Term_eq bessel_yl(const Term_eq &, int)
Bessel function.
~Term_eq()
Destructor.
Definition: term_eq.cpp:104
Tensor * set_der_t()
Read/write accessor to the tensorial derivative.
Definition: term_eq.hpp:151
friend Term_eq div_1mx2(const Term_eq &)
Division by .
friend Term_eq operator*(const Term_eq &, const Term_eq &)
Operator *.
friend ostream & operator<<(ostream &, const Term_eq &)
Display.
Definition: term_eq.cpp:208
Tensor * val_t
Pointer on the value, if the Term_eq is a Tensor.
Definition: term_eq.hpp:68