43 #ifndef RTOPPACK_TOP_RANDOMIZE_HPP
44 #define RTOPPACK_TOP_RANDOMIZE_HPP
46 #include "RTOpPack_RTOpTHelpers.hpp"
64 template<
class Scalar>
70 { static_seed_ = static_seed; }
75 const Scalar& l = -ScalarTraits<Scalar>::one(),
76 const Scalar& u = +ScalarTraits<Scalar>::one()
88 void set_seed(
const unsigned int seed ) { seed_ = seed; }
90 unsigned int get_seed()
const {
return seed_; }
97 const Ptr<ReductTarget> &reduct_obj_inout
103 validate_apply_op<Scalar>(*
this, 0, 1,
false,
104 sub_vecs, targ_sub_vecs, reduct_obj_inout.getConst());
107 const index_type subDim = targ_sub_vecs[0].subDim();
108 const index_type globalOffset = targ_sub_vecs[0].globalOffset();
110 iter_t z0_val = targ_sub_vecs[0].values().begin();
111 const ptrdiff_t z0_s = targ_sub_vecs[0].stride();
114 const Scalar a = Scalar(0.5)*(u_ - l_);
115 const Scalar b = Scalar(0.5)*(u_ + l_);
116 for( index_type i = 0; i < subDim; ++i, z0_val += z0_s )
125 static unsigned int static_seed_;
132 template<
class Scalar>
133 unsigned int TOpRandomize<Scalar>::static_seed_ = 0;
139 #endif // RTOPPACK_TOP_RANDOMIZE_HPP