comparison armadillo-2.4.4/include/armadillo_bits/fn_randu.hpp @ 0:8b6102e2a9b0

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