21#ifdef __MATRIXWRAPPER_NEWMAT__
23#ifndef __VECTOR_NEWMAT__
24#define __VECTOR_NEWMAT__
26#include "matrix_wrapper.h"
27#include "vector_wrapper.h"
28#include <newmat/newmatio.h>
32#define NewMatColumnVector NEWMAT::ColumnVector
33#define NewMatRowVector NEWMAT::RowVector
35namespace MatrixWrapper
39class ColumnVector :
public NewMatColumnVector,
public ColumnVector_Wrapper
47 ColumnVector(
int nrows);
50 ColumnVector(
const MyColumnVector& a,
const MyColumnVector& b);
53 virtual ~ColumnVector();
56 ColumnVector (
const MyColumnVector& a);
59 ColumnVector (
const NewMatColumnVector& a);
61 virtual void resize(
int num_rows);
62 virtual void assign(
int size,
double value) ;
63 virtual unsigned int rows()
const;
64 virtual unsigned int columns()
const;
65 virtual unsigned int capacity()
const;
66 virtual ColumnVector vectorAdd(
const MyColumnVector& v2)
const;
67 virtual ColumnVector& operator =(
const MyColumnVector& a);
68 virtual ColumnVector& operator =(
double a);
69 virtual const bool operator==(
const MyColumnVector& a)
const;
71 virtual MyColumnVector & operator+= (
const MyColumnVector& a);
72 virtual MyColumnVector & operator-= (
const MyColumnVector& a);
73 virtual MyColumnVector operator+ (
const MyColumnVector &a)
const;
74 virtual MyColumnVector operator- (
const MyColumnVector &a)
const;
76 virtual MyColumnVector& operator+= (
double b);
77 virtual MyColumnVector& operator-= (
double b);
78 virtual MyColumnVector& operator*= (
double b);
79 virtual MyColumnVector& operator/= (
double b);
80 virtual MyColumnVector operator+ (
double b)
const;
81 virtual MyColumnVector operator- (
double b)
const;
82 virtual MyColumnVector operator* (
double b)
const;
83 virtual MyColumnVector operator/ (
double b)
const;
85 virtual const double operator()(
unsigned int)
const;
86 virtual double& operator()(
unsigned int);
87 virtual MyMatrix operator* (
const MyRowVector &a)
const;
88 virtual MyColumnVector sub(
int j_start ,
int j_end)
const;
89 virtual MyRowVector transpose()
const;
95class RowVector :
public NewMatRowVector,
public RowVector_Wrapper
102 RowVector(
int ncols);
107 RowVector (
const MyRowVector& a);
109 RowVector (
const NewMatRowVector& a);
111 virtual ~RowVector();
113 virtual void resize(
int num_cols);
114 virtual void assign(
int size,
double value) ;
115 virtual RowVector vectorAdd(
const MyRowVector& v2)
const;
116 virtual unsigned int rows()
const;
117 virtual unsigned int columns()
const;
118 virtual unsigned int capacity()
const;
119 virtual RowVector& operator =(
double a);
120 virtual RowVector& operator =(
const MyRowVector& a);
121 virtual const bool operator==(
const MyRowVector& a)
const;
123 virtual MyRowVector & operator+= (
const MyRowVector& a);
124 virtual MyRowVector & operator-= (
const MyRowVector& a);
125 virtual MyRowVector operator+ (
const MyRowVector &a)
const;
126 virtual MyRowVector operator- (
const MyRowVector &a)
const;
128 virtual MyRowVector& operator+= (
double b);
129 virtual MyRowVector& operator-= (
double b);
130 virtual MyRowVector& operator*= (
double b);
131 virtual MyRowVector& operator/= (
double b);
132 virtual MyRowVector operator+ (
double b)
const;
133 virtual MyRowVector operator- (
double b)
const;
134 virtual MyRowVector operator* (
double b)
const;
135 virtual MyRowVector operator/ (
double b)
const;
137 virtual const double operator()(
unsigned int)
const;
138 virtual double& operator()(
unsigned int);
139 virtual MyRowVector sub(
int j_start ,
int j_end)
const;
140 virtual MyColumnVector transpose()
const;
141 virtual double operator*(
const MyColumnVector& a)
const;