Commit 35bf6f1d authored by Bernd Flemisch's avatar Bernd Flemisch
Browse files

remove superfluous `Dumux::` qualifiers

Everything in our .hh files is defined within the namespace `Dumux`.
There were numerous occurrences of `Dumux::` qualifiers that were
unnecessary. Remove those occurrences. Necessary qualifications
remain, such as `typedef Dumux::H2O<Scalar> H2O;`.
parent c278897c
......@@ -148,13 +148,13 @@ SET_STRING_PROP(NumericModel, ModelParameterGroup, "");
SET_STRING_PROP(NumericModel, GridParameterGroup, "Grid");
//! Use the DgfGridCreator by default
SET_TYPE_PROP(NumericModel, GridCreator, Dumux::GridCreator<TypeTag>);
SET_TYPE_PROP(NumericModel, GridCreator, GridCreator<TypeTag>);
//! Use the minimal point source implementation as default
SET_TYPE_PROP(NumericModel, PointSource, Dumux::PointSource<TypeTag>);
SET_TYPE_PROP(NumericModel, PointSource, PointSource<TypeTag>);
//! Use the point source helper using the bounding box tree as a default
SET_TYPE_PROP(NumericModel, PointSourceHelper, Dumux::BoundingBoxTreePointSourceHelper<TypeTag>);
SET_TYPE_PROP(NumericModel, PointSourceHelper, BoundingBoxTreePointSourceHelper<TypeTag>);
//! Set default output level to 0 -> only primary variables are added to output
SET_INT_PROP(NumericModel, VtkOutputLevel, 0);
......@@ -165,7 +165,7 @@ SET_PROP(NumericModel, VtkMultiWriter)
private:
typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
public:
typedef typename Dumux::VtkMultiWriter<GridView> type;
typedef VtkMultiWriter<GridView> type;
};
} // namespace Properties
......
......@@ -216,7 +216,7 @@ public:
const GlobalPosition v3 = *p[(i + 3)%4] - *p[i];
const GlobalPosition v = point - *p[i];
// compute the normal to the facet (cross product)
GlobalPosition n1 = Dumux::crossProduct(v1, v2);
GlobalPosition n1 = crossProduct(v1, v2);
n1 /= n1.two_norm();
// find out on which side of the plane v and v3 are
const double t1 = n1.dot(v);
......@@ -245,7 +245,7 @@ public:
const GlobalPosition v = point - p0;
// compute the normal of the triangle
const GlobalPosition n = Dumux::crossProduct(v1, v2);
const GlobalPosition n = crossProduct(v1, v2);
// first check if we are in the plane of the triangle
// if not we can return early
......@@ -256,15 +256,15 @@ public:
// compute the normal to the triangle made of point and first edge
// the dot product of this normal and the triangle normal has to
// be positive because we defined the edges in the right orientation
const GlobalPosition n1 = Dumux::crossProduct(v, v1);
const GlobalPosition n1 = crossProduct(v, v1);
const double t1 = n.dot(n1);
if (t1 < 0) return false;
const GlobalPosition n2 = Dumux::crossProduct(v, v2);
const GlobalPosition n2 = crossProduct(v, v2);
const double t2 = n.dot(n2);
if (t2 < 0) return false;
const GlobalPosition n3 = Dumux::crossProduct(v, v3);
const GlobalPosition n3 = crossProduct(v, v3);
const double t3 = n.dot(n3);
if (t3 < 0) return false;
......@@ -291,7 +291,7 @@ public:
return false;
// if the cross product is zero the points are on a line
const GlobalPosition n = Dumux::crossProduct(v1, v2);
const GlobalPosition n = crossProduct(v1, v2);
// early return if the vector length is larger than zero
if (n.two_norm() > v1norm*eps_)
......@@ -537,7 +537,7 @@ public:
return false;
// if the cross product is zero the points are on a line
const double n = Dumux::crossProduct(v1, v2);
const double n = crossProduct(v1, v2);
// early return if the cross product is larger than zero
if (n > v1norm*eps_)
......@@ -930,7 +930,7 @@ public:
//! Compute all intersections between entities and another bounding box tree
template<class OtherGridView>
std::vector<BoundingBoxTreeIntersection<GridView, OtherGridView>>
computeEntityCollisions(const Dumux::BoundingBoxTree<OtherGridView>& otherTree) const
computeEntityCollisions(const BoundingBoxTree<OtherGridView>& otherTree) const
{
// check if the world dimensions match
static_assert(dimworld == OtherGridView::dimensionworld, "Can only collide bounding box trees of same world dimension");
......@@ -1056,7 +1056,7 @@ private:
//! Compute collisions with other bounding box tree recursively
template <class OtherGridView>
void computeCollisions_(const Dumux::BoundingBoxTree<OtherGridView>& treeB,
void computeCollisions_(const BoundingBoxTree<OtherGridView>& treeB,
unsigned int nodeA,
unsigned int nodeB,
std::vector<BoundingBoxTreeIntersection<GridView, OtherGridView>>& intersections) const
......@@ -1087,7 +1087,7 @@ private:
auto geometryA = treeA.entity(eIdxA).geometry();
auto geometryB = treeB.entity(eIdxB).geometry();
using CollisionType = Dumux::GeometryCollision<decltype(geometryA), decltype(geometryB)>;
using CollisionType = GeometryCollision<decltype(geometryA), decltype(geometryB)>;
std::vector<GlobalPosition> intersection;
if (CollisionType::collide(geometryA, geometryB, intersection))
intersections.emplace_back(eIdxA, eIdxB, std::move(intersection));
......
......@@ -117,7 +117,7 @@ public:
const auto v1 = geo1.corner(f[2]) - geo1.corner(f[0]);
const auto eps = eps_*v0.two_norm();
auto n = Dumux::crossProduct(v0, v1);
auto n = crossProduct(v0, v1);
n /= n.two_norm();
const Scalar denom = n*d;
......
......@@ -168,9 +168,9 @@ private:
* \brief A point source class with an identifier to attach data
*/
template<class TypeTag, typename IdType>
class IdPointSource : public Dumux::PointSource<TypeTag>
class IdPointSource : public PointSource<TypeTag>
{
typedef typename Dumux::PointSource<TypeTag> ParentType;
typedef PointSource<TypeTag> ParentType;
typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
......@@ -215,9 +215,9 @@ private:
* \brief A point source class for time dependent point sources
*/
template<class TypeTag>
class TimeDependentPointSource : public Dumux::PointSource<TypeTag>
class TimeDependentPointSource : public PointSource<TypeTag>
{
typedef typename Dumux::PointSource<TypeTag> ParentType;
typedef PointSource<TypeTag> ParentType;
typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
......
......@@ -585,7 +585,7 @@ protected:
Scalar a, Scalar b, Scalar c, Scalar d,
Scalar x0 = -1e100, Scalar x1 = 1e100) const
{
int n = Dumux::invertCubicPolynomial(sol,
int n = invertCubicPolynomial(sol,
a_(segIdx) - a,
b_(segIdx) - b,
c_(segIdx) - c,
......
......@@ -410,7 +410,7 @@ int start_(int argc,
printProps = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, bool, TimeManager, PrintProperties);
if (printProps && mpiHelper.rank() == 0) {
Dumux::Properties::print<TypeTag>();
Properties::print<TypeTag>();
}
// deal with the restart stuff
......@@ -470,7 +470,7 @@ int start_(int argc,
dumuxMessage_(false);
if (printParams && mpiHelper.rank() == 0) {
Dumux::Parameters::print<TypeTag>();
Parameters::print<TypeTag>();
}
// check if a deprecated TypeTag has been used
......@@ -509,8 +509,8 @@ int start(int argc,
try {
return start_<TypeTag>(argc, argv, usage);
}
catch (Dumux::ParameterException &e) {
Dumux::Parameters::print<TypeTag>();
catch (ParameterException &e) {
Parameters::print<TypeTag>();
std::cerr << e << ". Abort!\n";
return 1;
}
......
......@@ -58,7 +58,7 @@ namespace Properties
//////////////////////////////////////////////////////////////////
//! The local jacobian operator for the stokes box scheme
SET_TYPE_PROP(BoxStokes, LocalJacobian, Dumux::StokesLocalJacobian<TypeTag>);
SET_TYPE_PROP(BoxStokes, LocalJacobian, StokesLocalJacobian<TypeTag>);
SET_PROP(BoxStokes, NumEq) //!< set the number of equations
{
......@@ -108,7 +108,7 @@ SET_PROP(BoxStokes, Fluid)
{ private:
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
public:
typedef Dumux::FluidSystems::LiquidPhase<Scalar, Dumux::NullComponent<Scalar> > type;
typedef FluidSystems::LiquidPhase<Scalar, NullComponent<Scalar> > type;
};
//! Set the indices used by the Stokes model
......@@ -120,7 +120,7 @@ SET_PROP(BoxStokes, FluidState)
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
public:
typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> type;
typedef ImmiscibleFluidState<Scalar, FluidSystem> type;
};
......
......@@ -48,7 +48,7 @@ template <class TypeTag>
class StokesncFluxVariables : public StokesFluxVariables<TypeTag>
{
friend class StokesFluxVariables<TypeTag>; // be friends with parent
typedef Dumux::StokesFluxVariables<TypeTag> ParentType;
typedef StokesFluxVariables<TypeTag> ParentType;
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
......
......@@ -84,7 +84,7 @@ SET_PROP(BoxStokesnc, FluidState)
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
public:
typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> type;
typedef CompositionalFluidState<Scalar, FluidSystem> type;
};
//! Choose the considered phase (single-phase system); the gas phase is used
......
......@@ -51,7 +51,7 @@ public:
{ }
/*!
* \brief Called by the Dumux::TimeManager in order to initialize the problem.
* \brief Called by the TimeManager in order to initialize the problem.
*
* If you overload this method don't forget to call ParentType::init().<br>
* This initializes all wall-related properties, which are necessary for the
......
......@@ -56,8 +56,8 @@ class ElOnePTwoCFluxVariables: public ElasticFluxVariablesBase<TypeTag> ,
friend class ElasticFluxVariablesBase<TypeTag>; // be friends with parents
friend class OnePTwoCFluxVariables<TypeTag>; // be friends with parents
typedef Dumux::ElasticFluxVariablesBase<TypeTag> ElasticBase;
typedef Dumux::OnePTwoCFluxVariables<TypeTag> OnePTwoCBase;
typedef ElasticFluxVariablesBase<TypeTag> ElasticBase;
typedef OnePTwoCFluxVariables<TypeTag> OnePTwoCBase;
typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
......
......@@ -80,10 +80,10 @@ SET_TYPE_PROP(BoxElasticOnePTwoC,
SET_TYPE_PROP(BoxElasticOnePTwoC, Model, ElOnePTwoCModel<TypeTag>);
//! define the ElementVolumeVariables
SET_TYPE_PROP(BoxElasticOnePTwoC, ElementVolumeVariables, Dumux::ElOnePTwoCElementVolumeVariables<TypeTag>);
SET_TYPE_PROP(BoxElasticOnePTwoC, ElementVolumeVariables, ElOnePTwoCElementVolumeVariables<TypeTag>);
//! define the VolumeVariables
SET_TYPE_PROP(BoxElasticOnePTwoC, VolumeVariables, Dumux::ElOnePTwoCVolumeVariables<TypeTag>);
SET_TYPE_PROP(BoxElasticOnePTwoC, VolumeVariables, ElOnePTwoCVolumeVariables<TypeTag>);
//! define the FluxVariables
SET_TYPE_PROP(BoxElasticOnePTwoC, FluxVariables, ElOnePTwoCFluxVariables<TypeTag>);
......@@ -99,7 +99,7 @@ SET_PROP(BoxElasticOnePTwoC, FluidState){
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
public:
typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> type;
typedef CompositionalFluidState<Scalar, FluidSystem> type;
};
//! set default upwind weights to 1.0, i.e. fully upwind
......
......@@ -59,7 +59,7 @@ template<class TypeTag>
class ElTwoPFluxVariables: public ImplicitDarcyFluxVariables<TypeTag>
{
friend class ImplicitDarcyFluxVariables<TypeTag>; // be friends with parent
typedef Dumux::ImplicitDarcyFluxVariables<TypeTag> ParentType;
typedef ImplicitDarcyFluxVariables<TypeTag> ParentType;
typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
......
......@@ -306,7 +306,7 @@ public:
// assume deformation induced porosity changes
if(model_.problem().coupled() == true){
if (porosity + uDiv < 1e-3*porosity){
DUNE_THROW(Dumux::NumericalProblem, "volume change too large");
DUNE_THROW(NumericalProblem, "volume change too large");
}
else
// this equation would be correct if the bulk volume could change (Vol_new = Vol_init * (1+div u)), however, we
......
......@@ -91,7 +91,7 @@ public:
/*!
* \brief Solve the linear system of equations \f$\mathbf{A}x - b = 0\f$.
*
* Throws Dumux::NumericalProblem if the linear solver didn't
* Throws NumericalProblem if the linear solver didn't
* converge.
*
* \param A The matrix of the linear system of equations
......@@ -138,7 +138,7 @@ public:
if (this->gridView_().comm().size() > 1)
converged = this->gridView_().comm().min(converged);
Dumux::NumericalProblem p;
NumericalProblem p;
std::string msg;
std::ostringstream ms(msg);
ms << e.what() << "M=" << A.base()[e.r][e.c];
......@@ -151,7 +151,7 @@ public:
if (this->gridView_().comm().size() > 1)
converged = this->gridView_().comm().min(converged);
Dumux::NumericalProblem p;
NumericalProblem p;
p.message(e.what());
throw p;
}
......
......@@ -93,7 +93,7 @@ SET_TYPE_PROP(BoxElasticTwoP, Model, ElTwoPModel<TypeTag>);
/*!
* \brief An array of secondary variable containers.
*/
SET_TYPE_PROP(BoxElasticTwoP, ElementVolumeVariables, Dumux::ElTwoPElementVolumeVariables<TypeTag>);
SET_TYPE_PROP(BoxElasticTwoP, ElementVolumeVariables, ElTwoPElementVolumeVariables<TypeTag>);
//! the VolumeVariables property
SET_TYPE_PROP(BoxElasticTwoP, VolumeVariables, ElTwoPVolumeVariables<TypeTag>);
......@@ -145,17 +145,17 @@ SET_PROP(BoxElasticTwoP, EffectivePermeabilityModel)
private:
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
public:
typedef Dumux::PermeabilityRutqvistTsang<Scalar> type;
typedef PermeabilityRutqvistTsang<Scalar> type;
};
// SET_TYPE_PROP(BoxElasticTwoP, EffectivePermeabilityModel, Dumux::PermeabilityRutqvistTsang<typename GET_PROP_TYPE(TypeTag, Scalar), typename GET_PROP_TYPE(TypeTag, Gridview)::dimension>);
// SET_TYPE_PROP(BoxElasticTwoP, EffectivePermeabilityModel, PermeabilityRutqvistTsang<typename GET_PROP_TYPE(TypeTag, Scalar), typename GET_PROP_TYPE(TypeTag, Gridview)::dimension>);
// use the SuperLU linear solver by default
#if HAVE_SUPERLU
SET_TYPE_PROP(BoxElasticTwoP, LinearSolver, Dumux::SuperLUBackend<TypeTag> );
SET_TYPE_PROP(BoxElasticTwoP, LinearSolver, SuperLUBackend<TypeTag> );
#else
#warning no SuperLU detected, defaulting to ILU0BiCGSTAB. For many problems, the el2p model requires a direct solver.
SET_TYPE_PROP(BoxElasticTwoP, LinearSolver, Dumux::ILU0BiCGSTABBackend<TypeTag> );
SET_TYPE_PROP(BoxElasticTwoP, LinearSolver, ILU0BiCGSTABBackend<TypeTag> );
#endif
// set the grid operator
......@@ -315,20 +315,20 @@ public:
// set the grid function space for the sub-models
SET_TYPE_PROP(BoxElasticTwoP, Constraints, Dune::PDELab::NoConstraints);
SET_TYPE_PROP(BoxElasticTwoP, JacobianAssembler, Dumux::PDELab::El2PAssembler<TypeTag>);
SET_TYPE_PROP(BoxElasticTwoP, JacobianAssembler, PDELab::El2PAssembler<TypeTag>);
SET_PROP(BoxElasticTwoP, WettingPhase)
{ private:
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
public:
typedef Dumux::FluidSystems::LiquidPhase<Scalar, Dumux::NullComponent<Scalar> > type;
typedef FluidSystems::LiquidPhase<Scalar, NullComponent<Scalar> > type;
};
SET_PROP(BoxElasticTwoP, NonwettingPhase)
{ private:
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
public:
typedef Dumux::FluidSystems::LiquidPhase<Scalar, Dumux::NullComponent<Scalar> > type;
typedef FluidSystems::LiquidPhase<Scalar, NullComponent<Scalar> > type;
};
SET_PROP(BoxElasticTwoP, FluidSystem)
......@@ -338,7 +338,7 @@ SET_PROP(BoxElasticTwoP, FluidSystem)
typedef typename GET_PROP_TYPE(TypeTag, NonwettingPhase) NonwettingPhase;
public:
typedef Dumux::FluidSystems::TwoPImmiscible<Scalar,
typedef FluidSystems::TwoPImmiscible<Scalar,
WettingPhase,
NonwettingPhase> type;
};
......@@ -361,7 +361,7 @@ SET_TYPE_PROP(BoxElasticTwoP, NewtonController, ElTwoPNewtonController<TypeTag>)
SET_PROP(BoxElasticTwoP, LocalOperator)
{
typedef Dumux::PDELab::El2PLocalOperator<TypeTag> type;
typedef PDELab::El2PLocalOperator<TypeTag> type;
};
//! use the local FEM space associated with cubes by default
......@@ -426,7 +426,7 @@ public:
};
//! The local jacobian operator
SET_TYPE_PROP(BoxElasticTwoP, LocalJacobian, Dumux::ElTwoPLocalJacobian<TypeTag>);
SET_TYPE_PROP(BoxElasticTwoP, LocalJacobian, ElTwoPLocalJacobian<TypeTag>);
SET_TYPE_PROP(BoxElasticTwoP, BaseModel, ElTwoPBaseModel<TypeTag>);
......
......@@ -167,7 +167,7 @@ public:
if (gridView_().comm().size() > 1)
succeeded = gridView_().comm().min(succeeded);
}
catch (Dumux::NumericalProblem &e)
catch (NumericalProblem &e)
{
std::cout << "rank " << problem_().gridView().comm().rank()
<< " caught an exception while assembling:" << e.what()
......
......@@ -48,7 +48,7 @@ template<class TypeTag> class BoxFVElementGeometry;
namespace Properties {
//! Set the default for the FVElementGeometry
SET_TYPE_PROP(BoxModel, FVElementGeometry, Dumux::BoxFVElementGeometry<TypeTag>);
SET_TYPE_PROP(BoxModel, FVElementGeometry, BoxFVElementGeometry<TypeTag>);
//! Disable evaluation of shape function gradients at the sub-control volume center by default
// The shape function gradients at the sub-control volume center are currently only
......@@ -56,19 +56,19 @@ SET_TYPE_PROP(BoxModel, FVElementGeometry, Dumux::BoxFVElementGeometry<TypeTag>)
SET_BOOL_PROP(BoxModel, EvalGradientsAtSCVCenter, false);
//! Set the default for the ElementBoundaryTypes
SET_TYPE_PROP(BoxModel, ElementBoundaryTypes, Dumux::BoxElementBoundaryTypes<TypeTag>);
SET_TYPE_PROP(BoxModel, ElementBoundaryTypes, BoxElementBoundaryTypes<TypeTag>);
//! Mapper for the degrees of freedoms.
SET_TYPE_PROP(BoxModel, DofMapper, typename GET_PROP_TYPE(TypeTag, VertexMapper));
//! Set the BaseLocalResidual to BoxLocalResidual
SET_TYPE_PROP(BoxModel, BaseLocalResidual, Dumux::BoxLocalResidual<TypeTag>);
SET_TYPE_PROP(BoxModel, BaseLocalResidual, BoxLocalResidual<TypeTag>);
//! An array of secondary variable containers
SET_TYPE_PROP(BoxModel, ElementVolumeVariables, Dumux::BoxElementVolumeVariables<TypeTag>);
SET_TYPE_PROP(BoxModel, ElementVolumeVariables, BoxElementVolumeVariables<TypeTag>);
//! Assembler for the global jacobian matrix
SET_TYPE_PROP(BoxModel, JacobianAssembler, Dumux::BoxAssembler<TypeTag>);
SET_TYPE_PROP(BoxModel, JacobianAssembler, BoxAssembler<TypeTag>);
//! disable two-point-flux by default
SET_BOOL_PROP(BoxModel, ImplicitUseTwoPointFlux, false);
......
......@@ -49,22 +49,22 @@ template<class TypeTag> class CCFVElementGeometry;
namespace Properties {
//! Set the default for the FVElementGeometry
SET_TYPE_PROP(CCModel, FVElementGeometry, Dumux::CCFVElementGeometry<TypeTag>);
SET_TYPE_PROP(CCModel, FVElementGeometry, CCFVElementGeometry<TypeTag>);
//! Set the default for the ElementBoundaryTypes
SET_TYPE_PROP(CCModel, ElementBoundaryTypes, Dumux::CCElementBoundaryTypes<TypeTag>);
SET_TYPE_PROP(CCModel, ElementBoundaryTypes, CCElementBoundaryTypes<TypeTag>);
//! Mapper for the degrees of freedoms.
SET_TYPE_PROP(CCModel, DofMapper, typename GET_PROP_TYPE(TypeTag, ElementMapper));
//! Set the BaseLocalResidual to CCLocalResidual
SET_TYPE_PROP(CCModel, BaseLocalResidual, Dumux::CCLocalResidual<TypeTag>);
SET_TYPE_PROP(CCModel, BaseLocalResidual, CCLocalResidual<TypeTag>);
//! An array of secondary variable containers
SET_TYPE_PROP(CCModel, ElementVolumeVariables, Dumux::CCElementVolumeVariables<TypeTag>);
SET_TYPE_PROP(CCModel, ElementVolumeVariables, CCElementVolumeVariables<TypeTag>);
//! Assembler for the global jacobian matrix
SET_TYPE_PROP(CCModel, JacobianAssembler, Dumux::CCAssembler<TypeTag>);
SET_TYPE_PROP(CCModel, JacobianAssembler, CCAssembler<TypeTag>);
//! indicate that this is no box discretization
SET_BOOL_PROP(CCModel, ImplicitIsBox, false);
......
......@@ -284,7 +284,7 @@ public:
// the base epsilon is thus approximately 10^-8.
/*
static const Scalar baseEps
= Dumux::geometricMean<Scalar>(std::numeric_limits<Scalar>::epsilon(), 1.0);
= geometricMean<Scalar>(std::numeric_limits<Scalar>::epsilon(), 1.0);
*/
static const Scalar baseEps = 1e-10;
assert(std::numeric_limits<Scalar>::epsilon()*1e4 < baseEps);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment