SheafSystem  0.0.0.0
fiber_bundle::vd_algebra Namespace Reference

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

Functions

SHEAF_DLL_SPEC void transform_basis_by (e3_lite &xv, const gl3_lite &xtransform, bool is_contravariant=true)
 Transform the basis and components of xv by xtransform. More...
 
SHEAF_DLL_SPEC void add (const e3_lite &x0, const e3_lite &x1, vd_value_type xt, e3_lite &xresult)
 Weighted sum x0*(1-xt) + x1*xt (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC bool a_eql (const e3_lite &x0, const e3_lite &x1)
 Absolute equality comparison of e3_lite x0 to e3_lite x1 using tolerance double_tolerance. More...
 
SHEAF_DLL_SPEC bool a_eql (const e3_lite &x0, const e3_lite &x1, double xtolerance)
 Absolute equality comparison of e3_lite x0 to e3_lite x1 using tolerance xtolerance. More...
 
SHEAF_DLL_SPEC bool a_eql (const e3_lite &x0, const e3_lite &x1, const e3_lite &xtolerance)
 Absolute equality comparison of e3_lite x0 to e3_lite x1 using tolerance e3_lite xtolerance. More...
 
SHEAF_DLL_SPEC bool r_eql (const e3_lite &x0, const e3_lite &x1)
 Relative equality comparison of e3_lite x0 to e3_lite x1 using tolerance double_tolerance. More...
 
SHEAF_DLL_SPEC bool r_eql (const e3_lite &x0, const e3_lite &x1, double xtolerance)
 Relative equality comparison of e3_lite x0 to e3_lite x1 using tolerance xtolerance. More...
 
SHEAF_DLL_SPEC bool r_eql (const e3_lite &x0, const e3_lite &x1, const e3_lite &xtolerance)
 Relative equality comparison of e3_lite x0 to e3_lite x1 using tolerance e3_lite xtolerance. More...
 
SHEAF_DLL_SPEC bool c_eql (const e3_lite &x0, const e3_lite &x1)
 Combined equality equality comparison of e3_lite x0 to e3_lite x1 using tolerance double_tolerance. More...
 
SHEAF_DLL_SPEC bool c_eql (const e3_lite &x0, const e3_lite &x1, double xtolerance)
 Combined equality equality comparison of e3_lite x0 to e3_lite x1 using tolerance xtolerance. More...
 
SHEAF_DLL_SPEC bool c_eql (const e3_lite &x0, const e3_lite &x1, const e3_lite &xtolerance)
 Combined equality equality comparison of e3_lite x0 to e3_lite x1 using tolerance e3_lite xtolerance. More...
 
SHEAF_DLL_SPEC void transform_basis_by (st2_e3_lite &xv, const gl3_lite &xtransform, bool is_contravariant)
 Transform the basis and components of xv by xtransform. More...
 
SHEAF_DLL_SPEC void add (const vd &x0, const vd &x1, vd &xresult, bool xauto_access)
 x0 add x1 (pre-allocated version for persistent types). More...
 
SHEAF_DLL_SPEC void add (const vd_lite &x0, const vd_lite &x1, vd_lite &xresult)
 x0 add x1 (pre-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void add (const vd_lite &x0, const vd_lite &x1, vd_value_type xt, vd_lite &xresult)
 Weighted sum x0*(1-xt) + x1*xt (pre-allocated version for volatile types). More...
 
template<typename T >
T * add (const T &x0, const T &x1)
 x0 add x1 (auto-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void add_equal (vd &xresult, const vd &xother, bool xauto_access)
 x0 add x1 (self-allocated version for persistent types); synonym for add(xresult, xother, xresult, xauto_access). More...
 
template<typename T >
void add_equal (T &xresult, const T &xother)
 x0 add x1 (self-allocated version for volatile types). More...
 
template<typename T >
T * operator+ (const T &x0, const T &x1)
 x0 + x1 (auto-allocated for volatile types); synonym for add(x0, x1). More...
 
template<typename T >
T & operator+= (T &xresult, const T &xother)
 x0 += x1 (self-allocated for volatile types); synonym for add_equal(x0, x1). More...
 
SHEAF_DLL_SPEC void subtract (const vd &x0, const vd &x1, vd &xresult, bool xauto_access)
 x0 subtract x1 (pre-allocated version for persistent types). More...
 
SHEAF_DLL_SPEC void subtract (const vd_lite &x0, const vd_lite &x1, vd_lite &xresult)
 x0 subtract x1 (pre-allocated version for volatile types). More...
 
template<typename T >
T * subtract (const T &x0, const T &x1)
 x0 subtract x1 (auto-allocated version volatile types). More...
 
SHEAF_DLL_SPEC void subtract_equal (vd &xresult, const vd &xother, bool xauto_access)
 x0 subtract_equal x1 (self-allocated version for persistent types); synonym for subtract(xresult, xother, xresult, xauto_access). More...
 
template<typename T >
void subtract_equal (T &xresult, const T &xother)
 x0 subtract_equal x1 (self-allocated version for volatile types). More...
 
template<typename T >
T * operator- (const T &x0, const T &x1)
 x0 - x1 (auto-allocated for volatile types); synonym for subtract(x0, x1). More...
 
template<typename T >
T & operator-= (T &xresult, const T &xother)
 x0 -= x1 (self-allocated for volatile types); synonym for subtract_equal(x0, x1). More...
 
SHEAF_DLL_SPEC void multiply (const vd &x0, const vd_value_type &x1, vd &xresult, bool xauto_access)
 Vector x0 multiplied by scalar x1 (pre-allocated version for persistent types). More...
 
SHEAF_DLL_SPEC void multiply (const vd_lite &x0, const vd_value_type &x1, vd_lite &xresult)
 Vector xv multiplied by scalar x1 (pre-allocated version for volatile types). More...
 
template<typename T >
T * multiply (const T &x0, const vd_value_type &x1)
 Vector x0 multiplied by scalar x1 (auto-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void multiply_equal (vd &xresult, const vd_value_type &xother, bool xauto_access)
 Vector x0 multiplied by scalar x1 (self-allocated version for persistent types); synonym for multiply(xresult, xother, xresult, xauto_access). More...
 
template<typename T >
void multiply_equal (T &xresult, const vd_value_type &xother)
 Vector x0 multiplied by scalar x1 (self-allocated version for volatile types). More...
 
template<typename T >
T * operator* (const T &x0, const vd_value_type &x1)
 Vector x0 * scalar x1 (auto-allocated for volatile types); synonym for multiply(x0, x1). More...
 
template<typename T >
T & operator*= (T &xresult, const vd_value_type &x1)
 Vector x0 *= scalar x1 (self-allocated for volatile types); synonym for multiply_equal(x0, x1). More...
 
SHEAF_DLL_SPEC void divide (const vd &x0, const vd_value_type &x1, vd &xresult, bool xauto_access)
 Vector x0 divided by scalar x1 (pre-allocated version for persistent types). More...
 
SHEAF_DLL_SPEC void divide (const vd_lite &x0, const vd_value_type &x1, vd_lite &xresult)
 Vector xv divided by scalar x1 (pre-allocated version for volatile types). More...
 
template<typename T >
T * divide (const T &x0, const vd_value_type &x1)
 Vector x0 divided by scalar x1 (auto-allocated version for volatile types). More...
 
SHEAF_DLL_SPEC void divide_equal (vd &xresult, const vd_value_type &xother, bool xauto_access)
 Vector x0 divided by scalar x1 (self-allocated version for persistent types); synonym for divide(xresult, xother, xresult, xauto_access). More...
 
template<typename T >
void divide_equal (T &xresult, const vd_value_type &x1)
 Vector x0 divided by scalar x1 (self-allocated version for volatile types). More...
 
template<typename T >
T * operator/ (const T &x0, const vd_value_type &x1)
 Vector x0 / scalar x1 (auto-allocated for volatile types); synonym for divide(x0, x1). More...
 
template<typename T >
T & operator/= (T &xresult, const vd_value_type &x1)
 Vector x0 /= scalar x1 (self-allocated for volatile types); synonym for divide_equal(x0, x1). More...
 
SHEAF_DLL_SPEC void max (const vd &x0, vd_value_type &xresult, bool xauto_access)
 Maximum component of x0, pre-allocated version. More...
 
SHEAF_DLL_SPEC vd_value_type max (const vd &x0, bool xauto_access)
 Maximum component of x0, auto-allocated version. More...
 
SHEAF_DLL_SPEC void min (const vd &x0, vd_value_type &xresult, bool xauto_access)
 Minimum component of x0, pre-allocated version. More...
 
SHEAF_DLL_SPEC vd_value_type min (const vd &x0, bool xauto_access)
 Minimum component of x0, auto-allocated version. More...
 
SHEAF_DLL_SPEC void max (const vd_lite &x0, vd_value_type &xresult)
 Maximum component of x0, pre-allocated version. More...
 
SHEAF_DLL_SPEC vd_value_type max (const vd_lite &x0)
 Maximum component of x0, auto-allocated version. More...
 
SHEAF_DLL_SPEC void min (const vd_lite &x0, vd_value_type &xresult)
 Minimum component of x0, pre-allocated version. More...
 
SHEAF_DLL_SPEC vd_value_type min (const vd_lite &x0)
 Minimum component of x0, auto-allocated version. More...
 
SHEAF_DLL_SPEC vd_value_type contract (const vd_lite &xvector, const vd_lite &xcovector)
 Contraction of vector xvector on covector xcovector (auto_allocated for volatile types). More...
 
SHEAF_DLL_SPEC vd_value_type contract (const vd &xvector, const vd &xcovector, bool xauto_access)
 Contraction of vector xvector on covector xcovector (auto_allocated, access control version for persistent types). More...
 
SHEAF_DLL_SPEC bool a_eql (const vd_lite &x0, const vd_lite &x1)
 Absolute equality comparison of vd_lite x0 to vd_lite x1 using tolerance double_tolerance. More...
 
SHEAF_DLL_SPEC bool a_eql (const vd_lite &x0, const vd_lite &x1, double xtolerance)
 Absolute equality comparison of vd_lite x0 to vd_lite x1 using tolerance xtolerance. More...
 
SHEAF_DLL_SPEC bool a_eql (const vd_lite &x0, const vd_lite &x1, const vd_lite &xtolerance)
 Absolute equality comparison of vd_lite x0 to vd_lite x1 using vd_lite tolerance xtolerance. More...
 
SHEAF_DLL_SPEC bool r_eql (const vd_lite &x0, const vd_lite &x1)
 Relative equality comparison of vd_lite x0 to vd_lite x1 using tolerance double_tolerance. More...
 
SHEAF_DLL_SPEC bool r_eql (const vd_lite &x0, const vd_lite &x1, double xtolerance)
 Relative equality comparison of vd_lite x0 to vd_lite x1 using tolerance xtolerance. More...
 
SHEAF_DLL_SPEC bool r_eql (const vd_lite &x0, const vd_lite &x1, const vd_lite &xtolerance)
 Relative equality comparison of vd_lite x0 to vd_lite x1 using vd_lite tolerance xtolerance. More...
 
SHEAF_DLL_SPEC bool c_eql (const vd_lite &x0, const vd_lite &x1)
 Combined equality equality comparison of vd_lite x0 to vd_lite x1 using tolerance double_tolerance. More...
 
SHEAF_DLL_SPEC bool c_eql (const vd_lite &x0, const vd_lite &x1, double xtolerance)
 Combined equality equality comparison of vd_lite x0 to vd_lite x1 using tolerance xtolerance. More...
 
SHEAF_DLL_SPEC bool c_eql (const vd_lite &x0, const vd_lite &x1, const vd_lite &xtolerance)
 Combined equality equality comparison of vd_lite x0 to vd_lite x1 using vd_lite tolerance xtolerance. More...
 
SHEAF_DLL_SPEC unsigned int factorial (unsigned int xi)
 Factorial of xi. More...
 
SHEAF_DLL_SPEC unsigned int binomial_coefficient (unsigned int xi, unsigned int xj)
 Binomial coefficient (xi, xj). More...
 

Detailed Description

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

Function Documentation

◆ a_eql() [1/6]

bool fiber_bundle::vd_algebra::a_eql ( const vd_lite x0,
const vd_lite x1 
)

Absolute equality comparison of vd_lite x0 to vd_lite x1 using tolerance double_tolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2419 of file vd.cc.

References sheaf::a_eql(), a_eql(), fiber_bundle::vd_lite::d(), and sheaf::double_tolerance.

◆ a_eql() [2/6]

bool fiber_bundle::vd_algebra::a_eql ( const vd_lite x0,
const vd_lite x1,
double  xtolerance 
)

Absolute equality comparison of vd_lite x0 to vd_lite x1 using tolerance xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2444 of file vd.cc.

References sheaf::a_eql(), a_eql(), and fiber_bundle::vd_lite::d().

◆ a_eql() [3/6]

bool fiber_bundle::vd_algebra::a_eql ( const vd_lite x0,
const vd_lite x1,
const vd_lite xtolerance 
)

Absolute equality comparison of vd_lite x0 to vd_lite x1 using vd_lite tolerance xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2469 of file vd.cc.

References sheaf::a_eql(), fiber_bundle::vd_lite::d(), and r_eql().

◆ a_eql() [4/6]

bool fiber_bundle::vd_algebra::a_eql ( const e3_lite x0,
const e3_lite x1 
)

Absolute equality comparison of e3_lite x0 to e3_lite x1 using tolerance double_tolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2417 of file e3.cc.

References sheaf::a_eql(), fiber_bundle::e3_row_dofs_type< T >::components, fiber_bundle::atp_lite::d(), and sheaf::double_tolerance.

Referenced by a_eql(), add(), and contract().

◆ a_eql() [5/6]

bool fiber_bundle::vd_algebra::a_eql ( const e3_lite x0,
const e3_lite x1,
double  xtolerance 
)

Absolute equality comparison of e3_lite x0 to e3_lite x1 using tolerance xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2442 of file e3.cc.

References sheaf::a_eql(), a_eql(), fiber_bundle::e3_row_dofs_type< T >::components, and fiber_bundle::atp_lite::d().

◆ a_eql() [6/6]

bool fiber_bundle::vd_algebra::a_eql ( const e3_lite x0,
const e3_lite x1,
const e3_lite xtolerance 
)

Absolute equality comparison of e3_lite x0 to e3_lite x1 using tolerance e3_lite xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2467 of file e3.cc.

References sheaf::a_eql(), fiber_bundle::e3_row_dofs_type< T >::components, fiber_bundle::atp_lite::d(), and r_eql().

◆ add() [1/5]

void fiber_bundle::vd_algebra::add ( const vd x0,
const vd x1,
vd xresult,
bool  xauto_access 
)

x0 add x1 (pre-allocated 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_write_accessible(xauto_access)
  • x0.d(xauto_access) >= xresult.d(xauto_access)
  • x1.d(xauto_access) >= xresult.d(xauto_access)
  • x0.is_vector(xauto_access) == x1.is_vector(xauto_access)
Postcondition
  • xresult.is_vector(xauto_access) == x0.is_vector(xauto_access)
  • -unexecutable( "for_all: i, 0, xresult.d(),\ xresult.component(i)==old_x0.component(i)+old_x1.component(i)" )

Definition at line 1651 of file vd.cc.

References add(), fiber_bundle::vd::component(), fiber_bundle::vd::d(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::vd::is_vector(), fiber_bundle::vd::put_component(), fiber_bundle::vd::put_is_covector(), fiber_bundle::vd::put_is_vector(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and sheaf::read_write_monitor_handle::state_is_auto_read_write_accessible().

◆ add() [2/5]

void fiber_bundle::vd_algebra::add ( const vd_lite x0,
const vd_lite x1,
vd_lite xresult 
)

x0 add x1 (pre-allocated version for volatile types).

Precondition
  • x0.d() >= xresult.d()
  • x1.d() >= xresult.d()
Postcondition
  • -unexecutable( "for_all: i, 0, xresult.d(), \ xresult.component(i) == old_x0.component(i) + old_x1.component(i)" )

Definition at line 1704 of file vd.cc.

References add(), fiber_bundle::vd_lite::component(), fiber_bundle::vd_lite::d(), and fiber_bundle::vd_lite::put_component().

◆ add() [3/5]

void fiber_bundle::vd_algebra::add ( const vd_lite x0,
const vd_lite x1,
vd_value_type  xt,
vd_lite xresult 
)

Weighted sum x0*(1-xt) + x1*xt (pre-allocated version for volatile types).

Precondition
  • x0.d() >= xresult.d()
  • x1.d() >= xresult.d()
Postcondition
  • -unexecutable( "for_all: i, 0, xresult.d(), \ xresult.component(i) == old_x0.component(i)*(1.0 - xt) + old_x1.component(i)*xt" )

Definition at line 1733 of file vd.cc.

References add_equal(), fiber_bundle::vd_lite::component(), fiber_bundle::vd_lite::d(), and fiber_bundle::vd_lite::put_component().

◆ add() [4/5]

template<typename T >
T * fiber_bundle::vd_algebra::add ( const T &  x0,
const T &  x1 
)

x0 add x1 (auto-allocated version for volatile types).

Precondition
  • precondition_of(x0.clone())
  • precondition_of(add(x0, x1, *result))
Postcondition
  • result != 0
  • postcondition_of(x0.clone())
  • postcondition_of(add(x0, x1, *result))
Precondition
  • precondition_of(x0.clone())
  • precondition_of(add(x0, x1, *result))
Postcondition
  • result != 0
  • postcondition_of(x0.clone())
  • postcondition_of(add(x0, x1, *result))

Definition at line 143 of file vd.impl.h.

References add().

◆ add() [5/5]

void fiber_bundle::vd_algebra::add ( const e3_lite x0,
const e3_lite x1,
vd_value_type  xt,
e3_lite xresult 
)

Weighted sum x0*(1-xt) + x1*xt (pre-allocated version for volatile types).

Precondition
  • x0.d() >= xresult.d()
  • x1.d() >= xresult.d()
Postcondition
  • -unexecutable( "for_all: i, 0, xresult.d(), \ xresult.component(i) == old_x0.component(i)*(1.0 - xt) + old_x1.component(i)*xt" )

Definition at line 2381 of file e3.cc.

References a_eql(), fiber_bundle::e3_row_dofs_type< T >::components, and fiber_bundle::atp_lite::d().

Referenced by fields::field_vd_algebra::add(), add(), fields::field_vd_algebra::add_equal(), fiber_bundle::sec_vd_algebra::add_equal(), add_equal(), fiber_bundle::deep_size(), operator+(), fiber_bundle::operator<<(), and transform_basis_by().

◆ add_equal() [1/2]

void fiber_bundle::vd_algebra::add_equal ( vd xresult,
const vd xother,
bool  xauto_access 
)

x0 add x1 (self-allocated version for persistent types); synonym for add(xresult, xother, xresult, xauto_access).

Precondition
  • precondition_of(add(xresult, xother, xresult, xauto_access))
Postcondition
  • postcondition_of(add(xresult, xother, xresult, xauto_access))

Definition at line 1764 of file vd.cc.

References add(), and subtract().

Referenced by add(), and operator+=().

◆ add_equal() [2/2]

template<typename T >
void fiber_bundle::vd_algebra::add_equal ( T &  xresult,
const T &  xother 
)

x0 add x1 (self-allocated version for volatile types).

Precondition
  • precondition_of(add(xresult, xother, xresult))
Postcondition
  • postcondition_of(add(xresult, xother, xresult))
Precondition
  • precondition_of(add(xresult, xother, xresult))
Postcondition
  • postcondition_of(add(xresult, xother, xresult))

Definition at line 168 of file vd.impl.h.

References add().

◆ binomial_coefficient()

unsigned int fiber_bundle::vd_algebra::binomial_coefficient ( unsigned int  xi,
unsigned int  xj 
)

Binomial coefficient (xi, xj).

Precondition
  • xi >= xj
Postcondition
  • result > 0

Definition at line 2673 of file vd.cc.

References factorial().

Referenced by fiber_bundle::stp_lite::d(), fiber_bundle::atp_lite::d(), fiber_bundle::sec_stp_space::d(), fiber_bundle::stp_space::d(), fiber_bundle::sec_atp_space::d(), fiber_bundle::atp_space::d(), and factorial().

◆ c_eql() [1/6]

bool fiber_bundle::vd_algebra::c_eql ( const vd_lite x0,
const vd_lite x1 
)

Combined equality equality comparison of vd_lite x0 to vd_lite x1 using tolerance double_tolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2569 of file vd.cc.

References sheaf::c_eql(), c_eql(), fiber_bundle::vd_lite::d(), and sheaf::double_tolerance.

◆ c_eql() [2/6]

bool fiber_bundle::vd_algebra::c_eql ( const vd_lite x0,
const vd_lite x1,
double  xtolerance 
)

Combined equality equality comparison of vd_lite x0 to vd_lite x1 using tolerance xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2594 of file vd.cc.

References sheaf::c_eql(), c_eql(), and fiber_bundle::vd_lite::d().

◆ c_eql() [3/6]

bool fiber_bundle::vd_algebra::c_eql ( const vd_lite x0,
const vd_lite x1,
const vd_lite xtolerance 
)

Combined equality equality comparison of vd_lite x0 to vd_lite x1 using vd_lite tolerance xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2619 of file vd.cc.

References sheaf::c_eql(), fiber_bundle::vd_lite::d(), and factorial().

◆ c_eql() [4/6]

bool fiber_bundle::vd_algebra::c_eql ( const e3_lite x0,
const e3_lite x1 
)

Combined equality equality comparison of e3_lite x0 to e3_lite x1 using tolerance double_tolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2569 of file e3.cc.

References sheaf::c_eql(), fiber_bundle::e3_row_dofs_type< T >::components, fiber_bundle::atp_lite::d(), and sheaf::double_tolerance.

Referenced by c_eql(), and r_eql().

◆ c_eql() [5/6]

bool fiber_bundle::vd_algebra::c_eql ( const e3_lite x0,
const e3_lite x1,
double  xtolerance 
)

Combined equality equality comparison of e3_lite x0 to e3_lite x1 using tolerance xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2594 of file e3.cc.

References sheaf::c_eql(), c_eql(), fiber_bundle::e3_row_dofs_type< T >::components, and fiber_bundle::atp_lite::d().

◆ c_eql() [6/6]

bool fiber_bundle::vd_algebra::c_eql ( const e3_lite x0,
const e3_lite x1,
const e3_lite xtolerance 
)

Combined equality equality comparison of e3_lite x0 to e3_lite x1 using tolerance e3_lite xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2619 of file e3.cc.

References sheaf::c_eql(), fiber_bundle::e3_row_dofs_type< T >::components, and fiber_bundle::atp_lite::d().

◆ contract() [1/2]

fiber_bundle::vd_value_type fiber_bundle::vd_algebra::contract ( const vd_lite xvector,
const vd_lite xcovector 
)

Contraction of vector xvector on covector xcovector (auto_allocated for volatile types).

Precondition
  • xcovector.is_same_type(xvector)

Definition at line 2334 of file vd.cc.

References fiber_bundle::vd_lite::component(), fiber_bundle::vd_lite::d(), and fiber_bundle::any_lite::is_same_type().

Referenced by min().

◆ contract() [2/2]

fiber_bundle::vd_value_type fiber_bundle::vd_algebra::contract ( const vd xvector,
const vd xcovector,
bool  xauto_access 
)

Contraction of vector xvector on covector xcovector (auto_allocated, access control version for persistent types).

Precondition
  • xvector.state_is_auto_read_accessible(xauto_access)
  • xcovector.state_is_auto_read_accessible(xauto_access)
  • xcovector.is_same_type(&xvector)
  • xvector.is_vector(xauto_access) && xcovector.is_covector(xauto_access)

Definition at line 2367 of file vd.cc.

References a_eql(), fiber_bundle::vd::component(), fiber_bundle::vd::d(), sheaf::poset_component::get_read_access(), fiber_bundle::vd::is_covector(), sheaf::any::is_same_type(), fiber_bundle::vd::is_vector(), sheaf::poset_component::release_access(), and sheaf::read_write_monitor_handle::state_is_auto_read_accessible().

◆ divide() [1/3]

void fiber_bundle::vd_algebra::divide ( const vd x0,
const vd_value_type x1,
vd xresult,
bool  xauto_access 
)

Vector x0 divided by scalar x1 (pre-allocated version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_write_accessible(xauto_access)
  • x0.d(xauto_access) >= xresult.d(xauto_access)
Postcondition
  • xresult.is_vector(xauto_access) == x0.is_vector(xauto_access)
  • -unexecutable( "for all: i, 0, xresult.d(),\ xresult.component(i) == old_x0.component(i)/x1" )

Definition at line 2024 of file vd.cc.

References fiber_bundle::vd::component(), fiber_bundle::vd::d(), divide_equal(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::vd::is_vector(), fiber_bundle::vd::put_component(), fiber_bundle::vd::put_is_covector(), fiber_bundle::vd::put_is_vector(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and sheaf::read_write_monitor_handle::state_is_auto_read_write_accessible().

Referenced by fiber_bundle::deep_size(), fields::field_vd_algebra::divide(), divide(), fields::field_vd_algebra::divide_equal(), fiber_bundle::sec_vd_algebra::divide_equal(), divide_equal(), multiply_equal(), and operator/().

◆ divide() [2/3]

void fiber_bundle::vd_algebra::divide ( const vd_lite x0,
const vd_value_type x1,
vd_lite xresult 
)

Vector xv divided by scalar x1 (pre-allocated version for volatile types).

Precondition
  • x0.d() >= xresult.d()
Postcondition
  • -unexecutable( "for all: i, 0, xresult.d(), \ xresult.component(i) == old_x0.component(i)/x1" )

Definition at line 1996 of file vd.cc.

References fiber_bundle::vd_lite::component(), fiber_bundle::vd_lite::d(), divide(), and fiber_bundle::vd_lite::put_component().

◆ divide() [3/3]

template<typename T >
T * fiber_bundle::vd_algebra::divide ( const T &  x0,
const vd_value_type x1 
)

Vector x0 divided by scalar x1 (auto-allocated version for volatile types).

Precondition
  • precondition_of(divide(x0, x1, result))
Postcondition
  • postcondition_of(divide(x0, x1, *result))
Precondition
  • precondition_of(divide(x0, x1, result))
Postcondition
  • postcondition_of(divide(x0, x1, *result))

Definition at line 418 of file vd.impl.h.

References divide().

◆ divide_equal() [1/2]

void fiber_bundle::vd_algebra::divide_equal ( vd xresult,
const vd_value_type xother,
bool  xauto_access 
)

Vector x0 divided by scalar x1 (self-allocated version for persistent types); synonym for divide(xresult, xother, xresult, xauto_access).

Precondition
  • precondition_of(divide(xresult, xother, xresult, xauto_access))
Postcondition
  • postcondition_of(divide(xresult, xother, xresult, xauto_access))

Definition at line 2072 of file vd.cc.

References divide(), and max().

Referenced by divide(), and operator/=().

◆ divide_equal() [2/2]

template<typename T >
void fiber_bundle::vd_algebra::divide_equal ( T &  xresult,
const vd_value_type x1 
)

Vector x0 divided by scalar x1 (self-allocated version for volatile types).

Precondition
  • precondition_of(divide(xresult, x1, xresult))
Postcondition
  • postcondition_of(divide(xresult, x1, xresult))
Precondition
  • precondition_of(divide(xresult, x1, xresult))
Postcondition
  • postcondition_of(divide(xresult, x1, xresult))

Definition at line 440 of file vd.impl.h.

References divide().

◆ factorial()

unsigned int fiber_bundle::vd_algebra::factorial ( unsigned int  xi)

Factorial of xi.

Issue:
Where should we put these functions?
Postcondition
  • result > 0

Definition at line 2649 of file vd.cc.

References binomial_coefficient().

Referenced by binomial_coefficient(), and c_eql().

◆ max() [1/4]

void fiber_bundle::vd_algebra::max ( const vd x0,
vd_value_type xresult,
bool  xauto_access 
)

Maximum component of x0, pre-allocated version.

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
Postcondition
  • -unexecutable( "xresult == max(x0)" )

Definition at line 2097 of file vd.cc.

References fiber_bundle::vd::component(), fiber_bundle::vd::d(), sheaf::poset_component::get_read_access(), sheaf::poset_component::release_access(), and sheaf::read_write_monitor_handle::state_is_auto_read_accessible().

Referenced by fiber_bundle::block_connectivity::block_connectivity(), divide_equal(), fiber_bundle::sec_vd_algebra::extrema(), sheaf::index_traits< T >::invalid(), sheaf::invalid_pod_index(), sheaf::index_traits< T >::max(), fiber_bundle::section_evaluator::max(), fiber_bundle::sec_vd_algebra::max(), max(), geometry::db0_point_locator< DC >::max_bin_distance(), sheaf::max_pod_index(), fiber_bundle::sec_vd_algebra::min(), min(), sheaf::abstract_poset_member::new_jrm_state(), fields::field_eval_iterator::next(), geometry::db0_point_locator< DC >::point_at_value(), geometry::point_locator::point_locator(), fields::field_eval_iterator::repeat(), fields::field_eval_iterator::reset(), sheaf::sum_index_space_state::sum_index_space_state(), fiber_bundle::svd_reduce(), sheaf::table_dof_tuple_record::transfer_internal_buffer_to_poset(), sheaf::subposet_names_record::transfer_internal_buffer_to_poset(), sheaf::id_space_names_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_types_record::transfer_internal_buffer_to_poset(), sheaf::member_class_names_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_col_bounds_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_class_names_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_domain_offsets_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_schema_ids_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_schema_versions_record::transfer_internal_buffer_to_poset(), sheaf::member_names_record::transfer_internal_buffer_to_poset(), and sheaf::poset_general_record::transfer_internal_buffer_to_poset().

◆ max() [2/4]

fiber_bundle::vd_value_type fiber_bundle::vd_algebra::max ( const vd x0,
bool  xauto_access 
)

Maximum component of x0, auto-allocated version.

Precondition
  • precondition_of(max(x0, xresult, xauto_access))
Postcondition
  • postcondition_of(max(x0, xresult, xauto_access))

Definition at line 2138 of file vd.cc.

References max(), and min().

◆ max() [3/4]

void fiber_bundle::vd_algebra::max ( const vd_lite x0,
vd_value_type xresult 
)

Maximum component of x0, pre-allocated version.

Postcondition
  • -unexecutable( "xresult == max(x0)" )

Definition at line 2225 of file vd.cc.

References fiber_bundle::vd_lite::component(), fiber_bundle::vd_lite::d(), and max().

◆ max() [4/4]

fiber_bundle::vd_value_type fiber_bundle::vd_algebra::max ( const vd_lite x0)

Maximum component of x0, auto-allocated version.

Precondition
  • precondition_of(max(x0, xresult))
Postcondition
  • postcondition_of(max(x0, xresult))

Definition at line 2254 of file vd.cc.

References max(), and min().

◆ min() [1/4]

void fiber_bundle::vd_algebra::min ( const vd x0,
vd_value_type xresult,
bool  xauto_access 
)

◆ min() [2/4]

fiber_bundle::vd_value_type fiber_bundle::vd_algebra::min ( const vd x0,
bool  xauto_access 
)

Minimum component of x0, auto-allocated version.

Precondition
  • precondition_of(min(x0, xresult, xauto_access))
Postcondition
  • postcondition_of(min(x0, xresult, xauto_access))

Definition at line 2202 of file vd.cc.

References max(), and min().

◆ min() [3/4]

void fiber_bundle::vd_algebra::min ( const vd_lite x0,
vd_value_type xresult 
)

Minimum component of x0, pre-allocated version.

Postcondition
  • -unexecutable( "xresult == min(x0)" )

Definition at line 2277 of file vd.cc.

References fiber_bundle::vd_lite::component(), fiber_bundle::vd_lite::d(), and min().

◆ min() [4/4]

fiber_bundle::vd_value_type fiber_bundle::vd_algebra::min ( const vd_lite x0)

Minimum component of x0, auto-allocated version.

Precondition
  • precondition_of(min(x0, xresult))
Postcondition
  • postcondition_of(min(x0, xresult))

Definition at line 2306 of file vd.cc.

References contract(), and min().

◆ multiply() [1/3]

void fiber_bundle::vd_algebra::multiply ( const vd x0,
const vd_value_type x1,
vd xresult,
bool  xauto_access 
)

Vector x0 multiplied by scalar x1 (pre-allocated version for persistent types).

Precondition
  • x0.state_is_auto_read_accessible(xauto_access)
  • xresult.state_is_auto_read_write_accessible(xauto_access)
  • x0.d(xauto_access) >= xresult.d(xauto_access)
Postcondition
  • xresult.is_vector(xauto_access) == x0.is_vector(xauto_access)
  • -unexecutable( "for all: i, 0, xresult.d(), xresult.component(i) == old_x0.component(i)*x1" )

Definition at line 1924 of file vd.cc.

References fiber_bundle::vd::component(), fiber_bundle::vd::d(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::vd::is_vector(), multiply_equal(), fiber_bundle::vd::put_component(), fiber_bundle::vd::put_is_covector(), fiber_bundle::vd::put_is_vector(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and sheaf::read_write_monitor_handle::state_is_auto_read_write_accessible().

Referenced by fiber_bundle::deep_size(), fields::field_vd_algebra::multiply(), fiber_bundle::general_matrix_1x2< T >::multiply(), fiber_bundle::general_matrix_1x3< T >::multiply(), fiber_bundle::general_matrix_2x1< T >::multiply(), fiber_bundle::general_matrix_3x1< T >::multiply(), fiber_bundle::general_matrix_3x2< T >::multiply(), fiber_bundle::general_matrix_2x3< T >::multiply(), fiber_bundle::antisymmetric_matrix_3x3< T >::multiply(), fiber_bundle::antisymmetric_matrix_2x2< T >::multiply(), fiber_bundle::symmetric_matrix_3x3< T >::multiply(), fiber_bundle::symmetric_matrix_2x2< T >::multiply(), fiber_bundle::general_matrix_3x3< T >::multiply(), fiber_bundle::general_matrix_2x2< T >::multiply(), multiply(), fields::field_vd_algebra::multiply_equal(), fiber_bundle::sec_vd_algebra::multiply_equal(), multiply_equal(), operator*(), and subtract_equal().

◆ multiply() [2/3]

void fiber_bundle::vd_algebra::multiply ( const vd_lite x0,
const vd_value_type x1,
vd_lite xresult 
)

Vector xv multiplied by scalar x1 (pre-allocated version for volatile types).

Precondition
  • x0.d() >= xresult.d()
Postcondition
  • -unexecutable( "for all: i, 0, xresult.d(), \ xresult.component(i) == old_x0.component(i)*x1" )

Definition at line 1896 of file vd.cc.

References fiber_bundle::vd_lite::component(), fiber_bundle::vd_lite::d(), multiply(), and fiber_bundle::vd_lite::put_component().

◆ multiply() [3/3]

template<typename T >
T * fiber_bundle::vd_algebra::multiply ( const T &  x0,
const vd_value_type x1 
)

Vector x0 multiplied by scalar x1 (auto-allocated version for volatile types).

Precondition
  • precondition_of(multiply(x0, x1, result))
Postcondition
  • postcondition_of(multiply(x0, x1, *result))
Precondition
  • precondition_of(multiply(x0, x1, result))
Postcondition
  • postcondition_of(multiply(x0, x1, *result))

Definition at line 337 of file vd.impl.h.

References multiply().

◆ multiply_equal() [1/2]

void fiber_bundle::vd_algebra::multiply_equal ( vd xresult,
const vd_value_type xother,
bool  xauto_access 
)

Vector x0 multiplied by scalar x1 (self-allocated version for persistent types); synonym for multiply(xresult, xother, xresult, xauto_access).

Precondition
  • precondition_of(multiply(xresult, xother, xresult, xauto_access))
Postcondition
  • postcondition_of(multiply(xresult, xother, xresult, xauto_access))

Definition at line 1971 of file vd.cc.

References divide(), and multiply().

Referenced by multiply(), and operator*=().

◆ multiply_equal() [2/2]

template<typename T >
void fiber_bundle::vd_algebra::multiply_equal ( T &  xresult,
const vd_value_type xother 
)

Vector x0 multiplied by scalar x1 (self-allocated version for volatile types).

Precondition
  • precondition_of(multiply(xresult, x1, xresult))
Postcondition
  • postcondition_of(multiply(xresult, x1, xresult))
Precondition
  • precondition_of(multiply(xresult, x1, xresult))
Postcondition
  • postcondition_of(multiply(xresult, x1, xresult))

Definition at line 359 of file vd.impl.h.

References multiply().

◆ operator*()

template<typename T >
T * fiber_bundle::vd_algebra::operator* ( const T &  x0,
const vd_value_type x1 
)

Vector x0 * scalar x1 (auto-allocated for volatile types); synonym for multiply(x0, x1).

Definition at line 379 of file vd.impl.h.

References multiply().

◆ operator*=()

template<typename T >
T & fiber_bundle::vd_algebra::operator*= ( T &  xresult,
const vd_value_type x1 
)

Vector x0 *= scalar x1 (self-allocated for volatile types); synonym for multiply_equal(x0, x1).

Definition at line 395 of file vd.impl.h.

References multiply_equal().

◆ operator+()

template<typename T >
T * fiber_bundle::vd_algebra::operator+ ( const T &  x0,
const T &  x1 
)

x0 + x1 (auto-allocated for volatile types); synonym for add(x0, x1).

Precondition
  • precondition_of(result = add(x0, x1))
Postcondition
  • postcondition_of(result = add(x0, x1))
Precondition
  • precondition_of(result = add(x0, x1))
Postcondition
  • postcondition_of(result = add(x0, x1))

Definition at line 190 of file vd.impl.h.

References add().

◆ operator+=()

template<typename T >
T & fiber_bundle::vd_algebra::operator+= ( T &  xresult,
const T &  xother 
)

x0 += x1 (self-allocated for volatile types); synonym for add_equal(x0, x1).

Precondition
  • precondition_of(add_equal(xresult, xother))
Postcondition
  • postcondition_of(add_equal(xresult, xother))
Precondition
  • precondition_of(add_equal(xresult, xother))
Postcondition
  • postcondition_of(add_equal(xresult, xother))

Definition at line 210 of file vd.impl.h.

References add_equal().

Referenced by sheaf::arg_list::arg_type::empty().

◆ operator-()

template<typename T >
T * fiber_bundle::vd_algebra::operator- ( const T &  x0,
const T &  x1 
)

x0 - x1 (auto-allocated for volatile types); synonym for subtract(x0, x1).

Precondition
  • precondition_of(result = subtract(x0, x1))
Postcondition
  • postcondition_of(result = subtract(x0, x1))
Precondition
  • precondition_of(result = subtract(x0, x1))
Postcondition
  • postcondition_of(result = subtract(x0, x1))

Definition at line 285 of file vd.impl.h.

References subtract().

◆ operator-=()

template<typename T >
T & fiber_bundle::vd_algebra::operator-= ( T &  xresult,
const T &  xother 
)

x0 -= x1 (self-allocated for volatile types); synonym for subtract_equal(x0, x1).

Precondition
  • precondition_of(subtract_equal(xresult, xother))
Postcondition
  • postcondition_of(subtract_equal(xresult, xother))
Precondition
  • precondition_of(subtract_equal(xresult, xother))
Postcondition
  • postcondition_of(subtract_equal(xresult, xother))

Definition at line 305 of file vd.impl.h.

References subtract_equal().

◆ operator/()

template<typename T >
T * fiber_bundle::vd_algebra::operator/ ( const T &  x0,
const vd_value_type x1 
)

Vector x0 / scalar x1 (auto-allocated for volatile types); synonym for divide(x0, x1).

Definition at line 460 of file vd.impl.h.

References divide().

◆ operator/=()

template<typename T >
T & fiber_bundle::vd_algebra::operator/= ( T &  xresult,
const vd_value_type x1 
)

Vector x0 /= scalar x1 (self-allocated for volatile types); synonym for divide_equal(x0, x1).

Definition at line 476 of file vd.impl.h.

References divide_equal().

◆ r_eql() [1/6]

bool fiber_bundle::vd_algebra::r_eql ( const vd_lite x0,
const vd_lite x1 
)

Relative equality comparison of vd_lite x0 to vd_lite x1 using tolerance double_tolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2494 of file vd.cc.

References fiber_bundle::vd_lite::d(), sheaf::double_tolerance, sheaf::r_eql(), and r_eql().

◆ r_eql() [2/6]

bool fiber_bundle::vd_algebra::r_eql ( const vd_lite x0,
const vd_lite x1,
double  xtolerance 
)

Relative equality comparison of vd_lite x0 to vd_lite x1 using tolerance xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2519 of file vd.cc.

References fiber_bundle::vd_lite::d(), sheaf::r_eql(), and r_eql().

◆ r_eql() [3/6]

bool fiber_bundle::vd_algebra::r_eql ( const vd_lite x0,
const vd_lite x1,
const vd_lite xtolerance 
)

Relative equality comparison of vd_lite x0 to vd_lite x1 using vd_lite tolerance xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2544 of file vd.cc.

References c_eql(), fiber_bundle::vd_lite::d(), and sheaf::r_eql().

◆ r_eql() [4/6]

bool fiber_bundle::vd_algebra::r_eql ( const e3_lite x0,
const e3_lite x1 
)

Relative equality comparison of e3_lite x0 to e3_lite x1 using tolerance double_tolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2493 of file e3.cc.

References fiber_bundle::e3_row_dofs_type< T >::components, fiber_bundle::atp_lite::d(), sheaf::double_tolerance, and sheaf::r_eql().

Referenced by a_eql(), and r_eql().

◆ r_eql() [5/6]

bool fiber_bundle::vd_algebra::r_eql ( const e3_lite x0,
const e3_lite x1,
double  xtolerance 
)

Relative equality comparison of e3_lite x0 to e3_lite x1 using tolerance xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2518 of file e3.cc.

References fiber_bundle::e3_row_dofs_type< T >::components, fiber_bundle::atp_lite::d(), sheaf::r_eql(), and r_eql().

◆ r_eql() [6/6]

bool fiber_bundle::vd_algebra::r_eql ( const e3_lite x0,
const e3_lite x1,
const e3_lite xtolerance 
)

Relative equality comparison of e3_lite x0 to e3_lite x1 using tolerance e3_lite xtolerance.

Precondition
  • x0.d() == x1.d()

Definition at line 2543 of file e3.cc.

References c_eql(), fiber_bundle::e3_row_dofs_type< T >::components, fiber_bundle::atp_lite::d(), and sheaf::r_eql().

◆ subtract() [1/3]

void fiber_bundle::vd_algebra::subtract ( const vd x0,
const vd x1,
vd xresult,
bool  xauto_access 
)

x0 subtract x1 (pre-allocated 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_write_accessible(xauto_access)
  • x0.d(xauto_access) >= xresult.d(xauto_access)
  • x1.d(xauto_access) >= xresult.d(xauto_access)
  • x0.is_vector(xauto_access) == x1.is_vector(xauto_access)
Postcondition
  • xresult.is_vector(xauto_access) == x0.is_vector(xauto_access)
  • -unexecutable( "for_all: i, 0, xresult.d(), \ xresult.component(i)==old_x0.component(i)-old_x1.component(i)" )

Definition at line 1789 of file vd.cc.

References fiber_bundle::vd::component(), fiber_bundle::vd::d(), sheaf::poset_component::get_read_access(), sheaf::poset_component::get_read_write_access(), fiber_bundle::vd::is_vector(), fiber_bundle::vd::put_component(), fiber_bundle::vd::put_is_covector(), fiber_bundle::vd::put_is_vector(), sheaf::poset_component::release_access(), sheaf::read_write_monitor_handle::state_is_auto_read_accessible(), and sheaf::read_write_monitor_handle::state_is_auto_read_write_accessible().

Referenced by add_equal(), fiber_bundle::deep_size(), operator-(), fields::field_vd_algebra::subtract(), subtract(), fields::field_vd_algebra::subtract_equal(), fiber_bundle::sec_vd_algebra::subtract_equal(), and subtract_equal().

◆ subtract() [2/3]

void fiber_bundle::vd_algebra::subtract ( const vd_lite x0,
const vd_lite x1,
vd_lite xresult 
)

x0 subtract x1 (pre-allocated version for volatile types).

Precondition
  • x0.d() >= xresult.d()
  • x1.d() >= xresult.d()
Postcondition
  • -unexecutable( "for_all: i, 0, xresult.d(), \ xresult.component(i) == old_x0.component(i) - old_x1.component(i)" )

Definition at line 1842 of file vd.cc.

References fiber_bundle::vd_lite::component(), fiber_bundle::vd_lite::d(), fiber_bundle::vd_lite::put_component(), and subtract_equal().

◆ subtract() [3/3]

template<typename T >
T * fiber_bundle::vd_algebra::subtract ( const T &  x0,
const T &  x1 
)

x0 subtract x1 (auto-allocated version volatile types).

Precondition
  • precondition_of(x0.clone())
  • precondition_of(subtract(x0, x1, *result))
Postcondition
  • result != 0
  • postcondition_of(x0.clone())
  • postcondition_of(subtract(x0, x1, *result))
Precondition
  • precondition_of(x0.clone())
  • precondition_of(subtract(x0, x1, *result))
Postcondition
  • result != 0
  • postcondition_of(x0.clone())
  • postcondition_of(subtract(x0, x1, *result))

Definition at line 238 of file vd.impl.h.

References subtract().

◆ subtract_equal() [1/2]

void fiber_bundle::vd_algebra::subtract_equal ( vd xresult,
const vd xother,
bool  xauto_access 
)

x0 subtract_equal x1 (self-allocated version for persistent types); synonym for subtract(xresult, xother, xresult, xauto_access).

Precondition
  • precondition_of(subtract(xresult, xother, xresult, xauto_access))
Postcondition
  • postcondition_of(subtract(xresult, xother, xresult, xauto_access))

Definition at line 1871 of file vd.cc.

References multiply(), and subtract().

Referenced by operator-=(), and subtract().

◆ subtract_equal() [2/2]

template<typename T >
void fiber_bundle::vd_algebra::subtract_equal ( T &  xresult,
const T &  xother 
)

x0 subtract_equal x1 (self-allocated version for volatile types).

Precondition
  • precondition_of(subtract(xresult, xother, xresult))
Postcondition
  • postcondition_of(subtract(xresult, xother, xresult))
Precondition
  • precondition_of(subtract(xresult, xother, xresult))
Postcondition
  • postcondition_of(subtract(xresult, xother, xresult))

Definition at line 263 of file vd.impl.h.

References subtract().

◆ transform_basis_by() [1/2]

void fiber_bundle::vd_algebra::transform_basis_by ( st2_e3_lite xv,
const gl3_lite xtransform,
bool  is_contravariant 
)

Transform the basis and components of xv by xtransform.

Hack:
Need to move this to vd.h.
Issue:
What do we want to do here?

Definition at line 1382 of file st2_e3.cc.

References fiber_bundle::gl3_lite::basis_matrix(), fiber_bundle::gl3_lite::component_matrix(), and fiber_bundle::st2_algebra::determinant().

◆ transform_basis_by() [2/2]

void fiber_bundle::vd_algebra::transform_basis_by ( e3_lite xv,
const gl3_lite xtransform,
bool  is_contravariant = true 
)

Transform the basis and components of xv by xtransform.

Precondition
  • xtransform.n() == xv.d()
Todo:
Reimplement using the matrix operations on the row_dofs_type.
Todo:
Clean up the comments.
Issue:
its annoying that we have to implement the co- and contra-variant cases entirely separately. A more general implementation based on the notion of inner products of i-th row with j-th column (or row) would be better.

Definition at line 2283 of file e3.cc.

References add(), fiber_bundle::gl3_lite::basis_matrix(), fiber_bundle::gl3_lite::component_matrix(), fiber_bundle::atp_lite::d(), and fiber_bundle::gl3_lite::n().

Referenced by fiber_bundle::st2_e3::invariant(), and fiber_bundle::e3_algebra::operator^=().