src
wrappers
matrix
vector_LTI.h
Go to the documentation of this file.
1
// $Id$
2
// Copyright (C) 2002 Klaas Gadeyne <first dot last at gmail dot com>
3
4
//
5
// This program is free software; you can redistribute it and/or modify
6
// it under the terms of the GNU Lesser General Public License as published by
7
// the Free Software Foundation; either version 2.1 of the License, or
8
// (at your option) any later version.
9
//
10
// This program is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
// GNU Lesser General Public License for more details.
14
//
15
// You should have received a copy of the GNU Lesser General Public License
16
// along with this program; if not, write to the Free Software
17
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
//
19
20
#include "../config.h"
21
#ifdef __MATRIXWRAPPER_LTI__
22
23
#ifndef __VECTOR_LTI__
24
#define __VECTOR_LTI__
25
26
#include "
matrix_wrapper.h
"
27
#include "
vector_wrapper.h
"
28
#include <iostream>
29
#include <ltilib/ltiIoHandler.h>
30
#include <ltilib/ltiVector.h>
31
32
// To avoid problems and clarify (? :-) things with namespaces, we
33
// use some macros
34
35
#define ltiColumnVector lti::vector<double>
36
#define ltiRowVector lti::vector<double>
37
39
class
MyColumnVector
:
public
ltiColumnVector,
public
ColumnVector_Wrapper
40
{
41
public
:
42
43
// Constructors & Destructors
44
ColumnVector();
45
ColumnVector(
int
nrows);
46
ColumnVector(
const
MyColumnVector
& a,
const
MyColumnVector
& b);
47
ColumnVector(
const
ltiColumnVector &a);
48
// For Submatrix assignment eg. Vector = matrix.sub(2,3,1,1);
49
ColumnVector(
const
MyMatrix
&a);
50
51
virtual
~ColumnVector();
52
53
// Copy constructors
54
ColumnVector (
const
MyColumnVector
& a);
55
56
virtual
void
resize(
int
num_rows);
57
virtual
unsigned
int
rows()
const
;
58
virtual
unsigned
int
columns()
const
;
59
virtual
unsigned
int
capacity()
const
;
60
virtual
void
assign(
int
size,
double
value) ;
61
virtual
ColumnVector vectorAdd(
const
MyColumnVector
& v2)
const
;
62
virtual
ColumnVector& operator =(
const
MyColumnVector
& a);
63
virtual
ColumnVector& operator =(
double
a);
64
virtual
const
bool
operator==(
const
MyColumnVector
& a)
const
;
65
66
virtual
MyColumnVector
& operator+= (
const
MyColumnVector
& a);
67
virtual
MyColumnVector
& operator-= (
const
MyColumnVector
& a);
68
virtual
MyColumnVector
operator+ (
const
MyColumnVector
&a)
const
;
69
virtual
MyColumnVector
operator- (
const
MyColumnVector
&a)
const
;
70
71
virtual
MyColumnVector
& operator+= (
double
b);
72
virtual
MyColumnVector
& operator-= (
double
b);
73
virtual
MyColumnVector
& operator*= (
double
b);
74
virtual
MyColumnVector
& operator/= (
double
b);
75
virtual
MyColumnVector
operator+ (
double
b)
const
;
76
virtual
MyColumnVector
operator- (
double
b)
const
;
77
virtual
MyColumnVector
operator* (
double
b)
const
;
78
virtual
MyColumnVector
operator/ (
double
b)
const
;
79
80
virtual
const
double
operator()(
unsigned
int
)
const
;
81
virtual
double
& operator()(
unsigned
int
);
82
virtual
MyMatrix
operator* (
const
MyRowVector
&a)
const
;
83
virtual
MyColumnVector
sub(
int
j_start ,
int
j_end)
const
;
84
virtual
MyRowVector
transpose()
const
;
85
86
};
87
88
90
class
MyRowVector
:
public
ltiRowVector,
public
RowVector_Wrapper
91
{
92
// No private member: We don't add anything.
93
94
// Public Members
95
public
:
96
RowVector();
97
RowVector(
int
ncols);
98
// If you have another constructor in the matrix library you
99
// want to use, you'll have to redefine it yourself
100
RowVector(
const
ltiRowVector &a);
101
// Copy constructor
102
RowVector (
const
MyRowVector
& a);
103
104
virtual
~RowVector();
105
106
virtual
void
resize(
int
num_cols);
107
virtual
void
assign(
int
size,
double
value) ;
108
virtual
RowVector vectorAdd(
const
MyRowVector
& v2)
const
;
109
virtual
unsigned
int
rows()
const
;
110
virtual
unsigned
int
columns()
const
;
111
virtual
unsigned
int
capacity()
const
;
112
virtual
RowVector& operator =(
double
a);
113
virtual
RowVector& operator =(
const
MyRowVector
& a);
114
virtual
const
bool
operator==(
const
MyRowVector
& a)
const
;
115
116
virtual
MyRowVector
& operator+= (
const
MyRowVector
& a);
117
virtual
MyRowVector
& operator-= (
const
MyRowVector
& a);
118
virtual
MyRowVector
operator+ (
const
MyRowVector
&a)
const
;
119
virtual
MyRowVector
operator- (
const
MyRowVector
&a)
const
;
120
121
virtual
MyRowVector
& operator+= (
double
b);
122
virtual
MyRowVector
& operator-= (
double
b);
123
virtual
MyRowVector
& operator*= (
double
b);
124
virtual
MyRowVector
& operator/= (
double
b);
125
virtual
MyRowVector
operator+ (
double
b)
const
;
126
virtual
MyRowVector
operator- (
double
b)
const
;
127
virtual
MyRowVector
operator* (
double
b)
const
;
128
virtual
MyRowVector
operator/ (
double
b)
const
;
129
130
virtual
const
double
operator()(
unsigned
int
)
const
;
131
virtual
double
& operator()(
unsigned
int
);
132
virtual
MyRowVector
sub(
int
j_start ,
int
j_end)
const
;
133
virtual
MyColumnVector
transpose()
const
;
134
virtual
MyRowVector
operator* (
const
MyMatrix
& a);
135
virtual
double
operator*(
const
MyColumnVector
& a)
const
;
136
137
};
138
139
140
#endif
141
142
#endif
MyMatrix
#define MyMatrix
vector_wrapper.h
matrix_wrapper.h
MyRowVector
#define MyRowVector
MyColumnVector
#define MyColumnVector
bfl
Author(s): Klaas Gadeyne, Wim Meeussen, Tinne Delaet and many others. See web page for a full contributor list. ROS package maintained by Wim Meeussen.
autogenerated on Mon Feb 28 2022 21:56:33