Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
interfaces
operator_vector
extended
Thyra_ScaledLinearOpBase.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Thyra: Interfaces and Support for Abstract Numerical Algorithms
4
//
5
// Copyright 2004 NTESS and the Thyra contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef THYRA_SCALED_LINEAR_OP_BASE_HPP
11
#define THYRA_SCALED_LINEAR_OP_BASE_HPP
12
13
#include "Thyra_LinearOpBase_decl.hpp"
14
15
16
namespace
Thyra {
17
18
49
template
<
class
Scalar>
50
class
ScaledLinearOpBase
:
virtual
public
LinearOpBase
<Scalar> {
51
public
:
52
55
58
bool
supportsScaleLeft
()
const
59
{
return
supportsScaleLeftImpl
(); }
60
63
bool
supportsScaleRight
()
const
64
{
return
supportsScaleRightImpl
(); }
65
70
void
scaleLeft
(
const
VectorBase<Scalar>
&row_scaling)
71
{
scaleLeftImpl
(row_scaling); }
72
77
void
scaleRight
(
const
VectorBase<Scalar>
&col_scaling)
78
{
scaleRightImpl
(col_scaling); }
79
81
82
protected
:
83
86
88
virtual
bool
supportsScaleLeftImpl
()
const
= 0;
89
91
virtual
bool
supportsScaleRightImpl
()
const
= 0;
92
94
virtual
void
scaleLeftImpl
(
const
VectorBase<Scalar>
&row_scaling) = 0;
95
97
virtual
void
scaleRightImpl
(
const
VectorBase<Scalar>
&col_scaling) = 0;
98
100
101
};
102
103
104
}
// end namespace Thyra
105
106
107
#endif
// THYRA_SCALED_LINEAR_OP_BASE_HPP
Thyra::LinearOpBase
Base class for all linear operators.
Definition
Thyra_LinearOpBase_decl.hpp:159
Thyra::ScaledLinearOpBase
Applies left or right sclaing to the linear operator.
Definition
Thyra_ScaledLinearOpBase.hpp:50
Thyra::ScaledLinearOpBase::supportsScaleLeftImpl
virtual bool supportsScaleLeftImpl() const =0
Thyra::ScaledLinearOpBase::scaleLeftImpl
virtual void scaleLeftImpl(const VectorBase< Scalar > &row_scaling)=0
Thyra::ScaledLinearOpBase::scaleLeft
void scaleLeft(const VectorBase< Scalar > &row_scaling)
Left scales operator with diagonal scaling operator.
Definition
Thyra_ScaledLinearOpBase.hpp:70
Thyra::ScaledLinearOpBase::supportsScaleRight
bool supportsScaleRight() const
Determines if this objects supports right scaling.
Definition
Thyra_ScaledLinearOpBase.hpp:63
Thyra::ScaledLinearOpBase::supportsScaleLeft
bool supportsScaleLeft() const
Determines if this objects supports left scaling.
Definition
Thyra_ScaledLinearOpBase.hpp:58
Thyra::ScaledLinearOpBase::scaleRightImpl
virtual void scaleRightImpl(const VectorBase< Scalar > &col_scaling)=0
Thyra::ScaledLinearOpBase::scaleRight
void scaleRight(const VectorBase< Scalar > &col_scaling)
Right scales operator with diagonal scaling operator.
Definition
Thyra_ScaledLinearOpBase.hpp:77
Thyra::ScaledLinearOpBase::supportsScaleRightImpl
virtual bool supportsScaleRightImpl() const =0
Thyra::VectorBase
Abstract interface for finite-dimensional dense vectors.
Definition
Thyra_VectorBase.hpp:115
Generated by
1.17.0