Classes | |
| class | Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar > |
| Base interface for Euclidean linear operators. More... | |
| class | Thyra::EuclideanScalarProd< Scalar > |
| Concrete implementation of a scalar product for a Euclidean vector space (i.e. using the dot product). More... | |
| class | Thyra::LinearOpScalarProd< Scalar > |
| Concrete implementation of a scalar product using a symmetric positive-definite linear operator. More... | |
| class | Thyra::ScalarProdBase< Scalar > |
| Abstract interface for scalar products. More... | |
| class | Thyra::ScalarProdVectorSpaceBase< Scalar > |
Base subclass for VectorSpaceBase that allows the definition of an application-specific scalar product to be swapped in and out. More... | |
Support base subclasses for abstracting application-specific scalar products (Note: above graphic is not hyperlinked!)
Thyra::ScalarProdBase defines an interface for an application-specific scalar product independent from a vector space.
Thyra::ScalarProdVectorSpaceBase is subclass of Thyra::VectorSpaceBase that defines the scalar product functions in terms of an aggregate Thyra::ScalarProdBase object that can be swapped in and out (see the C++ code for the Thyra::ScalarProdVectorSpaceBase::scalarProd() function as an example).
Thyra::EuclideanScalarProd is a standard implementation subclass of Thyra::ScalarProdBase for Euclidean scalar products (i.e. using the dot product). This is the default scalar product definition used by Thyra::ScalarProdVectorSpaceBase and all of its subclass objects.
Thyra::LinearOpScalarProd is a more general implementation of a scalar product that uses an arbitrary symmetric positive-definite Thyra::LinearOpBase object (shown using the op relationship in the above UML class diagram).
Thyra::EuclideanLinearOpBase is a base subclass that allows the development of general concrete implementations of Thyra::LinearOpBase that are independent of an application-specific scalar product. This base subclass defines the functions Thyra::EuclideanLinearOpBase::euclideanApply() and Thyra::EuclideanLinearOpBase::euclideanApplyTranspose() which are called by Thyra::ScalarProdBase::apply() to modify the application of an Euclidean linear operator for the definition of the scalar product (see the C++ code for the overridden Thyra::EuclideanLinearOpBase::apply() and Thyra::EuclideanLinearOpBase::applyTranspose() functions). This base class is most helpful for the definition of concrete Thyra::MultiVectorBase subclasses. More specialized linear operators that already define the operator with respect to application-specific scalar product should not derive from this subclass but should instead derive directly from Thyra:LinearOpBase.
The base subclasses Thyra::ScalarProdVectorSpaceBase and Thyra::EuclideanLinearOpBase are used for almost all of the other adapter support subclasses and concrete implementations in the Thyra package.
1.3.9.1