GNU Octave
3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
liboctave
array
dColVector.h
Go to the documentation of this file.
1
/*
2
3
Copyright (C) 1994-2013 John W. Eaton
4
Copyright (C) 2010 VZLU Prague
5
6
This file is part of Octave.
7
8
Octave is free software; you can redistribute it and/or modify it
9
under the terms of the GNU General Public License as published by the
10
Free Software Foundation; either version 3 of the License, or (at your
11
option) any later version.
12
13
Octave is distributed in the hope that it will be useful, but WITHOUT
14
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16
for more details.
17
18
You should have received a copy of the GNU General Public License
19
along with Octave; see the file COPYING. If not, see
20
<http://www.gnu.org/licenses/>.
21
22
*/
23
24
#if !defined (octave_dColVector_h)
25
#define octave_dColVector_h 1
26
27
#include "
MArray.h
"
28
29
#include "
mx-defs.h
"
30
31
class
32
OCTAVE_API
33
ColumnVector
:
public
MArray<double>
34
{
35
public
:
36
37
ColumnVector
(
void
) :
MArray
<
double
> (
dim_vector
(0, 1)) { }
38
39
explicit
ColumnVector
(
octave_idx_type
n)
40
:
MArray
<
double
> (
dim_vector
(n, 1)) { }
41
42
explicit
ColumnVector
(
const
dim_vector
& dv)
43
:
MArray
<
double
> (dv.as_column ()) { }
44
45
ColumnVector
(
octave_idx_type
n,
double
val)
46
:
MArray
<
double
> (
dim_vector
(n, 1), val) { }
47
48
ColumnVector
(
const
ColumnVector
& a) :
MArray
<
double
> (a) { }
49
50
ColumnVector
(
const
MArray<double>
& a) :
MArray
<
double
> (a.as_column ()) { }
51
ColumnVector
(
const
Array<double>
& a) :
MArray
<
double
> (a.as_column ()) { }
52
53
ColumnVector
&
operator =
(
const
ColumnVector
& a)
54
{
55
MArray<double>::operator =
(a);
56
return
*
this
;
57
}
58
59
bool
operator ==
(
const
ColumnVector
& a)
const
;
60
bool
operator !=
(
const
ColumnVector
& a)
const
;
61
62
// destructive insert/delete/reorder operations
63
64
ColumnVector
&
insert
(
const
ColumnVector
& a,
octave_idx_type
r);
65
66
ColumnVector
& fill (
double
val);
67
ColumnVector
& fill (
double
val,
octave_idx_type
r1
,
octave_idx_type
r2
);
68
69
ColumnVector
stack (
const
ColumnVector
& a)
const
;
70
71
RowVector
transpose
(
void
)
const
;
72
73
friend
OCTAVE_API
ColumnVector
real
(
const
ComplexColumnVector
& a);
74
friend
OCTAVE_API
ColumnVector
imag
(
const
ComplexColumnVector
& a);
75
76
// resize is the destructive equivalent for this one
77
78
ColumnVector
extract (
octave_idx_type
r1
,
octave_idx_type
r2
)
const
;
79
80
ColumnVector
extract_n (
octave_idx_type
r1
,
octave_idx_type
n)
const
;
81
82
// matrix by column vector -> column vector operations
83
84
friend
OCTAVE_API
ColumnVector
operator *
(
const
Matrix
& a,
85
const
ColumnVector
& b);
86
87
// diagonal matrix by column vector -> column vector operations
88
89
friend
OCTAVE_API
ColumnVector
operator *
(
const
DiagMatrix
& a,
90
const
ColumnVector
& b);
91
92
// other operations
93
94
double
min
(
void
)
const
;
95
double
max
(
void
)
const
;
96
97
ColumnVector
abs
(
void
)
const
;
98
99
// i/o
100
101
friend
OCTAVE_API std::ostream&
operator <<
(std::ostream& os,
102
const
ColumnVector
& a);
103
friend
OCTAVE_API std::istream&
operator >>
(std::istream& is,
104
ColumnVector
& a);
105
106
void
resize
(
octave_idx_type
n,
const
double
& rfv = 0)
107
{
108
Array<double>::resize
(
dim_vector
(n, 1), rfv);
109
}
110
111
void
clear
(
octave_idx_type
n)
112
{
Array<double>::clear
(n, 1); }
113
114
};
115
116
// Publish externally used friend functions.
117
118
extern
OCTAVE_API
ColumnVector
real
(
const
ComplexColumnVector
& a);
119
extern
OCTAVE_API
ColumnVector
imag
(
const
ComplexColumnVector
& a);
120
121
MARRAY_FORWARD_DEFS
(
MArray
,
ColumnVector
,
double
)
122
123
#endif
Generated on Mon Dec 30 2013 03:04:41 for GNU Octave by
1.8.1.2