max@0
|
1 // Copyright (C) 2008-2010 NICTA (www.nicta.com.au)
|
max@0
|
2 // Copyright (C) 2008-2010 Conrad Sanderson
|
max@0
|
3 //
|
max@0
|
4 // This file is part of the Armadillo C++ library.
|
max@0
|
5 // It is provided without any warranty of fitness
|
max@0
|
6 // for any purpose. You can redistribute this file
|
max@0
|
7 // and/or modify it under the terms of the GNU
|
max@0
|
8 // Lesser General Public License (LGPL) as published
|
max@0
|
9 // by the Free Software Foundation, either version 3
|
max@0
|
10 // of the License or (at your option) any later version.
|
max@0
|
11 // (see http://www.opensource.org/licenses for more info)
|
max@0
|
12
|
max@0
|
13
|
max@0
|
14 //! \addtogroup op_cx_scalar
|
max@0
|
15 //! @{
|
max@0
|
16
|
max@0
|
17
|
max@0
|
18
|
max@0
|
19 class op_cx_scalar_times
|
max@0
|
20 {
|
max@0
|
21 public:
|
max@0
|
22
|
max@0
|
23 template<typename T1>
|
max@0
|
24 inline static void
|
max@0
|
25 apply
|
max@0
|
26 (
|
max@0
|
27 Mat< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
28 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times>& X
|
max@0
|
29 );
|
max@0
|
30
|
max@0
|
31 template<typename T1>
|
max@0
|
32 inline static void
|
max@0
|
33 apply
|
max@0
|
34 (
|
max@0
|
35 Cube< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
36 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times>& X
|
max@0
|
37 );
|
max@0
|
38
|
max@0
|
39 };
|
max@0
|
40
|
max@0
|
41
|
max@0
|
42
|
max@0
|
43 class op_cx_scalar_plus
|
max@0
|
44 {
|
max@0
|
45 public:
|
max@0
|
46
|
max@0
|
47 template<typename T1>
|
max@0
|
48 inline static void
|
max@0
|
49 apply
|
max@0
|
50 (
|
max@0
|
51 Mat< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
52 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_plus>& X
|
max@0
|
53 );
|
max@0
|
54
|
max@0
|
55 template<typename T1>
|
max@0
|
56 inline static void
|
max@0
|
57 apply
|
max@0
|
58 (
|
max@0
|
59 Cube< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
60 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_plus>& X
|
max@0
|
61 );
|
max@0
|
62
|
max@0
|
63 };
|
max@0
|
64
|
max@0
|
65
|
max@0
|
66
|
max@0
|
67 class op_cx_scalar_minus_pre
|
max@0
|
68 {
|
max@0
|
69 public:
|
max@0
|
70
|
max@0
|
71 template<typename T1>
|
max@0
|
72 inline static void
|
max@0
|
73 apply
|
max@0
|
74 (
|
max@0
|
75 Mat< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
76 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_pre>& X
|
max@0
|
77 );
|
max@0
|
78
|
max@0
|
79 template<typename T1>
|
max@0
|
80 inline static void
|
max@0
|
81 apply
|
max@0
|
82 (
|
max@0
|
83 Cube< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
84 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_pre>& X
|
max@0
|
85 );
|
max@0
|
86
|
max@0
|
87 };
|
max@0
|
88
|
max@0
|
89
|
max@0
|
90
|
max@0
|
91 class op_cx_scalar_minus_post
|
max@0
|
92 {
|
max@0
|
93 public:
|
max@0
|
94
|
max@0
|
95 template<typename T1>
|
max@0
|
96 inline static void
|
max@0
|
97 apply
|
max@0
|
98 (
|
max@0
|
99 Mat< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
100 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_post>& X
|
max@0
|
101 );
|
max@0
|
102
|
max@0
|
103 template<typename T1>
|
max@0
|
104 inline static void
|
max@0
|
105 apply
|
max@0
|
106 (
|
max@0
|
107 Cube< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
108 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_post>& X
|
max@0
|
109 );
|
max@0
|
110
|
max@0
|
111 };
|
max@0
|
112
|
max@0
|
113
|
max@0
|
114
|
max@0
|
115 class op_cx_scalar_div_pre
|
max@0
|
116 {
|
max@0
|
117 public:
|
max@0
|
118
|
max@0
|
119 template<typename T1>
|
max@0
|
120 inline static void
|
max@0
|
121 apply
|
max@0
|
122 (
|
max@0
|
123 Mat< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
124 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_pre>& X
|
max@0
|
125 );
|
max@0
|
126
|
max@0
|
127 template<typename T1>
|
max@0
|
128 inline static void
|
max@0
|
129 apply
|
max@0
|
130 (
|
max@0
|
131 Cube< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
132 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_pre>& X
|
max@0
|
133 );
|
max@0
|
134
|
max@0
|
135 };
|
max@0
|
136
|
max@0
|
137
|
max@0
|
138
|
max@0
|
139 class op_cx_scalar_div_post
|
max@0
|
140 {
|
max@0
|
141 public:
|
max@0
|
142
|
max@0
|
143 template<typename T1>
|
max@0
|
144 inline static void
|
max@0
|
145 apply
|
max@0
|
146 (
|
max@0
|
147 Mat< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
148 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_post>& X
|
max@0
|
149 );
|
max@0
|
150
|
max@0
|
151 template<typename T1>
|
max@0
|
152 inline static void
|
max@0
|
153 apply
|
max@0
|
154 (
|
max@0
|
155 Cube< typename std::complex<typename T1::pod_type> >& out,
|
max@0
|
156 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_post>& X
|
max@0
|
157 );
|
max@0
|
158
|
max@0
|
159 };
|
max@0
|
160
|
max@0
|
161
|
max@0
|
162
|
max@0
|
163 //! @}
|