Mercurial > hg > segmenter-vamp-plugin
comparison armadillo-3.900.4/include/armadillo_bits/op_dot_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) 2008-2013 NICTA (www.nicta.com.au) | |
2 // Copyright (C) 2008-2013 Conrad Sanderson | |
3 // | |
4 // This Source Code Form is subject to the terms of the Mozilla Public | |
5 // License, v. 2.0. If a copy of the MPL was not distributed with this | |
6 // file, You can obtain one at http://mozilla.org/MPL/2.0/. | |
7 | |
8 | |
9 //! \addtogroup op_dot | |
10 //! @{ | |
11 | |
12 //! \brief | |
13 //! dot product operation | |
14 | |
15 class op_dot | |
16 { | |
17 public: | |
18 | |
19 template<typename eT> | |
20 arma_hot arma_pure arma_inline static | |
21 typename arma_not_cx<eT>::result | |
22 direct_dot_arma(const uword n_elem, const eT* const A, const eT* const B); | |
23 | |
24 template<typename eT> | |
25 arma_hot arma_pure inline static | |
26 typename arma_cx_only<eT>::result | |
27 direct_dot_arma(const uword n_elem, const eT* const A, const eT* const B); | |
28 | |
29 template<typename eT> | |
30 arma_hot arma_pure inline static typename arma_real_only<eT>::result | |
31 direct_dot(const uword n_elem, const eT* const A, const eT* const B); | |
32 | |
33 template<typename eT> | |
34 arma_hot arma_pure inline static typename arma_cx_only<eT>::result | |
35 direct_dot(const uword n_elem, const eT* const A, const eT* const B); | |
36 | |
37 template<typename eT> | |
38 arma_hot arma_pure inline static typename arma_integral_only<eT>::result | |
39 direct_dot(const uword n_elem, const eT* const A, const eT* const B); | |
40 | |
41 | |
42 template<typename eT> | |
43 arma_hot arma_pure inline static eT direct_dot(const uword n_elem, const eT* const A, const eT* const B, const eT* C); | |
44 | |
45 template<typename T1, typename T2> | |
46 arma_hot inline static typename T1::elem_type apply(const T1& X, const T2& Y); | |
47 | |
48 template<typename T1, typename T2> | |
49 arma_hot inline static typename arma_not_cx<typename T1::elem_type>::result apply_proxy(const Proxy<T1>& PA, const Proxy<T2>& PB); | |
50 | |
51 template<typename T1, typename T2> | |
52 arma_hot inline static typename arma_cx_only<typename T1::elem_type>::result apply_proxy(const Proxy<T1>& PA, const Proxy<T2>& PB); | |
53 | |
54 template<typename eT, typename TA> | |
55 arma_hot inline static eT dot_and_copy_row(eT* out, const TA& A, const uword row, const eT* B_mem, const uword N); | |
56 }; | |
57 | |
58 | |
59 | |
60 //! \brief | |
61 //! normalised dot product operation | |
62 | |
63 class op_norm_dot | |
64 { | |
65 public: | |
66 | |
67 template<typename T1, typename T2> | |
68 arma_hot inline static typename T1::elem_type apply (const T1& X, const T2& Y); | |
69 | |
70 template<typename T1, typename T2> | |
71 arma_hot inline static typename T1::elem_type apply_unwrap(const T1& X, const T2& Y); | |
72 }; | |
73 | |
74 | |
75 | |
76 //! \brief | |
77 //! complex conjugate dot product operation | |
78 | |
79 class op_cdot | |
80 { | |
81 public: | |
82 | |
83 template<typename eT> | |
84 arma_hot inline static eT direct_cdot_arma(const uword n_elem, const eT* const A, const eT* const B); | |
85 | |
86 template<typename eT> | |
87 arma_hot inline static eT direct_cdot(const uword n_elem, const eT* const A, const eT* const B); | |
88 | |
89 template<typename T1, typename T2> | |
90 arma_hot inline static typename T1::elem_type apply (const T1& X, const T2& Y); | |
91 | |
92 template<typename T1, typename T2> | |
93 arma_hot inline static typename T1::elem_type apply_unwrap(const T1& X, const T2& Y); | |
94 | |
95 template<typename T1, typename T2> | |
96 arma_hot inline static typename T1::elem_type apply_proxy (const T1& X, const T2& Y); | |
97 }; | |
98 | |
99 | |
100 | |
101 //! @} |