max@0
|
1 // Copyright (C) 2010-2011 NICTA (www.nicta.com.au)
|
max@0
|
2 // Copyright (C) 2010-2011 Conrad Sanderson
|
max@0
|
3 // Copyright (C) 2010 Dimitrios Bouzas
|
max@0
|
4 //
|
max@0
|
5 // This file is part of the Armadillo C++ library.
|
max@0
|
6 // It is provided without any warranty of fitness
|
max@0
|
7 // for any purpose. You can redistribute this file
|
max@0
|
8 // and/or modify it under the terms of the GNU
|
max@0
|
9 // Lesser General Public License (LGPL) as published
|
max@0
|
10 // by the Free Software Foundation, either version 3
|
max@0
|
11 // of the License or (at your option) any later version.
|
max@0
|
12 // (see http://www.opensource.org/licenses for more info)
|
max@0
|
13
|
max@0
|
14
|
max@0
|
15 //! \addtogroup op_princomp
|
max@0
|
16 //! @{
|
max@0
|
17
|
max@0
|
18
|
max@0
|
19
|
max@0
|
20 class op_princomp
|
max@0
|
21 {
|
max@0
|
22 public:
|
max@0
|
23
|
max@0
|
24 // real element versions
|
max@0
|
25
|
max@0
|
26 template<typename eT>
|
max@0
|
27 inline static bool
|
max@0
|
28 direct_princomp
|
max@0
|
29 (
|
max@0
|
30 Mat<eT>& coeff_out,
|
max@0
|
31 const Mat<eT>& in
|
max@0
|
32 );
|
max@0
|
33
|
max@0
|
34 template<typename eT>
|
max@0
|
35 inline static bool
|
max@0
|
36 direct_princomp
|
max@0
|
37 (
|
max@0
|
38 Mat<eT>& coeff_out,
|
max@0
|
39 Mat<eT>& score_out,
|
max@0
|
40 const Mat<eT>& in
|
max@0
|
41 );
|
max@0
|
42
|
max@0
|
43 template<typename eT>
|
max@0
|
44 inline static bool
|
max@0
|
45 direct_princomp
|
max@0
|
46 (
|
max@0
|
47 Mat<eT>& coeff_out,
|
max@0
|
48 Mat<eT>& score_out,
|
max@0
|
49 Col<eT>& latent_out,
|
max@0
|
50 const Mat<eT>& in
|
max@0
|
51 );
|
max@0
|
52
|
max@0
|
53 template<typename eT>
|
max@0
|
54 inline static bool
|
max@0
|
55 direct_princomp
|
max@0
|
56 (
|
max@0
|
57 Mat<eT>& coeff_out,
|
max@0
|
58 Mat<eT>& score_out,
|
max@0
|
59 Col<eT>& latent_out,
|
max@0
|
60 Col<eT>& tsquared_out,
|
max@0
|
61 const Mat<eT>& in
|
max@0
|
62 );
|
max@0
|
63
|
max@0
|
64
|
max@0
|
65 // complex element versions
|
max@0
|
66
|
max@0
|
67 template<typename T>
|
max@0
|
68 inline static bool
|
max@0
|
69 direct_princomp
|
max@0
|
70 (
|
max@0
|
71 Mat< std::complex<T> >& coeff_out,
|
max@0
|
72 const Mat< std::complex<T> >& in
|
max@0
|
73 );
|
max@0
|
74
|
max@0
|
75 template<typename T>
|
max@0
|
76 inline static bool
|
max@0
|
77 direct_princomp
|
max@0
|
78 (
|
max@0
|
79 Mat< std::complex<T> >& coeff_out,
|
max@0
|
80 Mat< std::complex<T> >& score_out,
|
max@0
|
81 const Mat< std::complex<T> >& in
|
max@0
|
82 );
|
max@0
|
83
|
max@0
|
84 template<typename T>
|
max@0
|
85 inline static bool
|
max@0
|
86 direct_princomp
|
max@0
|
87 (
|
max@0
|
88 Mat< std::complex<T> >& coeff_out,
|
max@0
|
89 Mat< std::complex<T> >& score_out,
|
max@0
|
90 Col<T>& latent_out,
|
max@0
|
91 const Mat< std::complex<T> >& in
|
max@0
|
92 );
|
max@0
|
93
|
max@0
|
94 template<typename T>
|
max@0
|
95 inline static bool
|
max@0
|
96 direct_princomp
|
max@0
|
97 (
|
max@0
|
98 Mat< std::complex<T> >& coeff_out,
|
max@0
|
99 Mat< std::complex<T> >& score_out,
|
max@0
|
100 Col<T>& latent_out,
|
max@0
|
101 Col< std::complex<T> >& tsquared_out,
|
max@0
|
102 const Mat< std::complex<T> >& in
|
max@0
|
103 );
|
max@0
|
104
|
max@0
|
105
|
max@0
|
106 template<typename T1>
|
max@0
|
107 inline static void
|
max@0
|
108 apply(Mat<typename T1::elem_type>& out, const Op<T1,op_princomp>& in);
|
max@0
|
109
|
max@0
|
110 };
|
max@0
|
111
|
max@0
|
112
|
max@0
|
113
|
max@0
|
114 //! @}
|