[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
derive {,Cmplex}{Col,Row}Vector from MArray2 instead of MArray?
From: |
John W. Eaton |
Subject: |
derive {,Cmplex}{Col,Row}Vector from MArray2 instead of MArray? |
Date: |
Mon, 28 Apr 2008 15:52:25 -0400 |
Does anyone object to the following change? It means that the vector
objects in liboctave will explicitly have two dimensions.
jwe
diff --git a/liboctave/CColVector.cc b/liboctave/CColVector.cc
--- a/liboctave/CColVector.cc
+++ b/liboctave/CColVector.cc
@@ -51,7 +51,7 @@ extern "C"
// Complex Column Vector class
ComplexColumnVector::ComplexColumnVector (const ColumnVector& a)
- : MArray<Complex> (a.length ())
+ : MArray2<Complex> (a.length (), 1)
{
for (octave_idx_type i = 0; i < length (); i++)
elem (i) = a.elem (i);
@@ -460,13 +460,13 @@ ColumnVector
ColumnVector
ComplexColumnVector::map (dmapper fcn) const
{
- return MArray<Complex>::map<double> (func_ptr (fcn));
+ return MArray2<Complex>::map<double> (func_ptr (fcn));
}
ComplexColumnVector
ComplexColumnVector::map (cmapper fcn) const
{
- return MArray<Complex>::map<Complex> (func_ptr (fcn));
+ return MArray2<Complex>::map<Complex> (func_ptr (fcn));
}
Complex
diff --git a/liboctave/CColVector.h b/liboctave/CColVector.h
--- a/liboctave/CColVector.h
+++ b/liboctave/CColVector.h
@@ -24,35 +24,35 @@ along with Octave; see the file COPYING.
#if !defined (octave_ComplexColumnVector_h)
#define octave_ComplexColumnVector_h 1
-#include "MArray.h"
+#include "MArray2.h"
#include "mx-defs.h"
class
OCTAVE_API
-ComplexColumnVector : public MArray<Complex>
+ComplexColumnVector : public MArray2<Complex>
{
friend class ComplexMatrix;
friend class ComplexRowVector;
public:
- ComplexColumnVector (void) : MArray<Complex> () { }
+ ComplexColumnVector (void) : MArray2<Complex> () { }
- explicit ComplexColumnVector (octave_idx_type n) : MArray<Complex> (n) { }
+ explicit ComplexColumnVector (octave_idx_type n) : MArray2<Complex> (n, 1) {
}
ComplexColumnVector (octave_idx_type n, const Complex& val)
- : MArray<Complex> (n, val) { }
+ : MArray2<Complex> (n, 1, val) { }
- ComplexColumnVector (const ComplexColumnVector& a) : MArray<Complex> (a) { }
+ ComplexColumnVector (const ComplexColumnVector& a) : MArray2<Complex> (a) { }
- ComplexColumnVector (const MArray<Complex>& a) : MArray<Complex> (a) { }
+ ComplexColumnVector (const MArray2<Complex>& a) : MArray2<Complex> (a) { }
explicit ComplexColumnVector (const ColumnVector& a);
ComplexColumnVector& operator = (const ComplexColumnVector& a)
{
- MArray<Complex>::operator = (a);
+ MArray2<Complex>::operator = (a);
return *this;
}
@@ -130,10 +130,10 @@ public:
private:
- ComplexColumnVector (Complex *d, octave_idx_type l) : MArray<Complex> (d, l)
{ }
+ ComplexColumnVector (Complex *d, octave_idx_type n) : MArray2<Complex> (d,
n, 1) { }
};
-MARRAY_FORWARD_DEFS (MArray, ComplexColumnVector, Complex)
+MARRAY_FORWARD_DEFS (MArray2, ComplexColumnVector, Complex)
#endif
diff --git a/liboctave/CRowVector.cc b/liboctave/CRowVector.cc
--- a/liboctave/CRowVector.cc
+++ b/liboctave/CRowVector.cc
@@ -55,7 +55,7 @@ extern "C"
// Complex Row Vector class
ComplexRowVector::ComplexRowVector (const RowVector& a)
- : MArray<Complex> (a.length ())
+ : MArray2<Complex> (1, a.length ())
{
for (octave_idx_type i = 0; i < length (); i++)
elem (i) = a.elem (i);
@@ -370,13 +370,13 @@ RowVector
RowVector
ComplexRowVector::map (dmapper fcn) const
{
- return MArray<Complex>::map<double> (func_ptr (fcn));
+ return MArray2<Complex>::map<double> (func_ptr (fcn));
}
ComplexRowVector
ComplexRowVector::map (cmapper fcn) const
{
- return MArray<Complex>::map<Complex> (func_ptr (fcn));
+ return MArray2<Complex>::map<Complex> (func_ptr (fcn));
}
Complex
diff --git a/liboctave/CRowVector.h b/liboctave/CRowVector.h
--- a/liboctave/CRowVector.h
+++ b/liboctave/CRowVector.h
@@ -24,33 +24,33 @@ along with Octave; see the file COPYING.
#if !defined (octave_ComplexRowVector_h)
#define octave_ComplexRowVector_h 1
-#include "MArray.h"
+#include "MArray2.h"
#include "mx-defs.h"
class
OCTAVE_API
-ComplexRowVector : public MArray<Complex>
+ComplexRowVector : public MArray2<Complex>
{
friend class ComplexColumnVector;
public:
- ComplexRowVector (void) : MArray<Complex> () { }
+ ComplexRowVector (void) : MArray2<Complex> () { }
- explicit ComplexRowVector (octave_idx_type n) : MArray<Complex> (n) { }
+ explicit ComplexRowVector (octave_idx_type n) : MArray2<Complex> (1, n) { }
- ComplexRowVector (octave_idx_type n, const Complex& val) : MArray<Complex>
(n, val) { }
+ ComplexRowVector (octave_idx_type n, const Complex& val) : MArray2<Complex>
(1, n, val) { }
- ComplexRowVector (const ComplexRowVector& a) : MArray<Complex> (a) { }
+ ComplexRowVector (const ComplexRowVector& a) : MArray2<Complex> (a) { }
- ComplexRowVector (const MArray<Complex>& a) : MArray<Complex> (a) { }
+ ComplexRowVector (const MArray2<Complex>& a) : MArray2<Complex> (a) { }
explicit ComplexRowVector (const RowVector& a);
ComplexRowVector& operator = (const ComplexRowVector& a)
{
- MArray<Complex>::operator = (a);
+ MArray2<Complex>::operator = (a);
return *this;
}
@@ -112,7 +112,7 @@ public:
private:
- ComplexRowVector (Complex *d, octave_idx_type l) : MArray<Complex> (d, l) { }
+ ComplexRowVector (Complex *d, octave_idx_type n) : MArray2<Complex> (d, 1,
n) { }
};
// row vector by column vector -> scalar
@@ -125,7 +125,7 @@ Complex operator * (const ComplexRowVect
OCTAVE_API ComplexRowVector linspace (const Complex& x1, const Complex& x2,
octave_idx_type n);
-MARRAY_FORWARD_DEFS (MArray, ComplexRowVector, Complex)
+MARRAY_FORWARD_DEFS (MArray2, ComplexRowVector, Complex)
#endif
diff --git a/liboctave/dColVector.cc b/liboctave/dColVector.cc
--- a/liboctave/dColVector.cc
+++ b/liboctave/dColVector.cc
@@ -266,13 +266,13 @@ ColumnVector
ColumnVector
ColumnVector::map (dmapper fcn) const
{
- return MArray<double>::map<double> (func_ptr (fcn));
+ return MArray2<double>::map<double> (func_ptr (fcn));
}
ComplexColumnVector
ColumnVector::map (cmapper fcn) const
{
- return MArray<double>::map<Complex> (func_ptr (fcn));
+ return MArray2<double>::map<Complex> (func_ptr (fcn));
}
double
diff --git a/liboctave/dColVector.h b/liboctave/dColVector.h
--- a/liboctave/dColVector.h
+++ b/liboctave/dColVector.h
@@ -24,29 +24,29 @@ along with Octave; see the file COPYING.
#if !defined (octave_ColumnVector_h)
#define octave_ColumnVector_h 1
-#include "MArray.h"
+#include "MArray2.h"
#include "mx-defs.h"
class
OCTAVE_API
-ColumnVector : public MArray<double>
+ColumnVector : public MArray2<double>
{
public:
- ColumnVector (void) : MArray<double> () { }
+ ColumnVector (void) : MArray2<double> () { }
- explicit ColumnVector (octave_idx_type n) : MArray<double> (n) { }
+ explicit ColumnVector (octave_idx_type n) : MArray2<double> (n, 1) { }
- ColumnVector (octave_idx_type n, double val) : MArray<double> (n, val) { }
+ ColumnVector (octave_idx_type n, double val) : MArray2<double> (n, 1, val) {
}
- ColumnVector (const ColumnVector& a) : MArray<double> (a) { }
+ ColumnVector (const ColumnVector& a) : MArray2<double> (a) { }
- ColumnVector (const MArray<double>& a) : MArray<double> (a) { }
+ ColumnVector (const MArray2<double>& a) : MArray2<double> (a) { }
ColumnVector& operator = (const ColumnVector& a)
{
- MArray<double>::operator = (a);
+ MArray2<double>::operator = (a);
return *this;
}
@@ -99,7 +99,7 @@ public:
private:
- ColumnVector (double *d, octave_idx_type l) : MArray<double> (d, l) { }
+ ColumnVector (double *d, octave_idx_type n) : MArray2<double> (d, n, 1) { }
};
// Publish externally used friend functions.
@@ -107,7 +107,7 @@ extern OCTAVE_API ColumnVector real (con
extern OCTAVE_API ColumnVector real (const ComplexColumnVector& a);
extern OCTAVE_API ColumnVector imag (const ComplexColumnVector& a);
-MARRAY_FORWARD_DEFS (MArray, ColumnVector, double)
+MARRAY_FORWARD_DEFS (MArray2, ColumnVector, double)
#endif
diff --git a/liboctave/dRowVector.cc b/liboctave/dRowVector.cc
--- a/liboctave/dRowVector.cc
+++ b/liboctave/dRowVector.cc
@@ -235,13 +235,13 @@ RowVector
RowVector
RowVector::map (dmapper fcn) const
{
- return MArray<double>::map<double> (func_ptr (fcn));
+ return MArray2<double>::map<double> (func_ptr (fcn));
}
ComplexRowVector
RowVector::map (cmapper fcn) const
{
- return MArray<double>::map<Complex> (func_ptr (fcn));
+ return MArray2<double>::map<Complex> (func_ptr (fcn));
}
double
diff --git a/liboctave/dRowVector.h b/liboctave/dRowVector.h
--- a/liboctave/dRowVector.h
+++ b/liboctave/dRowVector.h
@@ -24,29 +24,29 @@ along with Octave; see the file COPYING.
#if !defined (octave_RowVector_h)
#define octave_RowVector_h 1
-#include "MArray.h"
+#include "MArray2.h"
#include "mx-defs.h"
class
OCTAVE_API
-RowVector : public MArray<double>
+RowVector : public MArray2<double>
{
public:
- RowVector (void) : MArray<double> () { }
+ RowVector (void) : MArray2<double> () { }
- explicit RowVector (octave_idx_type n) : MArray<double> (n) { }
+ explicit RowVector (octave_idx_type n) : MArray2<double> (1, n) { }
- RowVector (octave_idx_type n, double val) : MArray<double> (n, val) { }
+ RowVector (octave_idx_type n, double val) : MArray2<double> (1, n, val) { }
- RowVector (const RowVector& a) : MArray<double> (a) { }
+ RowVector (const RowVector& a) : MArray2<double> (a) { }
- RowVector (const MArray<double>& a) : MArray<double> (a) { }
+ RowVector (const MArray2<double>& a) : MArray2<double> (a) { }
RowVector& operator = (const RowVector& a)
{
- MArray<double>::operator = (a);
+ MArray2<double>::operator = (a);
return *this;
}
@@ -95,7 +95,7 @@ public:
private:
- RowVector (double *d, octave_idx_type l) : MArray<double> (d, l) { }
+ RowVector (double *d, octave_idx_type n) : MArray2<double> (d, 1, n) { }
};
// row vector by column vector -> scalar
@@ -108,7 +108,7 @@ Complex OCTAVE_API operator * (const Row
OCTAVE_API RowVector linspace (double x1, double x2, octave_idx_type n);
-MARRAY_FORWARD_DEFS (MArray, RowVector, double)
+MARRAY_FORWARD_DEFS (MArray2, RowVector, double)
#endif
- derive {,Cmplex}{Col,Row}Vector from MArray2 instead of MArray?,
John W. Eaton <=