2 #ifdef __MATRIXWRAPPER_EIGEN__
4 #ifndef __VECTOR_EIGEN__
5 #define __VECTOR_EIGEN__
7 #include "matrix_wrapper.h"
8 #include "vector_wrapper.h"
12 typedef Eigen::VectorXd EigenColumnVector;
13 typedef Eigen::RowVectorXd EigenRowVector;
16 namespace MatrixWrapper
20 class ColumnVector :
public EigenColumnVector,
public ColumnVector_Wrapper
28 ColumnVector(
int nrows);
29 ColumnVector(
int nrows,
double value);
32 ColumnVector(
const MyColumnVector& a,
const MyColumnVector& b);
35 virtual ~ColumnVector();
38 ColumnVector (
const MyColumnVector& a);
41 ColumnVector (
const EigenColumnVector& a);
43 virtual void resize(
int num_rows);
44 virtual unsigned int rows()
const;
45 virtual unsigned int columns()
const;
46 virtual unsigned int capacity()
const;
47 virtual void assign(
int size,
double value) ;
48 virtual ColumnVector vectorAdd(
const MyColumnVector& v2)
const;
50 using EigenColumnVector::operator ==;
51 using EigenColumnVector::operator =;
52 using EigenColumnVector::operator +=;
53 using EigenColumnVector::operator -=;
54 using EigenColumnVector::operator +;
55 using EigenColumnVector::operator -;
57 virtual ColumnVector& operator =(
const MyColumnVector& a);
58 virtual ColumnVector& operator =(
double a);
60 virtual MyColumnVector & operator+= (
const MyColumnVector& a);
61 virtual MyColumnVector & operator-= (
const MyColumnVector& a);
62 virtual MyColumnVector operator+ (
const MyColumnVector &a)
const;
63 virtual MyColumnVector operator- (
const MyColumnVector &a)
const;
65 virtual MyColumnVector& operator+= (
double b);
66 virtual MyColumnVector& operator-= (
double b);
67 virtual MyColumnVector& operator*= (
double b);
68 virtual MyColumnVector& operator/= (
double b);
69 virtual MyColumnVector operator+ (
double b)
const;
70 virtual MyColumnVector operator- (
double b)
const;
71 virtual MyColumnVector operator* (
double b)
const;
72 virtual MyColumnVector operator/ (
double b)
const;
75 virtual double operator[](
unsigned int i)
const
85 virtual double& operator[](
unsigned int i)
93 virtual double operator()(
unsigned int)
const;
94 virtual bool operator==(
const MyColumnVector& a)
const;
95 virtual double& operator()(
unsigned int);
96 virtual MyMatrix operator* (
const MyRowVector &a)
const;
97 virtual MyColumnVector sub(
int j_start ,
int j_end)
const;
98 virtual MyRowVector transpose()
const;
104 class RowVector :
public EigenRowVector,
public RowVector_Wrapper
111 RowVector(
int ncols);
112 RowVector(
int ncols,
double value);
117 RowVector (
const MyRowVector& a);
119 RowVector (
const EigenRowVector& a);
121 virtual ~RowVector();
123 virtual void resize(
int num_cols);
124 virtual void assign(
int size,
double value) ;
125 virtual RowVector vectorAdd(
const MyRowVector& v2)
const;
126 virtual unsigned int rows()
const;
127 virtual unsigned int columns()
const;
128 virtual unsigned int capacity()
const;
129 virtual RowVector& operator =(
double a);
130 virtual RowVector& operator =(
const MyRowVector& a);
132 using EigenRowVector::operator ==;
133 using EigenRowVector::operator =;
134 using EigenRowVector::operator +=;
135 using EigenRowVector::operator -=;
136 using EigenRowVector::operator +;
137 using EigenRowVector::operator -;
139 virtual MyRowVector & operator+= (
const MyRowVector& a);
140 virtual MyRowVector & operator-= (
const MyRowVector& a);
141 virtual MyRowVector operator+ (
const MyRowVector &a)
const;
142 virtual MyRowVector operator- (
const MyRowVector &a)
const;
144 virtual MyRowVector& operator+= (
double b);
145 virtual MyRowVector& operator-= (
double b);
146 virtual MyRowVector& operator*= (
double b);
147 virtual MyRowVector& operator/= (
double b);
148 virtual MyRowVector operator+ (
double b)
const;
149 virtual MyRowVector operator- (
double b)
const;
150 virtual MyRowVector operator* (
double b)
const;
151 virtual MyRowVector operator/ (
double b)
const;
153 virtual double operator()(
unsigned int)
const;
154 virtual bool operator==(
const MyRowVector& a)
const;
155 virtual double& operator()(
unsigned int);
156 virtual MyRowVector sub(
int j_start ,
int j_end)
const;
157 virtual MyColumnVector transpose()
const;
158 virtual double operator*(
const MyColumnVector& a)
const;