21#ifdef __MATRIXWRAPPER_BOOST__
23#ifndef __VECTOR_BOOST__
24#define __VECTOR_BOOST__
26#include "matrix_wrapper.h"
27#include "vector_wrapper.h"
28#include <boost/numeric/ublas/vector.hpp>
29#include <boost/numeric/ublas/vector_proxy.hpp>
30#include <boost/numeric/ublas/io.hpp>
33#define BoostColumnVector boost::numeric::ublas::vector<double>
34#define BoostRowVector boost::numeric::ublas::vector<double>
37namespace MatrixWrapper
41class ColumnVector :
public BoostColumnVector,
public ColumnVector_Wrapper
49 ColumnVector(
int nrows);
50 ColumnVector(
int nrows,
double value);
53 ColumnVector(
const MyColumnVector& a,
const MyColumnVector& b);
56 virtual ~ColumnVector();
59 ColumnVector (
const MyColumnVector& a);
62 ColumnVector (
const BoostColumnVector& a);
64 virtual void resize(
int num_rows);
65 virtual unsigned int rows()
const;
66 virtual unsigned int columns()
const;
67 virtual unsigned int capacity()
const;
68 virtual void assign(
int size,
double value) ;
69 virtual ColumnVector vectorAdd(
const MyColumnVector& v2)
const;
70 virtual ColumnVector& operator =(
const MyColumnVector& a);
71 virtual ColumnVector& operator =(
double a);
73 virtual MyColumnVector & operator+= (
const MyColumnVector& a);
74 virtual MyColumnVector & operator-= (
const MyColumnVector& a);
75 virtual MyColumnVector operator+ (
const MyColumnVector &a)
const;
76 virtual MyColumnVector operator- (
const MyColumnVector &a)
const;
78 virtual MyColumnVector& operator+= (
double b);
79 virtual MyColumnVector& operator-= (
double b);
80 virtual MyColumnVector& operator*= (
double b);
81 virtual MyColumnVector& operator/= (
double b);
82 virtual MyColumnVector operator+ (
double b)
const;
83 virtual MyColumnVector operator- (
double b)
const;
84 virtual MyColumnVector operator* (
double b)
const;
85 virtual MyColumnVector operator/ (
double b)
const;
88 virtual double operator[](
unsigned int i)
const
98 virtual double& operator[](
unsigned int i)
106 virtual double operator()(
unsigned int)
const;
107 virtual bool operator==(
const MyColumnVector& a)
const;
108 virtual double& operator()(
unsigned int);
109 virtual MyMatrix operator* (
const MyRowVector &a)
const;
110 virtual MyColumnVector sub(
int j_start ,
int j_end)
const;
111 virtual MyRowVector transpose()
const;
117class RowVector :
public BoostRowVector,
public RowVector_Wrapper
124 RowVector(
int ncols);
125 RowVector(
int ncols,
double value);
130 RowVector (
const MyRowVector& a);
132 RowVector (
const BoostRowVector& a);
134 virtual ~RowVector();
136 virtual void resize(
int num_cols);
137 virtual void assign(
int size,
double value) ;
138 virtual RowVector vectorAdd(
const MyRowVector& v2)
const;
139 virtual unsigned int rows()
const;
140 virtual unsigned int columns()
const;
141 virtual unsigned int capacity()
const;
142 virtual RowVector& operator =(
double a);
143 virtual RowVector& operator =(
const MyRowVector& a);
145 virtual MyRowVector & operator+= (
const MyRowVector& a);
146 virtual MyRowVector & operator-= (
const MyRowVector& a);
147 virtual MyRowVector operator+ (
const MyRowVector &a)
const;
148 virtual MyRowVector operator- (
const MyRowVector &a)
const;
150 virtual MyRowVector& operator+= (
double b);
151 virtual MyRowVector& operator-= (
double b);
152 virtual MyRowVector& operator*= (
double b);
153 virtual MyRowVector& operator/= (
double b);
154 virtual MyRowVector operator+ (
double b)
const;
155 virtual MyRowVector operator- (
double b)
const;
156 virtual MyRowVector operator* (
double b)
const;
157 virtual MyRowVector operator/ (
double b)
const;
159 virtual double operator()(
unsigned int)
const;
160 virtual bool operator==(
const MyRowVector& a)
const;
161 virtual double& operator()(
unsigned int);
162 virtual MyRowVector sub(
int j_start ,
int j_end)
const;
163 virtual MyColumnVector transpose()
const;
164 virtual double operator*(
const MyColumnVector& a)
const;