Mercurial > hg > octave-nkf
comparison liboctave/fCNDArray.h @ 10350:12884915a8e4
merge MArray classes & improve Array interface
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Sat, 23 Jan 2010 21:41:03 +0100 |
parents | 83fa590b8a09 |
children | 96ed7c629bbd |
comparison
equal
deleted
inserted
replaced
10349:d4d13389c957 | 10350:12884915a8e4 |
---|---|
21 */ | 21 */ |
22 | 22 |
23 #if !defined (octave_FloatComplexNDArray_h) | 23 #if !defined (octave_FloatComplexNDArray_h) |
24 #define octave_FloatComplexNDArray_h 1 | 24 #define octave_FloatComplexNDArray_h 1 |
25 | 25 |
26 #include "MArrayN.h" | 26 #include "MArray.h" |
27 #include "fCMatrix.h" | 27 #include "fCMatrix.h" |
28 | 28 |
29 #include "mx-defs.h" | 29 #include "mx-defs.h" |
30 #include "mx-op-decl.h" | 30 #include "mx-op-decl.h" |
31 #include "bsxfun-decl.h" | 31 #include "bsxfun-decl.h" |
32 | 32 |
33 class | 33 class |
34 OCTAVE_API | 34 OCTAVE_API |
35 FloatComplexNDArray : public MArrayN<FloatComplex> | 35 FloatComplexNDArray : public MArray<FloatComplex> |
36 { | 36 { |
37 public: | 37 public: |
38 | 38 |
39 typedef FloatComplexMatrix matrix_type; | 39 typedef FloatComplexMatrix matrix_type; |
40 | 40 |
41 FloatComplexNDArray (void) : MArrayN<FloatComplex> () { } | 41 FloatComplexNDArray (void) : MArray<FloatComplex> () { } |
42 | 42 |
43 FloatComplexNDArray (const dim_vector& dv) : MArrayN<FloatComplex> (dv) { } | 43 FloatComplexNDArray (const dim_vector& dv) : MArray<FloatComplex> (dv) { } |
44 | 44 |
45 FloatComplexNDArray (const dim_vector& dv, const FloatComplex& val) | 45 FloatComplexNDArray (const dim_vector& dv, const FloatComplex& val) |
46 : MArrayN<FloatComplex> (dv, val) { } | 46 : MArray<FloatComplex> (dv, val) { } |
47 | 47 |
48 FloatComplexNDArray (const FloatComplexNDArray& a) : MArrayN<FloatComplex> (a) { } | 48 FloatComplexNDArray (const FloatComplexNDArray& a) : MArray<FloatComplex> (a) { } |
49 | 49 |
50 FloatComplexNDArray (const FloatComplexMatrix& a) : MArrayN<FloatComplex> (a) { } | 50 FloatComplexNDArray (const FloatComplexMatrix& a) : MArray<FloatComplex> (a) { } |
51 | 51 |
52 template <class U> | 52 template <class U> |
53 FloatComplexNDArray (const MArrayN<U>& a) : MArrayN<FloatComplex> (a) { } | 53 FloatComplexNDArray (const MArray<U>& a) : MArray<FloatComplex> (a) { } |
54 | 54 |
55 template <class U> | 55 template <class U> |
56 FloatComplexNDArray (const Array<U>& a) : MArrayN<FloatComplex> (a) { } | 56 FloatComplexNDArray (const Array<U>& a) : MArray<FloatComplex> (a) { } |
57 | 57 |
58 FloatComplexNDArray (const charNDArray&); | 58 FloatComplexNDArray (const charNDArray&); |
59 | 59 |
60 FloatComplexNDArray& operator = (const FloatComplexNDArray& a) | 60 FloatComplexNDArray& operator = (const FloatComplexNDArray& a) |
61 { | 61 { |
62 MArrayN<FloatComplex>::operator = (a); | 62 MArray<FloatComplex>::operator = (a); |
63 return *this; | 63 return *this; |
64 } | 64 } |
65 | 65 |
66 // unary operations | 66 // unary operations |
67 | 67 |
119 FloatComplexNDArray fourierNd (void) const; | 119 FloatComplexNDArray fourierNd (void) const; |
120 FloatComplexNDArray ifourierNd (void) const; | 120 FloatComplexNDArray ifourierNd (void) const; |
121 | 121 |
122 FloatComplexMatrix matrix_value (void) const; | 122 FloatComplexMatrix matrix_value (void) const; |
123 | 123 |
124 FloatComplexNDArray squeeze (void) const { return MArrayN<FloatComplex>::squeeze (); } | 124 FloatComplexNDArray squeeze (void) const { return MArray<FloatComplex>::squeeze (); } |
125 | 125 |
126 static void increment_index (Array<octave_idx_type>& ra_idx, | 126 static void increment_index (Array<octave_idx_type>& ra_idx, |
127 const dim_vector& dimensions, | 127 const dim_vector& dimensions, |
128 int start_dimension = 0); | 128 int start_dimension = 0); |
129 | 129 |
142 | 142 |
143 FloatComplexNDArray diag (octave_idx_type k = 0) const; | 143 FloatComplexNDArray diag (octave_idx_type k = 0) const; |
144 | 144 |
145 FloatComplexNDArray& changesign (void) | 145 FloatComplexNDArray& changesign (void) |
146 { | 146 { |
147 MArrayN<FloatComplex>::changesign (); | 147 MArray<FloatComplex>::changesign (); |
148 return *this; | 148 return *this; |
149 } | 149 } |
150 | 150 |
151 private: | 151 private: |
152 | 152 |
153 FloatComplexNDArray (FloatComplex *d, const dim_vector& dv) | 153 FloatComplexNDArray (FloatComplex *d, const dim_vector& dv) |
154 : MArrayN<FloatComplex> (d, dv) { } | 154 : MArray<FloatComplex> (d, dv) { } |
155 }; | 155 }; |
156 | 156 |
157 extern OCTAVE_API FloatComplexNDArray conj (const FloatComplexNDArray& a); | 157 extern OCTAVE_API FloatComplexNDArray conj (const FloatComplexNDArray& a); |
158 | 158 |
159 MINMAX_DECLS (FloatComplexNDArray, FloatComplex, OCTAVE_API) | 159 MINMAX_DECLS (FloatComplexNDArray, FloatComplex, OCTAVE_API) |
165 SND_BOOL_OP_DECLS (FloatComplex, FloatComplexNDArray, OCTAVE_API) | 165 SND_BOOL_OP_DECLS (FloatComplex, FloatComplexNDArray, OCTAVE_API) |
166 | 166 |
167 NDND_CMP_OP_DECLS (FloatComplexNDArray, FloatComplexNDArray, OCTAVE_API) | 167 NDND_CMP_OP_DECLS (FloatComplexNDArray, FloatComplexNDArray, OCTAVE_API) |
168 NDND_BOOL_OP_DECLS (FloatComplexNDArray, FloatComplexNDArray, OCTAVE_API) | 168 NDND_BOOL_OP_DECLS (FloatComplexNDArray, FloatComplexNDArray, OCTAVE_API) |
169 | 169 |
170 MARRAY_FORWARD_DEFS (MArrayN, FloatComplexNDArray, FloatComplex) | 170 MARRAY_FORWARD_DEFS (MArray, FloatComplexNDArray, FloatComplex) |
171 | 171 |
172 extern OCTAVE_API FloatComplexNDArray& operator *= (FloatComplexNDArray& a, float s); | 172 extern OCTAVE_API FloatComplexNDArray& operator *= (FloatComplexNDArray& a, float s); |
173 extern OCTAVE_API FloatComplexNDArray& operator /= (FloatComplexNDArray& a, float s); | 173 extern OCTAVE_API FloatComplexNDArray& operator /= (FloatComplexNDArray& a, float s); |
174 | 174 |
175 BSXFUN_STDOP_DECLS (FloatComplexNDArray, OCTAVE_API) | 175 BSXFUN_STDOP_DECLS (FloatComplexNDArray, OCTAVE_API) |