Previous: Arrays, Up: Arrays [Contents][Index]

### 3.1 Constructors and Assignment

Constructor: Array<T> (void) ¶

  Create an array with no elements.

Constructor: Array<T> (int n [, const T &val]) ¶

  Create an array with n elements. If the optional argument val is supplied, the elements are initialized to val; otherwise, they are left uninitialized. If n is less than zero, the current error handler is invoked (see Error Handling).

Constructor: Array<T> (const Array<T> &a) ¶

  Create a copy of the Array<T> object a. Memory for the Array<T> class is managed using a reference counting scheme, so the cost of this operation is independent of the size of the array.

Assignment on Array<T>: Array<T>& operator = (const Array<T> &a) ¶

  Assignment operator. Memory for the Array<T> class is managed using a reference counting scheme, so the cost of this operation is independent of the size of the array.

Method on Array<T>: int capacity (void) const ¶
Method on Array<T>: int length (void) const ¶

  Return the length of the array.

Method on Array<T>: T& elem (int n) ¶
Method on Array<T>: T& checkelem (int n) ¶

  If n is within the bounds of the array, return a reference to the element indexed by n; otherwise, the current error handler is invoked (see Error Handling).

Indexing on Array<T>: T& operator () (int n) ¶

Method on Array<T>: T elem (int n) const ¶
Method on Array<T>: T checkelem (int n) const ¶

  If n is within the bounds of the array, return the value indexed by n; otherwise, call the current error handler. See Error Handling.

Indexing on Array<T>: T operator () (int n) const ¶

Method on Array<T>: T& xelem (int n) ¶
Method on Array<T>: T xelem (int n) const ¶

  Return a reference to, or the value of, the element indexed by n. These methods never perform bounds checking.

Method on Array<T>: void resize (int n [, const T &val]) ¶

  Change the size of the array to be n elements. All elements are unchanged, except that if n is greater than the current size and the optional argument val is provided, the additional elements are initialized to val; otherwise, any additional elements are left uninitialized. In the current implementation, if n is less than the current size, the length is updated but no memory is released.

Method on Array<T>: const T* data (void) const ¶

Constructor: Array2<T> Array2<T> Array2 (void) ¶
Constructor: Array2<T> (int n, int m) ¶
Constructor: Array2<T> (int n, int m, const T &val) ¶
Constructor: Array2<T> (const Array2<T> &a) ¶
Constructor: Array2<T> (const DiagArray<T> &a) ¶

Assignment on Array2<T>: Array2<T>& operator = (const Array2<T> &a) ¶

Method on Array2<T>: int dim1 (void) const ¶
Method on Array2<T>: int rows (void) const ¶

Method on Array2<T>: int dim2 (void) const ¶
Method on Array2<T>: int cols (void) const ¶
Method on Array2<T>: int columns (void) const ¶

Method on Array2<T>: T& elem (int i, int j) ¶
Method on Array2<T>: T& checkelem (int i, int j) ¶

Indexing on Array2<T>: T& operator () (int i, int j) ¶

Method on Array2<T>: void resize (int n, int m) ¶
Method on Array2<T>: void resize (int n, int m, const T &val) ¶

Constructor: Array3<T> (void) ¶
Constructor: Array3<T> (int n, int m, int k) ¶
Constructor: Array3<T> (int n, int m, int k, const T &val) ¶
Constructor: Array3<T> (const Array3<T> &a) ¶

Assignment on Array3<T>: Array3<T>& operator = (const Array3<T> &a) ¶

Method on Array3<T>: int dim1 (void) const ¶
Method on Array3<T>: int dim2 (void) const ¶
Method on Array3<T>: int dim3 (void) const ¶

Method on Array3<T>: T& elem (int i, int j, int k) ¶
Method on Array3<T>: T& checkelem (int i, int j, int k) ¶

Indexing on Array3<T>: T& operator () (int i, int j, int k) ¶

Method on Array3<T>: void resize (int n, int m, int k) ¶
Method on Array3<T>: void resize (int n, int m, int k, const T &val) ¶

Constructor: DiagArray<T> (void) ¶
Constructor: DiagArray<T> (int n) ¶
Constructor: DiagArray<T> (int n, const T &val) ¶
Constructor: DiagArray<T> (int r, int c) ¶
Constructor: DiagArray<T> (int r, int c, const T &val) ¶
Constructor: DiagArray<T> (const Array<T> &a) ¶
Constructor: DiagArray<T> (const DiagArray<T> &a) ¶

Assignment on DiagArray<T>&: operator = (const DiagArray<T> &a) ¶

Method on DiagArray<T>: int dim1 (void) const ¶
Method on DiagArray<T>: int rows (void) const ¶

Method on DiagArray<T>: int dim2 (void) const ¶
Method on DiagArray<T>: int cols (void) const ¶
Method on DiagArray<T>: int columns (void) const ¶

Method on DiagArray<T>: T& elem (int r, int c) ¶
Method on DiagArray<T>: T& checkelem (int r, int c) ¶

Indexing on DiagArray<T>: T& operator () (int r, int c) ¶

Method on DiagArray<T>: void resize (int n, int m) ¶
Method on DiagArray<T>: void resize (int n, int m, const T &val) ¶

The real and complex `ColumnVector` and `RowVector` classes all have the following functions. These will eventually be part of an `MArray<T>` class, derived from the `Array<T>` class. Then the `ColumnVector` and `RowVector` classes will be derived from the `MArray<T>` class.

Element by element vector by scalar ops.

: RowVector operator + (const RowVector &a, const double &s) ¶
: RowVector operator - (const RowVector &a, const double &s) ¶
: RowVector operator * (const RowVector &a, const double &s) ¶
: RowVector operator / (const RowVector &a, const double &s) ¶

Element by element scalar by vector ops.

: RowVector operator + (const double &s, const RowVector &a) ¶
: RowVector operator - (const double &s, const RowVector &a) ¶
: RowVector operator * (const double &s, const RowVector &a) ¶
: RowVector operator / (const double &s, const RowVector &a) ¶

Element by element vector by vector ops.

: RowVector operator + (const RowVector &a, const RowVector &b) ¶
: RowVector operator - (const RowVector &a, const RowVector &b) ¶

: RowVector product (const RowVector &a, const RowVector &b) ¶
: RowVector quotient (const RowVector &a, const RowVector &b) ¶

Unary MArray ops.

: RowVector operator - (const RowVector &a) ¶

The `Matrix` classes share the following functions. These will eventually be part of an `MArray2<T>` class, derived from the `Array2<T>` class. Then the `Matrix` class will be derived from the `MArray<T>` class.

Element by element matrix by scalar ops.

: Matrix operator + (const Matrix &a, const double &s) ¶
: Matrix operator - (const Matrix &a, const double &s) ¶
: Matrix operator * (const Matrix &a, const double &s) ¶
: Matrix operator / (const Matrix &a, const double &s) ¶

Element by element scalar by matrix ops.

: Matrix operator + (const double &s, const Matrix &a) ¶
: Matrix operator - (const double &s, const Matrix &a) ¶
: Matrix operator * (const double &s, const Matrix &a) ¶
: Matrix operator / (const double &s, const Matrix &a) ¶

Element by element matrix by matrix ops.

: Matrix operator + (const Matrix &a, const Matrix &b) ¶
: Matrix operator - (const Matrix &a, const Matrix &b) ¶

: Matrix product (const Matrix &a, const Matrix &b) ¶
: Matrix quotient (const Matrix &a, const Matrix &b) ¶

Unary matrix ops.

: Matrix operator - (const Matrix &a) ¶

The `DiagMatrix` classes share the following functions. These will eventually be part of an `MDiagArray<T>` class, derived from the `DiagArray<T>` class. Then the `DiagMatrix` class will be derived from the `MDiagArray<T>` class.

Element by element MDiagArray by scalar ops.

: DiagMatrix operator * (const DiagMatrix &a, const double &s) ¶
: DiagMatrix operator / (const DiagMatrix &a, const double &s) ¶

Element by element scalar by MDiagArray ops.

: DiagMatrix operator * (const double &s, const DiagMatrix &a) ¶

Element by element MDiagArray by MDiagArray ops.

: DiagMatrix operator + (const DiagMatrix &a, const DiagMatrix &b) ¶
: DiagMatrix operator - (const DiagMatrix &a, const DiagMatrix &b) ¶

: DiagMatrix product (const DiagMatrix &a, const DiagMatrix &b) ¶

Unary MDiagArray ops.

: DiagMatrix operator - (const DiagMatrix &a) ¶

Previous: Arrays, Up: Arrays [Contents][Index]