24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/vd.h" 32 #ifndef TENSOR_VARIANCE_H 33 #include "SheafSystem/tensor_variance.h" 36 #ifndef TP_TABLE_DOFS_TYPE_H 37 #include "SheafSystem/tp_table_dofs_type.h" 119 virtual int p()
const;
124 virtual int dd()
const;
152 virtual int d()
const;
182 virtual const std::string& class_name()
const;
187 static const std::string& static_class_name();
192 virtual tp_lite* clone()
const;
210 virtual bool is_ancestor_of(
const any_lite& xother)
const;
216 bool invariant()
const;
253 class SHEAF_DLL_SPEC
tp :
public vd 276 static const poset_path& standard_schema_path();
362 tp& operator=(
const tp& xother);
380 virtual int p()
const;
386 int p(
bool xauto_access)
const;
391 virtual int dd()
const;
396 virtual int dd(
bool xauto_access)
const;
406 poset_path vector_space_path(
bool xauto_access)
const;
411 virtual tp_space& vector_space()
const;
416 virtual tp_space& vector_space(
bool xauto_access)
const;
421 static const std::string create_tensor_space_name(
const std::string& xvector_space_name,
const std::string& xname);
426 virtual const volatile_type& lite_prototype()
const;
431 virtual volatile_type* lite_type()
const;
442 virtual bool variance(
int xi,
bool xauto_access)
const;
447 void put_variance(
const tensor_variance& xvariance,
bool xauto_access);
452 void put_variance(
int xi,
bool xvariance,
bool xauto_access);
457 virtual bool is_covariant(
bool xauto_access)
const;
462 virtual bool is_covariant(
int xi,
bool xauto_access)
const;
467 virtual void put_is_covariant(
bool xauto_access);
472 void put_is_covariant(
int xi,
bool xauto_access);
477 virtual bool is_contravariant(
bool xauto_access)
const;
482 virtual bool is_contravariant(
int xi,
bool xauto_access)
const;
487 virtual void put_is_contravariant(
bool xauto_access);
492 void put_is_contravariant(
int xi,
bool xauto_access);
535 virtual const std::string& class_name()
const;
540 static const std::string& static_class_name();
547 inline tp*
clone(
bool xnew_state,
bool xauto_access =
true)
const 549 return static_cast<tp*
>(
vd::clone(xnew_state, xauto_access));
568 host_type* host()
const;
591 bool is_ancestor_of(
const any* other)
const;
596 virtual tp* clone()
const;
601 bool invariant()
const;
615 #ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 622 #endif // ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 649 SHEAF_DLL_SPEC
void contract(
const tp& x0,
int xp,
int xq,
tp& xresult,
664 template <
typename T0>
672 SHEAF_DLL_SPEC
void alt(
const tp& x0,
tp& xresult,
bool xauto_access);
684 template <
typename T0>
692 SHEAF_DLL_SPEC
void sym(
const tp& x0,
tp& xresult,
bool xauto_access);
698 template <
typename T0>
700 sym(
const T0& x0,
bool xauto_access);
714 SHEAF_DLL_SPEC
void tensor(
const tp& x0,
const tp& x1,
tp& xresult,
bool xauto_access);
720 template <
typename T0,
typename T1>
722 tensor(
const T0& x0,
const T1& x1);
728 template <
typename T0,
typename T1>
730 tensor(
const T0& x0,
const T1& x1,
bool xauto_access);
740 #endif // ifndef TP_H static_const_int
The degree of this tensor space.
void alt(const GT &x0, AT &xresult, bool xauto_access)
void sym(const GT &x0, ST &xresult, bool xauto_access)
The "type" of a tensor; specifies the degree and the co- or contra-variance for each index of a tenso...
The default name space; a poset which contains other posets as members.
A general antisymmetric tensor of degree 1 over an abstract vector space (persistent version)...
The standard fiber bundles name space; extends the standard sheaves namespace by defining base space...
A client handle for a general, abstract partially order set.
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
tp_lite volatile_type
The associated volatile type.
static_const_int
The degree of this tensor space.
A general tensor of "degree" p and given "variance" over an abstract vector space.
Abstract base class with useful features for all volatile objects.
Abstract base class with useful features for all objects.
Abstract vector space over dof_type (volatile version).
Tensor types of degree P over VECTOR_TYPE. No generic implementation defined, must be specialized for...
at1 vector_space_type
The type of the underlying vector space.
An index within the external ("client") scope of a given id space.
vd_lite vector_space_type
Type of underlying vector space.
tp_table_dofs_type table_dofs_type
The type of the table dofs.
SHEAF_DLL_SPEC tensor_variance contract(const tensor_variance &x0, int xp, int xq)
The variance of the contration of a tensor with variance x0 on indices xp and xq. ...
A general tensor of degree p over an abstract vector space (volatile version). Volatile version does ...
tp * clone(bool xnew_state, bool xauto_access=true) const
Make a new handle instance of current. Attach the new instance to a new state if xnew_state is true...
Table dofs type for class tp.
tp_table_dofs_type table_dofs_type
The type of the table dofs.
T::table_dofs_type & table_dofs(T &x0)
The table dofs pod type for x0 (mutable version).
int_type pod_index_type
The plain old data index type.
tp_space host_type
The type of host poset.
virtual vd * clone() const
Make a new handle, no state instance of current.
An abstract client handle for a member of a poset.
An abstract tensor space of degree p.
Namespace for the fiber_bundles component of the sheaf system.
Abstract vector space over dof_type.
Row dofs type for class vd.
void tensor(const S0 &x0, const S1 &x1, SR &xresult, bool xauto_access)
SHEAF_DLL_SPEC std::ostream & operator<<(std::ostream &os, const binary_index &xbi)
Insert binary_index& xbi into ostream& os.