max@0
|
1 // Copyright (C) 2008-2011 NICTA (www.nicta.com.au)
|
max@0
|
2 // Copyright (C) 2008-2011 Conrad Sanderson
|
max@0
|
3 //
|
max@0
|
4 // This file is part of the Armadillo C++ library.
|
max@0
|
5 // It is provided without any warranty of fitness
|
max@0
|
6 // for any purpose. You can redistribute this file
|
max@0
|
7 // and/or modify it under the terms of the GNU
|
max@0
|
8 // Lesser General Public License (LGPL) as published
|
max@0
|
9 // by the Free Software Foundation, either version 3
|
max@0
|
10 // of the License or (at your option) any later version.
|
max@0
|
11 // (see http://www.opensource.org/licenses for more info)
|
max@0
|
12
|
max@0
|
13
|
max@0
|
14 //! \addtogroup fn_randu
|
max@0
|
15 //! @{
|
max@0
|
16
|
max@0
|
17
|
max@0
|
18 inline
|
max@0
|
19 double
|
max@0
|
20 randu()
|
max@0
|
21 {
|
max@0
|
22 return double(eop_aux_randu<double>());
|
max@0
|
23 }
|
max@0
|
24
|
max@0
|
25
|
max@0
|
26 template<typename eT>
|
max@0
|
27 inline
|
max@0
|
28 typename arma_scalar_only<eT>::result
|
max@0
|
29 randu()
|
max@0
|
30 {
|
max@0
|
31 return eT(eop_aux_randu<eT>());
|
max@0
|
32 }
|
max@0
|
33
|
max@0
|
34
|
max@0
|
35
|
max@0
|
36 //! Generate a vector with all elements set to random values in the [0,1] interval (uniform distribution)
|
max@0
|
37 arma_inline
|
max@0
|
38 const Gen<vec::elem_type, gen_randu>
|
max@0
|
39 randu(const uword n_elem)
|
max@0
|
40 {
|
max@0
|
41 arma_extra_debug_sigprint();
|
max@0
|
42
|
max@0
|
43 return Gen<vec::elem_type, gen_randu>(n_elem, 1);
|
max@0
|
44 }
|
max@0
|
45
|
max@0
|
46
|
max@0
|
47
|
max@0
|
48 template<typename vec_type>
|
max@0
|
49 arma_inline
|
max@0
|
50 const Gen<typename vec_type::elem_type, gen_randu>
|
max@0
|
51 randu(const uword n_elem, const arma_empty_class junk1 = arma_empty_class(), const typename arma_Mat_Col_Row_only<vec_type>::result* junk2 = 0)
|
max@0
|
52 {
|
max@0
|
53 arma_extra_debug_sigprint();
|
max@0
|
54 arma_ignore(junk1);
|
max@0
|
55 arma_ignore(junk2);
|
max@0
|
56
|
max@0
|
57 if(is_Row<vec_type>::value == true)
|
max@0
|
58 {
|
max@0
|
59 return Gen<typename vec_type::elem_type, gen_randu>(1, n_elem);
|
max@0
|
60 }
|
max@0
|
61 else
|
max@0
|
62 {
|
max@0
|
63 return Gen<typename vec_type::elem_type, gen_randu>(n_elem, 1);
|
max@0
|
64 }
|
max@0
|
65 }
|
max@0
|
66
|
max@0
|
67
|
max@0
|
68
|
max@0
|
69 //! Generate a dense matrix with all elements set to random values in the [0,1] interval (uniform distribution)
|
max@0
|
70 arma_inline
|
max@0
|
71 const Gen<mat::elem_type, gen_randu>
|
max@0
|
72 randu(const uword n_rows, const uword n_cols)
|
max@0
|
73 {
|
max@0
|
74 arma_extra_debug_sigprint();
|
max@0
|
75
|
max@0
|
76 return Gen<mat::elem_type, gen_randu>(n_rows, n_cols);
|
max@0
|
77 }
|
max@0
|
78
|
max@0
|
79
|
max@0
|
80
|
max@0
|
81 template<typename mat_type>
|
max@0
|
82 arma_inline
|
max@0
|
83 const Gen<typename mat_type::elem_type, gen_randu>
|
max@0
|
84 randu(const uword n_rows, const uword n_cols, const typename arma_Mat_Col_Row_only<mat_type>::result* junk = 0)
|
max@0
|
85 {
|
max@0
|
86 arma_extra_debug_sigprint();
|
max@0
|
87 arma_ignore(junk);
|
max@0
|
88
|
max@0
|
89 return Gen<typename mat_type::elem_type, gen_randu>(n_rows, n_cols);
|
max@0
|
90 }
|
max@0
|
91
|
max@0
|
92
|
max@0
|
93
|
max@0
|
94 arma_inline
|
max@0
|
95 const GenCube<cube::elem_type, gen_randu>
|
max@0
|
96 randu(const uword n_rows, const uword n_cols, const uword n_slices)
|
max@0
|
97 {
|
max@0
|
98 arma_extra_debug_sigprint();
|
max@0
|
99
|
max@0
|
100 return GenCube<cube::elem_type, gen_randu>(n_rows, n_cols, n_slices);
|
max@0
|
101 }
|
max@0
|
102
|
max@0
|
103
|
max@0
|
104
|
max@0
|
105 template<typename cube_type>
|
max@0
|
106 arma_inline
|
max@0
|
107 const GenCube<typename cube_type::elem_type, gen_randu>
|
max@0
|
108 randu(const uword n_rows, const uword n_cols, const uword n_slices, const typename arma_Cube_only<cube_type>::result* junk = 0)
|
max@0
|
109 {
|
max@0
|
110 arma_extra_debug_sigprint();
|
max@0
|
111 arma_ignore(junk);
|
max@0
|
112
|
max@0
|
113 return GenCube<typename cube_type::elem_type, gen_randu>(n_rows, n_cols, n_slices);
|
max@0
|
114 }
|
max@0
|
115
|
max@0
|
116
|
max@0
|
117
|
max@0
|
118 //! @}
|