comparison armadillo-2.4.4/include/armadillo_bits/fn_randn.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_randn
15 //! @{
16
17
18 inline
19 double
20 randn()
21 {
22 return double(eop_aux_randn<double>());
23 }
24
25
26 template<typename eT>
27 inline
28 typename arma_scalar_only<eT>::result
29 randn()
30 {
31 return eT(eop_aux_randn<eT>());
32 }
33
34
35
36 //! Generate a vector with all elements set to random values with a gaussian distribution (zero mean, unit variance)
37 arma_inline
38 const Gen<vec::elem_type, gen_randn>
39 randn(const uword n_elem)
40 {
41 arma_extra_debug_sigprint();
42
43 return Gen<vec::elem_type, gen_randn>(n_elem, 1);
44 }
45
46
47
48 template<typename vec_type>
49 arma_inline
50 const Gen<typename vec_type::elem_type, gen_randn>
51 randn(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_randn>(1, n_elem);
60 }
61 else
62 {
63 return Gen<typename vec_type::elem_type, gen_randn>(n_elem, 1);
64 }
65 }
66
67
68
69 //! Generate a dense matrix with all elements set to random values with a gaussian distribution (zero mean, unit variance)
70 arma_inline
71 const Gen<mat::elem_type, gen_randn>
72 randn(const uword n_rows, const uword n_cols)
73 {
74 arma_extra_debug_sigprint();
75
76 return Gen<mat::elem_type, gen_randn>(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_randn>
84 randn(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_randn>(n_rows, n_cols);
90 }
91
92
93
94 arma_inline
95 const GenCube<cube::elem_type, gen_randn>
96 randn(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_randn>(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_randn>
108 randn(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
112 arma_ignore(junk);
113
114 return GenCube<typename cube_type::elem_type, gen_randn>(n_rows, n_cols, n_slices);
115 }
116
117
118
119 //! @}