Chris@49
|
1 // Copyright (C) 2008-2010 NICTA (www.nicta.com.au)
|
Chris@49
|
2 // Copyright (C) 2008-2010 Conrad Sanderson
|
Chris@49
|
3 //
|
Chris@49
|
4 // This Source Code Form is subject to the terms of the Mozilla Public
|
Chris@49
|
5 // License, v. 2.0. If a copy of the MPL was not distributed with this
|
Chris@49
|
6 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
Chris@49
|
7
|
Chris@49
|
8
|
Chris@49
|
9 //! \addtogroup op_cx_scalar
|
Chris@49
|
10 //! @{
|
Chris@49
|
11
|
Chris@49
|
12
|
Chris@49
|
13
|
Chris@49
|
14 class op_cx_scalar_times
|
Chris@49
|
15 {
|
Chris@49
|
16 public:
|
Chris@49
|
17
|
Chris@49
|
18 template<typename T1>
|
Chris@49
|
19 inline static void
|
Chris@49
|
20 apply
|
Chris@49
|
21 (
|
Chris@49
|
22 Mat< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
23 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times>& X
|
Chris@49
|
24 );
|
Chris@49
|
25
|
Chris@49
|
26 template<typename T1>
|
Chris@49
|
27 inline static void
|
Chris@49
|
28 apply
|
Chris@49
|
29 (
|
Chris@49
|
30 Cube< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
31 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times>& X
|
Chris@49
|
32 );
|
Chris@49
|
33
|
Chris@49
|
34 };
|
Chris@49
|
35
|
Chris@49
|
36
|
Chris@49
|
37
|
Chris@49
|
38 class op_cx_scalar_plus
|
Chris@49
|
39 {
|
Chris@49
|
40 public:
|
Chris@49
|
41
|
Chris@49
|
42 template<typename T1>
|
Chris@49
|
43 inline static void
|
Chris@49
|
44 apply
|
Chris@49
|
45 (
|
Chris@49
|
46 Mat< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
47 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_plus>& X
|
Chris@49
|
48 );
|
Chris@49
|
49
|
Chris@49
|
50 template<typename T1>
|
Chris@49
|
51 inline static void
|
Chris@49
|
52 apply
|
Chris@49
|
53 (
|
Chris@49
|
54 Cube< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
55 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_plus>& X
|
Chris@49
|
56 );
|
Chris@49
|
57
|
Chris@49
|
58 };
|
Chris@49
|
59
|
Chris@49
|
60
|
Chris@49
|
61
|
Chris@49
|
62 class op_cx_scalar_minus_pre
|
Chris@49
|
63 {
|
Chris@49
|
64 public:
|
Chris@49
|
65
|
Chris@49
|
66 template<typename T1>
|
Chris@49
|
67 inline static void
|
Chris@49
|
68 apply
|
Chris@49
|
69 (
|
Chris@49
|
70 Mat< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
71 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_pre>& X
|
Chris@49
|
72 );
|
Chris@49
|
73
|
Chris@49
|
74 template<typename T1>
|
Chris@49
|
75 inline static void
|
Chris@49
|
76 apply
|
Chris@49
|
77 (
|
Chris@49
|
78 Cube< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
79 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_pre>& X
|
Chris@49
|
80 );
|
Chris@49
|
81
|
Chris@49
|
82 };
|
Chris@49
|
83
|
Chris@49
|
84
|
Chris@49
|
85
|
Chris@49
|
86 class op_cx_scalar_minus_post
|
Chris@49
|
87 {
|
Chris@49
|
88 public:
|
Chris@49
|
89
|
Chris@49
|
90 template<typename T1>
|
Chris@49
|
91 inline static void
|
Chris@49
|
92 apply
|
Chris@49
|
93 (
|
Chris@49
|
94 Mat< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
95 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_post>& X
|
Chris@49
|
96 );
|
Chris@49
|
97
|
Chris@49
|
98 template<typename T1>
|
Chris@49
|
99 inline static void
|
Chris@49
|
100 apply
|
Chris@49
|
101 (
|
Chris@49
|
102 Cube< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
103 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_post>& X
|
Chris@49
|
104 );
|
Chris@49
|
105
|
Chris@49
|
106 };
|
Chris@49
|
107
|
Chris@49
|
108
|
Chris@49
|
109
|
Chris@49
|
110 class op_cx_scalar_div_pre
|
Chris@49
|
111 {
|
Chris@49
|
112 public:
|
Chris@49
|
113
|
Chris@49
|
114 template<typename T1>
|
Chris@49
|
115 inline static void
|
Chris@49
|
116 apply
|
Chris@49
|
117 (
|
Chris@49
|
118 Mat< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
119 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_pre>& X
|
Chris@49
|
120 );
|
Chris@49
|
121
|
Chris@49
|
122 template<typename T1>
|
Chris@49
|
123 inline static void
|
Chris@49
|
124 apply
|
Chris@49
|
125 (
|
Chris@49
|
126 Cube< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
127 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_pre>& X
|
Chris@49
|
128 );
|
Chris@49
|
129
|
Chris@49
|
130 };
|
Chris@49
|
131
|
Chris@49
|
132
|
Chris@49
|
133
|
Chris@49
|
134 class op_cx_scalar_div_post
|
Chris@49
|
135 {
|
Chris@49
|
136 public:
|
Chris@49
|
137
|
Chris@49
|
138 template<typename T1>
|
Chris@49
|
139 inline static void
|
Chris@49
|
140 apply
|
Chris@49
|
141 (
|
Chris@49
|
142 Mat< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
143 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_post>& X
|
Chris@49
|
144 );
|
Chris@49
|
145
|
Chris@49
|
146 template<typename T1>
|
Chris@49
|
147 inline static void
|
Chris@49
|
148 apply
|
Chris@49
|
149 (
|
Chris@49
|
150 Cube< typename std::complex<typename T1::pod_type> >& out,
|
Chris@49
|
151 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_post>& X
|
Chris@49
|
152 );
|
Chris@49
|
153
|
Chris@49
|
154 };
|
Chris@49
|
155
|
Chris@49
|
156
|
Chris@49
|
157
|
Chris@49
|
158 //! @}
|