Collection of Concrete Vector Reduction/Transformation Operator Implementations  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
RTOpPack::TOpRandomize< Scalar > Class Template Reference

Generate a random vector in the range [l,u]: z0[i] = 0.5*((u-l)*Teuchos::ScalarTraits<Scalar>::random()+(u+l)), i=0...n-1. More...

#include <RTOpPack_TOpRandomize.hpp>

Inheritance diagram for RTOpPack::TOpRandomize< Scalar >:
Inheritance graph
[legend]

Public Member Functions

 TOpRandomize (const Scalar &l=-ScalarTraits< Scalar >::one(), const Scalar &u=+ScalarTraits< Scalar >::one())
 
void set_bounds (const Scalar &l, const Scalar &u)
 
void set_seed (const unsigned int seed)
 
unsigned int get_seed () const
 

Static Public Member Functions

static void set_static_seed (const unsigned int static_seed)
 
static unsigned int get_static_seed ()
 

Overridden from RTOpT

void apply_op_impl (const ArrayView< const ConstSubVectorView< Scalar > > &sub_vecs, const ArrayView< const SubVectorView< Scalar > > &targ_sub_vecs, const Ptr< ReductTarget > &reduct_obj_inout) const
 

Detailed Description

template<class Scalar>
class RTOpPack::TOpRandomize< Scalar >

Generate a random vector in the range [l,u]: z0[i] = 0.5*((u-l)*Teuchos::ScalarTraits<Scalar>::random()+(u+l)), i=0...n-1.

The seed for the random number generator can be set by TOpRandomize<Scalar>::set_seed(s) where s is some unsigned integer. Note that this class generates random numbers based on the initial seed and the global element ID so this should produce the same pseudo-random elements independent of the number of processors being used.

The seed changes every time a new object is created in order to improve the randomness to some degree.

Definition at line 33 of file RTOpPack_TOpRandomize.hpp.

Constructor & Destructor Documentation

template<class Scalar >
RTOpPack::TOpRandomize< Scalar >::TOpRandomize ( const Scalar &  l = -ScalarTraits<Scalar>::one(),
const Scalar &  u = +ScalarTraits<Scalar>::one() 
)
inline

Definition at line 42 of file RTOpPack_TOpRandomize.hpp.

Member Function Documentation

template<class Scalar >
static void RTOpPack::TOpRandomize< Scalar >::set_static_seed ( const unsigned int  static_seed)
inlinestatic

Definition at line 37 of file RTOpPack_TOpRandomize.hpp.

template<class Scalar >
static unsigned int RTOpPack::TOpRandomize< Scalar >::get_static_seed ( )
inlinestatic

Definition at line 40 of file RTOpPack_TOpRandomize.hpp.

template<class Scalar >
void RTOpPack::TOpRandomize< Scalar >::set_bounds ( const Scalar &  l,
const Scalar &  u 
)
inline

Definition at line 53 of file RTOpPack_TOpRandomize.hpp.

template<class Scalar >
void RTOpPack::TOpRandomize< Scalar >::set_seed ( const unsigned int  seed)
inline

Definition at line 56 of file RTOpPack_TOpRandomize.hpp.

template<class Scalar >
unsigned int RTOpPack::TOpRandomize< Scalar >::get_seed ( ) const
inline

Definition at line 58 of file RTOpPack_TOpRandomize.hpp.

template<class Scalar >
void RTOpPack::TOpRandomize< Scalar >::apply_op_impl ( const ArrayView< const ConstSubVectorView< Scalar > > &  sub_vecs,
const ArrayView< const SubVectorView< Scalar > > &  targ_sub_vecs,
const Ptr< ReductTarget > &  reduct_obj_inout 
) const
inlinevirtual

Implements RTOpPack::RTOpT< Scalar >.

Definition at line 62 of file RTOpPack_TOpRandomize.hpp.


The documentation for this class was generated from the following file: