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
fDiagMatrix.h
Go to the documentation of this file.
1
/*
2
3
Copyright (C) 1994-2013 John W. Eaton
4
5
This file is part of Octave.
6
7
Octave is free software; you can redistribute it and/or modify it
8
under the terms of the GNU General Public License as published by the
9
Free Software Foundation; either version 3 of the License, or (at your
10
option) any later version.
11
12
Octave is distributed in the hope that it will be useful, but WITHOUT
13
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15
for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with Octave; see the file COPYING. If not, see
19
<http://www.gnu.org/licenses/>.
20
21
*/
22
23
#if !defined (octave_fDiagMatrix_h)
24
#define octave_fDiagMatrix_h 1
25
26
#include "
MDiagArray2.h
"
27
28
#include "
fRowVector.h
"
29
#include "
fColVector.h
"
30
#include "
DET.h
"
31
32
#include "
mx-defs.h
"
33
34
class
35
OCTAVE_API
36
FloatDiagMatrix
:
public
MDiagArray2<float>
37
{
38
friend
class
FloatSVD
;
39
friend
class
FloatComplexSVD
;
40
41
public
:
42
43
FloatDiagMatrix
(
void
) :
MDiagArray2
<
float
> () { }
44
45
FloatDiagMatrix
(
octave_idx_type
r,
octave_idx_type
c)
46
:
MDiagArray2
<
float
> (r, c) { }
47
48
FloatDiagMatrix
(
octave_idx_type
r,
octave_idx_type
c,
float
val)
49
:
MDiagArray2
<
float
> (r, c, val) { }
50
51
FloatDiagMatrix
(
const
FloatDiagMatrix
& a) :
MDiagArray2
<
float
> (a) { }
52
53
FloatDiagMatrix
(
const
MDiagArray2<float>
& a) :
MDiagArray2
<
float
> (a) { }
54
55
template
<
class
U>
56
FloatDiagMatrix
(
const
DiagArray2<U>
& a) :
MDiagArray2
<
float
> (a) { }
57
58
explicit
FloatDiagMatrix
(
const
Array<double>
& a) :
MDiagArray2
<
float
> (a) { }
59
60
FloatDiagMatrix
(
const
Array<float>
& a,
octave_idx_type
r,
octave_idx_type
c)
61
:
MDiagArray2
<
float
> (a, r, c) { }
62
63
FloatDiagMatrix
&
operator =
(
const
FloatDiagMatrix
& a)
64
{
65
MDiagArray2<float>::operator =
(a);
66
return
*
this
;
67
}
68
69
bool
operator ==
(
const
FloatDiagMatrix
& a)
const
;
70
bool
operator !=
(
const
FloatDiagMatrix
& a)
const
;
71
72
FloatDiagMatrix
& fill (
float
val);
73
FloatDiagMatrix
& fill (
float
val,
octave_idx_type
beg,
octave_idx_type
end);
74
FloatDiagMatrix
& fill (
const
FloatColumnVector
& a);
75
FloatDiagMatrix
& fill (
const
FloatRowVector
& a);
76
FloatDiagMatrix
& fill (
const
FloatColumnVector
& a,
octave_idx_type
beg);
77
FloatDiagMatrix
& fill (
const
FloatRowVector
& a,
octave_idx_type
beg);
78
79
FloatDiagMatrix
transpose
(
void
)
const
80
{
return
MDiagArray2<float>::transpose
(); }
81
82
FloatDiagMatrix
abs
(
void
)
const
;
83
84
friend
OCTAVE_API
FloatDiagMatrix
real
(
const
FloatComplexDiagMatrix
& a);
85
friend
OCTAVE_API
FloatDiagMatrix
imag
(
const
FloatComplexDiagMatrix
& a);
86
87
// resize is the destructive analog for this one
88
89
FloatMatrix
extract (
octave_idx_type
r1
,
octave_idx_type
c1
,
90
octave_idx_type
r2
,
octave_idx_type
c2)
const
;
91
92
// extract row or column i.
93
94
FloatRowVector
row (
octave_idx_type
i)
const
;
95
FloatRowVector
row (
char
*s)
const
;
96
97
FloatColumnVector
column (
octave_idx_type
i)
const
;
98
FloatColumnVector
column (
char
*s)
const
;
99
100
FloatDiagMatrix
inverse (
void
)
const
;
101
FloatDiagMatrix
inverse (
octave_idx_type
& info)
const
;
102
FloatDiagMatrix
pseudo_inverse (
void
)
const
;
103
104
// other operations
105
106
FloatColumnVector
extract_diag (
octave_idx_type
k = 0)
const
107
{
return
MDiagArray2<float>::extract_diag
(k); }
108
109
FloatDET
determinant (
void
)
const
;
110
float
rcond (
void
)
const
;
111
112
// i/o
113
114
friend
OCTAVE_API std::ostream&
operator <<
(std::ostream& os,
115
const
FloatDiagMatrix
& a);
116
117
};
118
119
OCTAVE_API
FloatDiagMatrix
real
(
const
FloatComplexDiagMatrix
& a);
120
OCTAVE_API
FloatDiagMatrix
imag
(
const
FloatComplexDiagMatrix
& a);
121
122
// diagonal matrix by diagonal matrix -> diagonal matrix operations
123
124
OCTAVE_API
FloatDiagMatrix
operator *
(
const
FloatDiagMatrix
& a,
125
const
FloatDiagMatrix
& b);
126
127
MDIAGARRAY2_FORWARD_DEFS
(
MDiagArray2
,
FloatDiagMatrix
,
float
)
128
129
#endif
Generated on Mon Dec 30 2013 03:04:43 for GNU Octave by
1.8.1.2