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)