SheafSystem  0.0.0.0
fiber_bundle::tp_algebra Namespace Reference

Namespace containing the general tensor algrebra functions for the fiber_bundles component of the sheaf system. More...

Functions

SHEAF_DLL_SPEC void contract (const t2_lite &x0, int xp, int xq, at0_lite &xresult)
 Contraction on contravariant index xp and covariant index xq (pre-allocated version for volatime types). The arguments xp and xq are indices into the "variance type" bitset. This implies that xp != xp (for t2 there only 2 choices xp=0, xq=1 and xp=1, xq=0). More...
 
SHEAF_DLL_SPEC void contract (const t2 &x0, int xp, int xq, at0 &xresult, bool xauto_access)
 Contraction on contravariant index xp and covariant index xq (pre-allocated, access control version for persistent types). The arguments xp and xq are indices into the "variance type" bitset. This implies that xp != xp (for t2 there only 2 choices xp=0, xq=1 and xp=1, xq=0). More...
 
SHEAF_DLL_SPEC void alt (const t2_lite &x0, at2_lite &xresult)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void alt (const t2 &x0, at2 &xresult, bool xauto_access)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void alt (const t2_lite &x0, t2_lite &xresult)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void sym (const t2_lite &x0, st2_lite &xresult)
 The symmetric part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void sym (const t2 &x0, st2 &xresult, bool xauto_access)
 The symmetric part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void sym (const t2_lite &x0, t2_lite &xresult)
 The symmetric part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void sym (const t2 &x0, t2 &xresult, bool xauto_access)
 The symmetric part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void tensor (const at1_lite &x0, const at1_lite &x1, t2_lite &xresult)
 Tensor product (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void tensor (const at1 &x0, const at1 &x1, t2 &xresult, bool xauto_access)
 Tensor product (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void contract (const t3_lite &x0, int xp, int xq, at1_lite &xresult)
 Contraction on contravariant index xp and covariant index xq (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void contract (const t3 &x0, int xp, int xq, at1 &xresult, bool xauto_access)
 Contraction on contravariant index xp and covariant index xq (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void alt (const t3_lite &x0, t3_lite &xresult)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void alt (const t3_lite &x0, at3_lite &xresult)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void alt (const t3 &x0, at3 &xresult, bool xauto_access)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void sym (const t3_lite &x0, t3_lite &xresult)
 The symmetric part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void sym (const t3_lite &x0, st3_lite &xresult)
 The symmetric part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void sym (const t3 &x0, st3 &xresult, bool xauto_access)
 The symmetric part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void tensor (const t2_lite &x0, const at1_lite &x1, t3_lite &xresult)
 Tensor product (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void tensor (const t2 &x0, const at1 &x1, t3 &xresult, bool xauto_access)
 Tensor product (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void tensor (const at1_lite &x0, const t2_lite &x1, t3_lite &xresult)
 Tensor product (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void tensor (const at1 &x0, const t2 &x1, t3 &xresult, bool xauto_access)
 Tensor product (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void tensor (const at2_lite &x0, const at1_lite &x1, t3_lite &xresult)
 Tensor product (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void tensor (const at2 &x0, const at1 &x1, t3 &xresult, bool xauto_access)
 Tensor product (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void tensor (const at1_lite &x0, const at2_lite &x1, t3_lite &xresult)
 Tensor product (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void tensor (const at1 &x0, const at2 &x1, t3 &xresult, bool xauto_access)
 Tensor product (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void tensor (const st2_lite &x0, const at1_lite &x1, t3_lite &xresult)
 Tensor product (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void tensor (const st2 &x0, const at1 &x1, t3 &xresult, bool xauto_access)
 Tensor product (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void tensor (const at1_lite &x0, const st2_lite &x1, t3_lite &xresult)
 Tensor product (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void tensor (const at1 &x0, const st2 &x1, t3 &xresult, bool xauto_access)
 Tensor product (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void alt (const t3_e3_lite &x0, at3_e3_lite &xresult)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void alt (const t3_e3 &x0, at3_e3 &xresult, bool xauto_access)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void sym (const t3_e3_lite &x0, st3_e3_lite &xresult)
 The symmetric part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void sym (const t3_e3 &x0, st3_e3 &xresult, bool xauto_access)
 The symmetric part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void sym (const t4_e2_lite &x0, st4_e2_lite &xresult)
 The symmetric part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void sym (const t4_e2 &x0, st4_e2 &xresult, bool xauto_access)
 The symmetric part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void sym (const t4_e3_lite &x0, st4_e3_lite &xresult)
 The symmetric part of tensor x0 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void sym (const t4_e3 &x0, st4_e3 &xresult, bool xauto_access)
 The symmetric part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void contract (const tp_lite &x0, int xp, int xq, tp_lite &xresult)
 Contraction on contravariant index xp and covariant index xq (pre-allocated version for volatile types). The arguments xp and xq are indices into the "variance type" bitset. This implies that xp != xq. More...
 
SHEAF_DLL_SPEC void contract (const tp &x0, int xp, int xq, tp &xresult, bool xauto_access)
 Contraction on contravariant index xp and covariant index xq (pre-allocated, access control version for persistent types). The arguments xp and xq are indices into the "variance type" bitset. This implies that xp != xq. More...
 
SHEAF_DLL_SPEC void alt (const tp_lite &x0, tp_lite &xresult)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types). More...
 
template<typename T0 >
tensor_traits< T0::P, typename T0::vector_space_type >::atp_type * alt (const T0 &x0)
 The alternating (antisymmetric) part of tensor x0 (auto-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void alt (const tp &x0, tp &xresult, bool xauto_access)
 The alternating (antisymmetric) part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC void sym (const tp_lite &x0, tp_lite &xresult)
 The symmetric part of tensor x0 (pre-allocated version for volatile types). More...
 
template<typename T0 >
tensor_traits< T0::P, typename T0::vector_space_type >::stp_type * sym (const T0 &x0)
 The symmetric part of tensor x0 (auto-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void sym (const tp &x0, tp &xresult, bool xauto_access)
 The symmetric part of tensor x0 (pre-allocated, access control version for persistent types). More...
 
template<typename T0 >
tensor_traits< T0::P, typename T0::vector_space_type >::stp_type * sym (const T0 &x0, bool xauto_access)
 The symmetric part of tensor x0 (auto-allocated version for persistent types). More...
 
SHEAF_DLL_SPEC void tensor (const tp_lite &x0, const tp_lite &x1, tp_lite &xresult)
 Tensor product (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void tensor (const tp &x0, const tp &x1, tp &xresult, bool xauto_access)
 Tensor product (pre-allocated, access control version for persistent types). More...
 
template<typename T0 , typename T1 >
tensor_traits< T0::P+T1::P, typename T0::vector_space_type >::tp_type * tensor (const T0 &x0, const T1 &x1)
 Tensor product (auto-allocated version for volatile types). More...
 
template<typename T0 , typename T1 >
tensor_traits< T0::P+T1::P, typename T0::vector_space_type >::tp_type * tensor (const T0 &x0, const T1 &x1, bool xauto_access)
 Tensor product (auto-allocated version for persistent types). More...
 
template<typename T0 >
tensor_traits< T0::P, typename T0::vector_space_type >::atp_type * alt (const T0 &x0, bool xauto_access)
 

Detailed Description

Namespace containing the general tensor algrebra functions for the fiber_bundles component of the sheaf system.

Function Documentation

◆ alt() [1/12]

template<typename T0 >
tensor_traits<T0::P, typename T0::vector_space_type>::atp_type* fiber_bundle::tp_algebra::alt ( const T0 &  x0,
bool  xauto_access 
)
Precondition
  • precondition_of(alt(x0, *result, xauto_access))
Postcondition
  • result != 0
  • postcondition_of(alt(x0, *result, xauto_access))

Definition at line 102 of file tp.impl.h.

References alt().

◆ alt() [2/12]

void fiber_bundle::tp_algebra::alt ( const t3_lite x0,
t3_lite xresult 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()
Postcondition
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1243 of file t3.cc.

References alt(), fiber_bundle::t3_lite::component(), fiber_bundle::tp_lite::dd(), and fiber_bundle::t3_lite::put_component().

◆ alt() [3/12]

void fiber_bundle::tp_algebra::alt ( const t2_lite x0,
at2_lite xresult 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()
Postcondition
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1176 of file t2.cc.

References fiber_bundle::t2_lite::component(), fiber_bundle::tp_lite::dd(), and fiber_bundle::at2_lite::put_component().

Referenced by fields::field_tp_algebra::alt(), fiber_bundle::sec_tp_algebra::alt(), alt(), contract(), fiber_bundle::sec_t2::invariant(), fiber_bundle::sec_t3::invariant(), and fiber_bundle::t3_e3::is_ancestor_of().

◆ alt() [4/12]

void fiber_bundle::tp_algebra::alt ( const t3_lite x0,
at3_lite xresult 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()
Postcondition
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1283 of file t3.cc.

References alt(), fiber_bundle::t3_lite::component(), fiber_bundle::tp_lite::dd(), and fiber_bundle::at3_lite::put_component().

◆ alt() [5/12]

void fiber_bundle::tp_algebra::alt ( const t2 x0,
at2 xresult,
bool  xauto_access 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • !x0.variance(xauto_access).is_mixed()
Postcondition
  • xresult.variance(xauto_access) == x0.variance(xauto_access)
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1208 of file t2.cc.

References alt(), fiber_bundle::t2::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tensor_variance::is_mixed(), fiber_bundle::at2::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and fiber_bundle::tp::variance().

◆ alt() [6/12]

void fiber_bundle::tp_algebra::alt ( const t3 x0,
at3 xresult,
bool  xauto_access 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x0.dd(xauto_access) == xresult.dd(xauto_access)
  • !x0.variance(xauto_access).is_mixed()
Postcondition
  • xresult.variance(xauto_access) == x0.variance(xauto_access)
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1323 of file t3.cc.

References fiber_bundle::t3::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tensor_variance::is_mixed(), fiber_bundle::at3::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), sym(), and fiber_bundle::tp::variance().

◆ alt() [7/12]

void fiber_bundle::tp_algebra::alt ( const t2_lite x0,
t2_lite xresult 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()
Postcondition
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1268 of file t2.cc.

References fiber_bundle::t2_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t2_lite::put_component(), and sym().

◆ alt() [8/12]

void fiber_bundle::tp_algebra::alt ( const tp_lite x0,
tp_lite xresult 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()

Definition at line 1554 of file tp.cc.

References alt(), and fiber_bundle::tp_lite::dd().

◆ alt() [9/12]

template<typename T0 >
tensor_traits< T0::P, typename T0::vector_space_type >::atp_type * fiber_bundle::tp_algebra::alt ( const T0 &  x0)

The alternating (antisymmetric) part of tensor x0 (auto-allocated version for volatile types).

Precondition
  • precondition_of(alt(x0, *result))
Postcondition
  • result != 0
  • postcondition_of(alt(x0, *result))
Precondition
  • precondition_of(alt(x0, *result))
Postcondition
  • result != 0
  • postcondition_of(alt(x0, *result))

Definition at line 44 of file tp.impl.h.

References alt().

◆ alt() [10/12]

void fiber_bundle::tp_algebra::alt ( const tp x0,
tp xresult,
bool  xauto_access 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x0.dd() == xresult.dd()

Definition at line 1609 of file tp.cc.

References alt(), fiber_bundle::tp::dd(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and sym().

◆ alt() [11/12]

void fiber_bundle::tp_algebra::alt ( const t3_e3_lite x0,
at3_e3_lite xresult 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated version for volatile types).

Postcondition
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1325 of file t3_e3.cc.

References alt(), fiber_bundle::t3_lite::component(), and fiber_bundle::at3_lite::put_component().

◆ alt() [12/12]

void fiber_bundle::tp_algebra::alt ( const t3_e3 x0,
at3_e3 xresult,
bool  xauto_access 
)

The alternating (antisymmetric) part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • !x0.variance(xauto_access).is_mixed()
Postcondition
  • xresult.variance(xauto_access) == x0.variance(xauto_access)
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1360 of file t3_e3.cc.

References fiber_bundle::t3::component(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tensor_variance::is_mixed(), fiber_bundle::at3::put_component(), fiber_bundle::tp::put_variance(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), sym(), and fiber_bundle::tp::variance().

◆ contract() [1/6]

void fiber_bundle::tp_algebra::contract ( const t3_lite x0,
int  xp,
int  xq,
at1_lite xresult 
)

Contraction on contravariant index xp and covariant index xq (pre-allocated version for volatile types).

Precondition
  • xp != xq
  • xp >= 0 && xp < x0.p()
  • xq >= 0 && xq < x0.p()
  • xresult.p() == x0.p() - 2
Postcondition
  • -unexecutable( "xresult is the contraction of x0 on indices xp and xq" )

Definition at line 1121 of file t3.cc.

References fiber_bundle::t3_lite::component(), contract(), fiber_bundle::tp_lite::dd(), fiber_bundle::t3_lite::index_for_ijk(), fiber_bundle::t3_lite::p(), fiber_bundle::at1_lite::p(), and fiber_bundle::vd_lite::put_component().

◆ contract() [2/6]

void fiber_bundle::tp_algebra::contract ( const t2_lite x0,
int  xp,
int  xq,
at0_lite xresult 
)

Contraction on contravariant index xp and covariant index xq (pre-allocated version for volatime types). The arguments xp and xq are indices into the "variance type" bitset. This implies that xp != xp (for t2 there only 2 choices xp=0, xq=1 and xp=1, xq=0).

Precondition
  • xp != xq
  • xp >= 0 && xp < x0.p()
  • xq >= 0 && xq < x0.p()
  • xresult.p() == x0.p() - 2

Definition at line 1091 of file t2.cc.

References fiber_bundle::t2_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t2_lite::p(), fiber_bundle::at0_lite::p(), and fiber_bundle::at0_lite::put_component().

Referenced by fields::field_tp_algebra::contract(), fields::field_vd_algebra::contract(), fiber_bundle::sec_tp_algebra::contract(), contract(), fiber_bundle::deep_size(), fiber_bundle::sec_t3::invariant(), fiber_bundle::sec_t2::invariant(), fiber_bundle::t3::is_ancestor_of(), fiber_bundle::t2::is_ancestor_of(), and fiber_bundle::operator<<().

◆ contract() [3/6]

void fiber_bundle::tp_algebra::contract ( const t3 x0,
int  xp,
int  xq,
at1 xresult,
bool  xauto_access 
)

Contraction on contravariant index xp and covariant index xq (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • xp != xq
  • xp >= 0 && xp < x0.p(xauto_access)
  • xq >= 0 && xq < x0.p(xauto_access)
  • x0.is_contravariant(xp, xauto_access) != \ x0.is_contravariant(xq, xauto_access)
Postcondition
  • -unexecutable( "xresult is the contraction of x0 on indices xp and xq" )
  • xresult.variance(xauto_access) == contract(x0.variance(false), xp, xq)

Definition at line 1172 of file t3.cc.

References alt(), fiber_bundle::t3::component(), contract(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::t3::index_for_ijk(), fiber_bundle::tp::is_contravariant(), fiber_bundle::tp::p(), fiber_bundle::vd::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and fiber_bundle::tp::variance().

◆ contract() [4/6]

void fiber_bundle::tp_algebra::contract ( const t2 x0,
int  xp,
int  xq,
at0 xresult,
bool  xauto_access 
)

Contraction on contravariant index xp and covariant index xq (pre-allocated, access control version for persistent types). The arguments xp and xq are indices into the "variance type" bitset. This implies that xp != xp (for t2 there only 2 choices xp=0, xq=1 and xp=1, xq=0).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • xp != xq
  • xp >= 0 && xp < x0.p(xauto_access)
  • xq >= 0 && xq < x0.p(xauto_access)
  • x0.is_contravariant(xp, xauto_access) != \ x0.is_contravariant(xq, xauto_access)

Definition at line 1125 of file t2.cc.

References alt(), fiber_bundle::t2::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tp::is_contravariant(), fiber_bundle::tp::p(), fiber_bundle::vd::put_component(), sheaf::poset_component::release_access(), and sheaf::read_write_monitor_handle::state_is_auto_read_accessible().

◆ contract() [5/6]

void fiber_bundle::tp_algebra::contract ( const tp_lite x0,
int  xp,
int  xq,
tp_lite xresult 
)

Contraction on contravariant index xp and covariant index xq (pre-allocated version for volatile types). The arguments xp and xq are indices into the "variance type" bitset. This implies that xp != xq.

Precondition
  • xp >= 0 && xp <= x0.p()
  • xq >= 0 && xq <= x0.p()
  • xresult.p() == x0.p() - 2

Definition at line 1470 of file tp.cc.

References contract(), and fiber_bundle::tp_lite::p().

◆ contract() [6/6]

void fiber_bundle::tp_algebra::contract ( const tp x0,
int  xp,
int  xq,
tp xresult,
bool  xauto_access 
)

Contraction on contravariant index xp and covariant index xq (pre-allocated, access control version for persistent types). The arguments xp and xq are indices into the "variance type" bitset. This implies that xp != xq.

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • xp >= 0 && xp <= x0.p(xauto_access)
  • xq >= 0 && xq <= x0.p(xauto_access)
  • xresult.p(xauto_access) == x0.p(xauto_access) - 2

Definition at line 1511 of file tp.cc.

References alt(), contract(), fiber_bundle::tp::p(), and sheaf::read_write_monitor_handle::state_is_auto_read_accessible().

◆ sym() [1/17]

void fiber_bundle::tp_algebra::sym ( const t3_lite x0,
t3_lite xresult 
)

The symmetric part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()
Postcondition
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1383 of file t3.cc.

References fiber_bundle::t3_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t3_lite::put_component(), and sym().

◆ sym() [2/17]

void fiber_bundle::tp_algebra::sym ( const t2_lite x0,
st2_lite xresult 
)

The symmetric part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()
Postcondition
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1301 of file t2.cc.

References fiber_bundle::t2_lite::component(), fiber_bundle::tp_lite::dd(), and fiber_bundle::st2_lite::put_component().

Referenced by alt(), fiber_bundle::sec_t2::invariant(), fiber_bundle::sec_t3::invariant(), fiber_bundle::t4_e2::is_ancestor_of(), fiber_bundle::t4_e3::is_ancestor_of(), fields::field_tp_algebra::sym(), fiber_bundle::sec_tp_algebra::sym(), and sym().

◆ sym() [3/17]

void fiber_bundle::tp_algebra::sym ( const t3_lite x0,
st3_lite xresult 
)

The symmetric part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()
Postcondition
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1422 of file t3.cc.

References fiber_bundle::t3_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::st3_lite::put_component(), and sym().

◆ sym() [4/17]

void fiber_bundle::tp_algebra::sym ( const t2 x0,
st2 xresult,
bool  xauto_access 
)

The symmetric part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x0.dd(xauto_access) == xresult.dd(xauto_access)
  • !x0.variance(xauto_access).is_mixed()
Postcondition
  • xresult.variance(xauto_access) == x0.variance(xauto_access)
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1334 of file t2.cc.

References fiber_bundle::t2::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tensor_variance::is_mixed(), fiber_bundle::st2::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), sym(), and fiber_bundle::tp::variance().

◆ sym() [5/17]

void fiber_bundle::tp_algebra::sym ( const t3 x0,
st3 xresult,
bool  xauto_access 
)

The symmetric part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x0.dd(xauto_access) == xresult.dd(xauto_access)
  • !x0.variance(xauto_access).is_mixed()
Postcondition
  • xresult.variance(xauto_access) == x0.variance(xauto_access)
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1461 of file t3.cc.

References fiber_bundle::t3::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tensor_variance::is_mixed(), fiber_bundle::st3::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), tensor(), and fiber_bundle::tp::variance().

◆ sym() [6/17]

void fiber_bundle::tp_algebra::sym ( const t2_lite x0,
t2_lite xresult 
)

The symmetric part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()
Postcondition
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1395 of file t2.cc.

References fiber_bundle::t2_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t2_lite::put_component(), and sym().

◆ sym() [7/17]

void fiber_bundle::tp_algebra::sym ( const t2 x0,
t2 xresult,
bool  xauto_access 
)

The symmetric part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x0.dd() == xresult.dd()
  • !x0.variance(xauto_access).is_mixed()
Postcondition
  • xresult.variance(xauto_access) == x0.variance(xauto_access)
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1428 of file t2.cc.

References fiber_bundle::t2::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tensor_variance::is_mixed(), fiber_bundle::t2::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), tensor(), and fiber_bundle::tp::variance().

◆ sym() [8/17]

void fiber_bundle::tp_algebra::sym ( const tp_lite x0,
tp_lite xresult 
)

The symmetric part of tensor x0 (pre-allocated version for volatile types).

Precondition
  • x0.dd() == xresult.dd()

Definition at line 1666 of file tp.cc.

References fiber_bundle::tp_lite::dd(), and sym().

◆ sym() [9/17]

void fiber_bundle::tp_algebra::sym ( const t4_e2_lite x0,
st4_e2_lite xresult 
)

The symmetric part of tensor x0 (pre-allocated version for volatile types).

Postcondition
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1272 of file t4_e2.cc.

References fiber_bundle::t4_lite::component(), fiber_bundle::t4_e2_lite::dd(), fiber_bundle::st4_lite::put_component(), and sym().

◆ sym() [10/17]

template<typename T0 >
tensor_traits< T0::P, typename T0::vector_space_type >::stp_type * fiber_bundle::tp_algebra::sym ( const T0 &  x0)

The symmetric part of tensor x0 (auto-allocated version for volatile types).

Precondition
  • precondition_of(sym(x0, *result))
Postcondition
  • result != 0
  • postcondition_of(sym(x0, *result))
Precondition
  • precondition_of(sym(x0, *result))
Postcondition
  • result != 0
  • postcondition_of(sym(x0, *result))

Definition at line 73 of file tp.impl.h.

References sym().

◆ sym() [11/17]

void fiber_bundle::tp_algebra::sym ( const t4_e2 x0,
st4_e2 xresult,
bool  xauto_access 
)

The symmetric part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • !x0.variance(xauto_access).is_mixed()
Postcondition
  • xresult.variance(xauto_access) == x0.variance(xauto_access)
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1334 of file t4_e2.cc.

References fiber_bundle::t4::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tensor_variance::is_mixed(), fiber_bundle::st4::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and fiber_bundle::tp::variance().

◆ sym() [12/17]

void fiber_bundle::tp_algebra::sym ( const tp x0,
tp xresult,
bool  xauto_access 
)

The symmetric part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x0.dd() == xresult.dd()

Definition at line 1733 of file tp.cc.

References fiber_bundle::tp::dd(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), sym(), and tensor().

◆ sym() [13/17]

template<typename T0 >
tensor_traits< T0::P, typename T0::vector_space_type >::stp_type * fiber_bundle::tp_algebra::sym ( const T0 &  x0,
bool  xauto_access 
)

The symmetric part of tensor x0 (auto-allocated version for persistent types).

Precondition
  • precondition_of(sym(x0, *result, xauto_access))
Postcondition
  • result != 0
  • postcondition_of(sym(x0, *result, xauto_access))
Precondition
  • precondition_of(sym(x0, *result, xauto_access))
Postcondition
  • result != 0
  • postcondition_of(sym(x0, *result, xauto_access))

Definition at line 131 of file tp.impl.h.

References sym().

◆ sym() [14/17]

void fiber_bundle::tp_algebra::sym ( const t4_e3_lite x0,
st4_e3_lite xresult 
)

The symmetric part of tensor x0 (pre-allocated version for volatile types).

Postcondition
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1230 of file t4_e3.cc.

References fiber_bundle::t4_lite::component(), fiber_bundle::t4_e3_lite::dd(), fiber_bundle::st4_lite::put_component(), and sym().

◆ sym() [15/17]

void fiber_bundle::tp_algebra::sym ( const t3_e3_lite x0,
st3_e3_lite xresult 
)

The symmetric part of tensor x0 (pre-allocated version for volatile types).

Postcondition
  • -unexecutable( "xresult is equal to the symmetric part of x0" )

Definition at line 1407 of file t3_e3.cc.

References fiber_bundle::t3_lite::component(), fiber_bundle::t3_e3_lite::dd(), fiber_bundle::st3_lite::put_component(), and sym().

◆ sym() [16/17]

void fiber_bundle::tp_algebra::sym ( const t4_e3 x0,
st4_e3 xresult,
bool  xauto_access 
)

The symmetric part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • !x0.variance(xauto_access).is_mixed()
Postcondition
  • xresult.variance(xauto_access) == x0.variance(xauto_access)
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1292 of file t4_e3.cc.

References fiber_bundle::t4::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tensor_variance::is_mixed(), fiber_bundle::st4::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and fiber_bundle::tp::variance().

◆ sym() [17/17]

void fiber_bundle::tp_algebra::sym ( const t3_e3 x0,
st3_e3 xresult,
bool  xauto_access 
)

The symmetric part of tensor x0 (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • !x0.variance(xauto_access).is_mixed()
Postcondition
  • xresult.variance(xauto_access) == x0.variance(xauto_access)
  • -unexecutable( "xresult is equal to the antisymmetric part of x0" )

Definition at line 1445 of file t3_e3.cc.

References fiber_bundle::t3::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tensor_variance::is_mixed(), fiber_bundle::st3::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and fiber_bundle::tp::variance().

◆ tensor() [1/18]

void fiber_bundle::tp_algebra::tensor ( const t2_lite x0,
const at1_lite x1,
t3_lite xresult 
)

Tensor product (pre-allocated version for volatile types).

Precondition
  • x1.dd() == x0.dd()
  • xresult.dd() == x0.dd()

Definition at line 1521 of file t3.cc.

References fiber_bundle::t2_lite::component(), fiber_bundle::vd_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t3_lite::put_component(), and tensor().

◆ tensor() [2/18]

void fiber_bundle::tp_algebra::tensor ( const t2 x0,
const at1 x1,
t3 xresult,
bool  xauto_access 
)

Tensor product (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • x1.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x1.dd(xauto_access) == x0.dd(xauto_access)
  • xresult.dd(xauto_access) == x0.dd(xauto_access)
Postcondition
  • xresult.variance(xauto_access) == \ tensor_product(x0.variance(xauto_access), x1.variance(xauto_access))

Definition at line 1558 of file t3.cc.

References fiber_bundle::t2::component(), fiber_bundle::vd::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::t3::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), tensor(), fiber_bundle::tensor_product(), and fiber_bundle::tp::variance().

◆ tensor() [3/18]

void fiber_bundle::tp_algebra::tensor ( const at1_lite x0,
const at1_lite x1,
t2_lite xresult 
)

Tensor product (pre-allocated version for volatile types).

Precondition
  • x1.dd() == x0.dd()
  • xresult.dd() == x0.dd()

Definition at line 1488 of file t2.cc.

References fiber_bundle::vd_lite::component(), fiber_bundle::tp_lite::dd(), and fiber_bundle::t2_lite::put_component().

Referenced by fiber_bundle::sec_t2::invariant(), fiber_bundle::sec_t3::invariant(), sym(), fields::field_tp_algebra::tensor(), fiber_bundle::sec_tp_algebra::tensor(), and tensor().

◆ tensor() [4/18]

void fiber_bundle::tp_algebra::tensor ( const at1 x0,
const at1 x1,
t2 xresult,
bool  xauto_access 
)

Tensor product (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • x1.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x1.dd(xauto_access) == x0.dd(xauto_access)
  • xresult.dd(xauto_access) == x0.dd(xauto_access)
Postcondition
  • xresult.variance(xauto_access) == tensor_product(x0.variance(xauto_access), x1.variance(xauto_access))

Definition at line 1523 of file t2.cc.

References fiber_bundle::vd::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::t2::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), fiber_bundle::tensor_product(), and fiber_bundle::tp::variance().

◆ tensor() [5/18]

void fiber_bundle::tp_algebra::tensor ( const at1_lite x0,
const t2_lite x1,
t3_lite xresult 
)

Tensor product (pre-allocated version for volatile types).

Precondition
  • x1.dd() == x0.dd()
  • xresult.dd() == x0.dd()

Definition at line 1619 of file t3.cc.

References fiber_bundle::t2_lite::component(), fiber_bundle::vd_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t3_lite::put_component(), and tensor().

◆ tensor() [6/18]

void fiber_bundle::tp_algebra::tensor ( const at1 x0,
const t2 x1,
t3 xresult,
bool  xauto_access 
)

Tensor product (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • x1.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x1.dd(xauto_access) == x0.dd(xauto_access)
  • xresult.dd(xauto_access) == x0.dd(xauto_access)
Postcondition
  • xresult.variance(xauto_access) == \ tensor_product(x0.variance(xauto_access), x1.variance(xauto_access))

Definition at line 1656 of file t3.cc.

References fiber_bundle::t2::component(), fiber_bundle::vd::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::t3::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), tensor(), fiber_bundle::tensor_product(), and fiber_bundle::tp::variance().

◆ tensor() [7/18]

void fiber_bundle::tp_algebra::tensor ( const at2_lite x0,
const at1_lite x1,
t3_lite xresult 
)

Tensor product (pre-allocated version for volatile types).

Precondition
  • x1.dd() == x0.dd()
  • xresult.dd() == x0.dd()

Definition at line 1722 of file t3.cc.

References fiber_bundle::at2_lite::component(), fiber_bundle::vd_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t3_lite::put_component(), and tensor().

◆ tensor() [8/18]

void fiber_bundle::tp_algebra::tensor ( const at2 x0,
const at1 x1,
t3 xresult,
bool  xauto_access 
)

Tensor product (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • x1.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x1.dd(xauto_access) == x0.dd(xauto_access)
  • xresult.dd(xauto_access) == x0.dd(xauto_access)
Postcondition
  • xresult.variance(xauto_access) == \ tensor_product(x0.variance(xauto_access), x1.variance(xauto_access))

Definition at line 1758 of file t3.cc.

References fiber_bundle::at2::component(), fiber_bundle::vd::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::t3::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), tensor(), fiber_bundle::tensor_product(), and fiber_bundle::tp::variance().

◆ tensor() [9/18]

void fiber_bundle::tp_algebra::tensor ( const at1_lite x0,
const at2_lite x1,
t3_lite xresult 
)

Tensor product (pre-allocated version for volatile types).

Precondition
  • x1.dd() == x0.dd()
  • xresult.dd() == x0.dd()

Definition at line 1820 of file t3.cc.

References fiber_bundle::at2_lite::component(), fiber_bundle::vd_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t3_lite::put_component(), and tensor().

◆ tensor() [10/18]

void fiber_bundle::tp_algebra::tensor ( const at1 x0,
const at2 x1,
t3 xresult,
bool  xauto_access 
)

Tensor product (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • x1.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x1.dd(xauto_access) == x0.dd(xauto_access)
  • xresult.dd(xauto_access) == x0.dd(xauto_access)
Postcondition
  • xresult.variance(xauto_access) == \ tensor_product(x0.variance(xauto_access), x1.variance(xauto_access))

Definition at line 1859 of file t3.cc.

References fiber_bundle::at2::component(), fiber_bundle::vd::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::t3::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), tensor(), fiber_bundle::tensor_product(), and fiber_bundle::tp::variance().

◆ tensor() [11/18]

void fiber_bundle::tp_algebra::tensor ( const st2_lite x0,
const at1_lite x1,
t3_lite xresult 
)

Tensor product (pre-allocated version for volatile types).

Precondition
  • x1.dd() == x0.dd()
  • xresult.dd() == x0.dd()

Definition at line 1925 of file t3.cc.

References fiber_bundle::st2_lite::component(), fiber_bundle::vd_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t3_lite::put_component(), and tensor().

◆ tensor() [12/18]

void fiber_bundle::tp_algebra::tensor ( const st2 x0,
const at1 x1,
t3 xresult,
bool  xauto_access 
)

Tensor product (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • x1.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x1.dd(xauto_access) == x0.dd(xauto_access)
  • xresult.dd(xauto_access) == x0.dd(xauto_access)
Postcondition
  • xresult.variance(xauto_access) == \ tensor_product(x0.variance(xauto_access), x1.variance(xauto_access))

Definition at line 1963 of file t3.cc.

References fiber_bundle::st2::component(), fiber_bundle::vd::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::t3::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), tensor(), fiber_bundle::tensor_product(), and fiber_bundle::tp::variance().

◆ tensor() [13/18]

void fiber_bundle::tp_algebra::tensor ( const at1_lite x0,
const st2_lite x1,
t3_lite xresult 
)

Tensor product (pre-allocated version for volatile types).

Precondition
  • x1.dd() == x0.dd()
  • xresult.dd() == x0.dd()

Definition at line 2024 of file t3.cc.

References fiber_bundle::st2_lite::component(), fiber_bundle::vd_lite::component(), fiber_bundle::tp_lite::dd(), fiber_bundle::t3_lite::put_component(), and tensor().

◆ tensor() [14/18]

void fiber_bundle::tp_algebra::tensor ( const at1 x0,
const st2 x1,
t3 xresult,
bool  xauto_access 
)

Tensor product (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • x1.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • x1.dd(xauto_access) == x0.dd(xauto_access)
  • xresult.dd(xauto_access) == x0.dd(xauto_access)
  • xresult.p(xauto_access) == x0.p(xauto_access) + x1.p(xauto_access)
Postcondition
  • xresult.variance(xauto_access) == \ tensor_product(x0.variance(xauto_access), x1.variance(xauto_access))

Definition at line 2062 of file t3.cc.

References fiber_bundle::st2::component(), fiber_bundle::vd::component(), fiber_bundle::tp::dd(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::tp::p(), fiber_bundle::t3::put_component(), fiber_bundle::tp::put_variance(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), fiber_bundle::tensor_product(), and fiber_bundle::tp::variance().

◆ tensor() [15/18]

void fiber_bundle::tp_algebra::tensor ( const tp_lite x0,
const tp_lite x1,
tp_lite xresult 
)

Tensor product (pre-allocated version for volatile types).

Precondition
  • x1.dd() == x0.dd()
  • xresult.dd() == x0.dd()
  • xresult.p() == x0.p() + x1.p()

Definition at line 1802 of file tp.cc.

References fiber_bundle::tp_lite::dd(), fiber_bundle::tp_lite::p(), and tensor().

◆ tensor() [16/18]

void fiber_bundle::tp_algebra::tensor ( const tp x0,
const tp x1,
tp xresult,
bool  xauto_access 
)

Tensor product (pre-allocated, access control version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • x1.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_accessible(xauto_access)
  • xresult.p(xauto_access) == x0.p(xauto_access) + x1.p(xauto_access)

Definition at line 1870 of file tp.cc.

References fiber_bundle::tp::p(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and tensor().

◆ tensor() [17/18]

template<typename T0 , typename T1 >
tensor_traits< T0::P+T1::P, typename T0::vector_space_type >::tp_type * fiber_bundle::tp_algebra::tensor ( const T0 &  x0,
const T1 &  x1 
)

Tensor product (auto-allocated version for volatile types).

Precondition
  • precondition_of(tensor(x0, x1, *result))
Postcondition
  • result != 0
  • postcondition_of(tensor(x0, x1, *result))
Precondition
  • precondition_of(tensor(x0, x1, *result))
Postcondition
  • result != 0
  • postcondition_of(tensor(x0, x1, *result))

Definition at line 159 of file tp.impl.h.

References tensor().

◆ tensor() [18/18]

template<typename T0 , typename T1 >
tensor_traits< T0::P+T1::P, typename T0::vector_space_type >::tp_type * fiber_bundle::tp_algebra::tensor ( const T0 &  x0,
const T1 &  x1,
bool  xauto_access 
)

Tensor product (auto-allocated version for persistent types).

Precondition
  • precondition_of(tensor(x0, x1, *result, xauto_access))
Postcondition
  • result != 0
  • postcondition_of(tensor(x0, x1, *result, xauto_access))
Precondition
  • precondition_of(tensor(x0, x1, *result, xauto_access))
Postcondition
  • result != 0
  • postcondition_of(tensor(x0, x1, *result, xauto_access))

Definition at line 187 of file tp.impl.h.

References tensor().