comparison armadillo-3.900.4/include/armadillo_bits/op_princomp_bones.hpp @ 49:1ec0e2823891

Switch to using subrepo copies of qm-dsp, nnls-chroma, vamp-plugin-sdk; update Armadillo version; assume build without external BLAS/LAPACK
author Chris Cannam
date Thu, 13 Jun 2013 10:25:24 +0100
parents
children
comparison
equal deleted inserted replaced
48:69251e11a913 49:1ec0e2823891
1 // Copyright (C) 2010-2012 NICTA (www.nicta.com.au)
2 // Copyright (C) 2010-2012 Conrad Sanderson
3 // Copyright (C) 2010 Dimitrios Bouzas
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
9
10 //! \addtogroup op_princomp
11 //! @{
12
13
14
15 class op_princomp
16 {
17 public:
18
19 //
20 // real element versions
21
22 template<typename T1>
23 inline static bool
24 direct_princomp
25 (
26 Mat<typename T1::elem_type>& coeff_out,
27 const Base<typename T1::elem_type, T1>& X,
28 const typename arma_not_cx<typename T1::elem_type>::result* junk = 0
29 );
30
31 template<typename T1>
32 inline static bool
33 direct_princomp
34 (
35 Mat<typename T1::elem_type>& coeff_out,
36 Mat<typename T1::elem_type>& score_out,
37 const Base<typename T1::elem_type, T1>& X,
38 const typename arma_not_cx<typename T1::elem_type>::result* junk = 0
39 );
40
41 template<typename T1>
42 inline static bool
43 direct_princomp
44 (
45 Mat<typename T1::elem_type>& coeff_out,
46 Mat<typename T1::elem_type>& score_out,
47 Col<typename T1::elem_type>& latent_out,
48 const Base<typename T1::elem_type, T1>& X,
49 const typename arma_not_cx<typename T1::elem_type>::result* junk = 0
50 );
51
52 template<typename T1>
53 inline static bool
54 direct_princomp
55 (
56 Mat<typename T1::elem_type>& coeff_out,
57 Mat<typename T1::elem_type>& score_out,
58 Col<typename T1::elem_type>& latent_out,
59 Col<typename T1::elem_type>& tsquared_out,
60 const Base<typename T1::elem_type, T1>& X,
61 const typename arma_not_cx<typename T1::elem_type>::result* junk = 0
62 );
63
64
65 //
66 // complex element versions
67
68 template<typename T1>
69 inline static bool
70 direct_princomp
71 (
72 Mat< std::complex<typename T1::pod_type> >& coeff_out,
73 const Base< std::complex<typename T1::pod_type>, T1 >& X,
74 const typename arma_cx_only<typename T1::elem_type>::result* junk = 0
75 );
76
77 template<typename T1>
78 inline static bool
79 direct_princomp
80 (
81 Mat< std::complex<typename T1::pod_type> >& coeff_out,
82 Mat< std::complex<typename T1::pod_type> >& score_out,
83 const Base< std::complex<typename T1::pod_type>, T1 >& X,
84 const typename arma_cx_only<typename T1::elem_type>::result* junk = 0
85 );
86
87 template<typename T1>
88 inline static bool
89 direct_princomp
90 (
91 Mat< std::complex<typename T1::pod_type> >& coeff_out,
92 Mat< std::complex<typename T1::pod_type> >& score_out,
93 Col< typename T1::pod_type >& latent_out,
94 const Base< std::complex<typename T1::pod_type>, T1 >& X,
95 const typename arma_cx_only<typename T1::elem_type>::result* junk = 0
96 );
97
98 template<typename T1>
99 inline static bool
100 direct_princomp
101 (
102 Mat< std::complex<typename T1::pod_type> >& coeff_out,
103 Mat< std::complex<typename T1::pod_type> >& score_out,
104 Col< typename T1::pod_type >& latent_out,
105 Col< std::complex<typename T1::pod_type> >& tsquared_out,
106 const Base< std::complex<typename T1::pod_type>, T1 >& X,
107 const typename arma_cx_only<typename T1::elem_type>::result* junk = 0
108 );
109
110
111 template<typename T1>
112 inline static void
113 apply(Mat<typename T1::elem_type>& out, const Op<T1,op_princomp>& in);
114
115 };
116
117
118
119 //! @}