GNU Octave  8.1.0
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-2023 The Octave Project Developers
4 //
5 // See the file COPYRIGHT.md in the top-level directory of this
6 // distribution or <https://octave.org/copyright/>.
7 //
8 // This file is part of Octave.
9 //
10 // Octave is free software: you can redistribute it and/or modify it
11 // under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // Octave is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with Octave; see the file COPYING. If not, see
22 // <https://www.gnu.org/licenses/>.
23 //
24 ////////////////////////////////////////////////////////////////////////
25 
26 #if ! defined (octave_mx_defs_h)
27 #define octave_mx_defs_h 1
28 
29 #include "octave-config.h"
30 
31 // Classes we declare.
32 
33 #include "mx-fwd.h"
34 
35 template <typename T> class aepbalance;
36 
37 template <typename T> class gepbalance;
38 
39 template <typename T> class chol;
40 
41 class EIG;
42 
43 template <typename T> class gsvd;
44 
45 template <typename T> class hess;
46 
47 template <typename T> class schur;
48 
49 template <typename T> class svd;
50 
51 template <typename T> class lu;
52 
53 template <typename T> class qr;
54 
55 template <typename T> class qrp;
56 
57 // Other data types we use but that don't always need to have full
58 // declarations.
59 
60 #include "oct-cmplx.h"
61 
62 #if ! defined (MAPPER_FCN_TYPEDEFS)
63 # define MAPPER_FCN_TYPEDEFS 1
64 
65 typedef bool (*b_d_Mapper)(double);
66 typedef bool (*b_c_Mapper)(const Complex&);
67 
68 typedef double (*d_d_Mapper)(double);
69 typedef double (*d_c_Mapper)(const Complex&);
70 typedef Complex (*c_c_Mapper)(const Complex&);
71 
72 typedef bool (*b_f_Mapper)(float);
73 typedef bool (*b_fc_Mapper)(const FloatComplex&);
74 
75 typedef float (*f_f_Mapper)(float);
76 typedef float (*f_fc_Mapper)(const FloatComplex&);
78 
80 {
82  blas_trans = 'T',
83  blas_conj_trans = 'C'
84 };
85 
86 inline char
88 {
89  return static_cast<char> (transt);
90 }
91 
92 # endif
93 
94 #endif
Definition: EIG.h:41
Definition: chol.h:38
Definition: gsvd.h:39
Definition: hess.h:40
Definition: lu.h:42
Definition: qr.h:40
Definition: qrp.h:41
Definition: schur.h:47
Definition: svd.h:41
Complex(* c_c_Mapper)(const Complex &)
Definition: mx-defs.h:70
bool(* b_c_Mapper)(const Complex &)
Definition: mx-defs.h:66
blas_trans_type
Definition: mx-defs.h:80
@ blas_no_trans
Definition: mx-defs.h:81
@ blas_conj_trans
Definition: mx-defs.h:83
@ blas_trans
Definition: mx-defs.h:82
float(* f_fc_Mapper)(const FloatComplex &)
Definition: mx-defs.h:76
double(* d_c_Mapper)(const Complex &)
Definition: mx-defs.h:69
FloatComplex(* fc_fc_Mapper)(const FloatComplex &)
Definition: mx-defs.h:77
bool(* b_f_Mapper)(float)
Definition: mx-defs.h:72
char get_blas_char(blas_trans_type transt)
Definition: mx-defs.h:87
bool(* b_fc_Mapper)(const FloatComplex &)
Definition: mx-defs.h:73
float(* f_f_Mapper)(float)
Definition: mx-defs.h:75
bool(* b_d_Mapper)(double)
Definition: mx-defs.h:65
double(* d_d_Mapper)(double)
Definition: mx-defs.h:68
std::complex< double > Complex
Definition: oct-cmplx.h:33
std::complex< float > FloatComplex
Definition: oct-cmplx.h:34