Mercurial > hg > segmenter-vamp-plugin
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 //! @} |