ROL
ROL_RandomVector.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Rapid Optimization Library (ROL) Package
4//
5// Copyright 2014 NTESS and the ROL contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef ROL_RANDOMVECTOR_H
11#define ROL_RANDOMVECTOR_H
12
13#include "ROL_Vector.hpp"
15#include "ROL_Elementwise_Function.hpp"
16
17
18namespace ROL {
19
29template<class Real>
30void RandomizeVector( Vector<Real> &x, const Real &lower=0.0, const Real &upper=1.0 ) {
31
32 Elementwise::UniformlyRandom<Real> ur(lower,upper);
33 x.applyUnary(ur);
34}
35
44template<class Real>
46 const ROL::Ptr<const Vector<Real> > u = bnd.getUpperBound();
47 const ROL::Ptr<const Vector<Real> > l = bnd.getLowerBound();
48
49 Elementwise::UniformlyRandomMultiply<Real> urm;
50
51 x.set(*u);
52 x.axpy(-1.0,*l);
53 x.applyUnary(urm);
54 x.plus(*l);
55}
56
57
58} // namespace ROL
59
60#endif // ROL_RANDOMVECTOR_H
Provides the interface to apply upper and lower bound constraints.
virtual const Ptr< const Vector< Real > > getLowerBound(void) const
Return the ref count pointer to the lower bound vector.
virtual const Ptr< const Vector< Real > > getUpperBound(void) const
Return the ref count pointer to the upper bound vector.
Defines the linear algebra or vector space interface.
virtual void set(const Vector &x)
Set where .
virtual void applyUnary(const Elementwise::UnaryFunction< Real > &f)
virtual void plus(const Vector &x)=0
Compute , where .
virtual void axpy(const Real alpha, const Vector &x)
Compute where .
void RandomizeVector(Vector< Real > &x, const Real &lower=0.0, const Real &upper=1.0)
Fill a ROL::Vector with uniformly-distributed random numbers in the interval [lower,...
void RandomizeFeasibleVector(Vector< Real > &x, BoundConstraint< Real > &bnd)
Fill a ROL::Vector with uniformly-distributed random numbers which satisfy the supplied bound constra...