STK++ 0.9.13
STK_Appliers.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------*/
2/* Copyright (C) 2004-2016 Serge Iovleff, Université Lille 1, Inria
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as
6 published by the Free Software Foundation; either version 2 of the
7 License, or (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this program; if not, write to the
16 Free Software Foundation, Inc.,
17 59 Temple Place,
18 Suite 330,
19 Boston, MA 02111-1307
20 USA
21
22 Contact : S..._Dot_I..._At_stkpp_Dot_org (see copyright for ...)
23 */
24
25/*
26 * Project: stkpp::Arrays
27 * created on: 04/12/2018
28 * Author: iovleff, S..._Dot_I..._At_stkpp_Dot_org (see copyright for ...)
29 **/
30
35#ifndef STK_APPLIERS_H
36#define STK_APPLIERS_H
37
38
39namespace STK
40{
41
42namespace hidden
43{
49template <typename Type>
51{
54 { return Type(Law::generator.randUnif());}
55};
56
61template <typename Type>
63{
66 { return Type(Law::generator.randGauss());}
67};
68
72template <typename Type>
74{
76 inline RandApplier( Law::IUnivLaw<Type> const& law):law_(law){}
77 inline TypeConst operator()() { return law_.rand();}
79};
80
84template <typename Type>
86{
88 Type value_;
89 inline ValueApplier(Type const& value) : value_(value) {};
90 inline TypeConst operator()() { return value_;}
91};
92
93} //namespace hidden
94
95} // namespace STK
96
97#endif /* STK_APPLIERS_H */
Interface base class for all the univariate distributions.
The namespace STK is the main domain space of the Statistical ToolKit project.
Visitor putting a choosen random variable.
RandApplier(Law::IUnivLaw< Type > const &law)
Law::IUnivLaw< Type > const & law_
RemoveConst< Type >::Type TypeConst
Visitor setting Gaussian random variables.
RemoveConst< Type >::Type TypeConst
Applier setting uniform random numbers.
RemoveConst< Type >::Type TypeConst
visitor putting a constant value
ValueApplier(Type const &value)
RemoveConst< Type >::Type TypeConst