GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
mx-defs.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 1994-2018 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
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License 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 <https://www.gnu.org/licenses/>.
20 
21 */
22 
23 #if ! defined (octave_mx_defs_h)
24 #define octave_mx_defs_h 1
25 
26 #include "octave-config.h"
27 
28 // Classes we declare.
29 
30 class Matrix;
31 class ComplexMatrix;
32 class FloatMatrix;
33 class FloatComplexMatrix;
34 class boolMatrix;
35 class charMatrix;
36 
37 class NDArray;
38 class ComplexNDArray;
39 class FloatNDArray;
41 class boolNDArray;
42 class charNDArray;
43 
44 class ColumnVector;
46 class FloatColumnVector;
48 
49 class RowVector;
50 class ComplexRowVector;
51 class FloatRowVector;
53 
54 class DiagMatrix;
55 class ComplexDiagMatrix;
56 class FloatDiagMatrix;
58 
59 class PermMatrix;
60 
61 template <typename T> class aepbalance;
62 
63 template <typename T> class gepbalance;
64 
65 template <typename T> class chol;
66 
67 class EIG;
68 
69 template <typename T> class gsvd;
70 
71 template <typename T> class hess;
72 
73 template <typename T> class schur;
74 
75 template <typename T> class svd;
76 
77 template <typename T> class lu;
78 
79 template <typename T> class qr;
80 
81 template <typename T> class qrp;
82 
83 // Other data types we use but that don't always need to have full
84 // declarations.
85 
86 #include "oct-cmplx.h"
87 
88 #if ! defined (MAPPER_FCN_TYPEDEFS)
89 # define MAPPER_FCN_TYPEDEFS 1
90 
91 typedef bool (*b_d_Mapper)(double);
92 typedef bool (*b_c_Mapper)(const Complex&);
93 
94 typedef double (*d_d_Mapper)(double);
95 typedef double (*d_c_Mapper)(const Complex&);
96 typedef Complex (*c_c_Mapper)(const Complex&);
97 
98 typedef bool (*b_f_Mapper)(float);
99 typedef bool (*b_fc_Mapper)(const FloatComplex&);
100 
101 typedef float (*f_f_Mapper)(float);
102 typedef float (*f_fc_Mapper)(const FloatComplex&);
104 
106 {
108  blas_trans = 'T',
110 };
111 
112 inline char
114 {
115  return static_cast<char> (transt);
116 }
117 
118 # endif
119 
120 #endif
bool(* b_fc_Mapper)(const FloatComplex &)
Definition: mx-defs.h:99
Definition: mx-defs.h:69
Complex(* c_c_Mapper)(const Complex &)
Definition: mx-defs.h:96
Definition: mx-defs.h:65
Definition: mx-defs.h:81
Definition: EIG.h:35
bool(* b_c_Mapper)(const Complex &)
Definition: mx-defs.h:92
bool(* b_f_Mapper)(float)
Definition: mx-defs.h:98
Definition: mx-defs.h:77
bool(* b_d_Mapper)(double)
Definition: mx-defs.h:91
Definition: mx-defs.h:79
double(* d_d_Mapper)(double)
Definition: mx-defs.h:94
Definition: dMatrix.h:36
Definition: mx-defs.h:73
double(* d_c_Mapper)(const Complex &)
Definition: mx-defs.h:95
FloatComplex(* fc_fc_Mapper)(const FloatComplex &)
Definition: mx-defs.h:103
char get_blas_char(blas_trans_type transt)
Definition: mx-defs.h:113
std::complex< float > FloatComplex
Definition: oct-cmplx.h:32
blas_trans_type
Definition: mx-defs.h:105
std::complex< double > Complex
Definition: oct-cmplx.h:31
float(* f_f_Mapper)(float)
Definition: mx-defs.h:101
Definition: mx-defs.h:75
Definition: mx-defs.h:71
float(* f_fc_Mapper)(const FloatComplex &)
Definition: mx-defs.h:102