fn_syl_lyap.hpp
Go to the documentation of this file.
1 // Copyright (C) 2011 NICTA (www.nicta.com.au)
2 // Copyright (C) 2011 Conrad Sanderson
3 //
4 // This file is part of the Armadillo C++ library.
5 // It is provided without any warranty of fitness
6 // for any purpose. You can redistribute this file
7 // and/or modify it under the terms of the GNU
8 // Lesser General Public License (LGPL) as published
9 // by the Free Software Foundation, either version 3
10 // of the License or (at your option) any later version.
11 // (see http://www.opensource.org/licenses for more info)
12 
13 
16 
17 
19 template<typename T1, typename T2, typename T3>
20 inline
21 bool
22 syl
23  (
29  )
30  {
33 
34  typedef typename T1::elem_type eT;
35 
36  const unwrap_check<T1> tmp_A(in_A.get_ref(), out);
37  const unwrap_check<T2> tmp_B(in_B.get_ref(), out);
38  const unwrap_check<T3> tmp_C(in_C.get_ref(), out);
39 
40  const Mat<eT>& A = tmp_A.M;
41  const Mat<eT>& B = tmp_B.M;
42  const Mat<eT>& C = tmp_C.M;
43 
44  const bool status = auxlib::syl(out, A, B, C);
45 
46  if(status == false)
47  {
48  out.reset();
49  arma_bad("syl(): equation appears to be singular", false);
50  }
51 
52  return false;
53  }
54 
55 
56 
57 template<typename T1, typename T2, typename T3>
58 inline
60 syl
61  (
66  )
67  {
70 
71  typedef typename T1::elem_type eT;
72 
73  Mat<eT> out;
74  const bool status = syl(out, in_A, in_B, in_C);
75 
76  if(status == false)
77  {
78  out.reset();
79  arma_bad("syl(): equation appears to be singular");
80  }
81 
82  return out;
83  }
84 
85 
86 
arma_inline const derived & get_ref() const
Definition: Base_meat.hpp:22
#define arma_ignore(variable)
bool syl(Mat< typename T1::elem_type > &out, const Base< typename T1::elem_type, T1 > &in_A, const Base< typename T1::elem_type, T2 > &in_B, const Base< typename T1::elem_type, T3 > &in_C, const typename arma_blas_type_only< typename T1::elem_type >::result *junk=0)
find the solution of the Sylvester equation AX + XB = C
Definition: fn_syl_lyap.hpp:23
void reset()
Definition: Mat_meat.hpp:4553
#define arma_extra_debug_sigprint
Definition: debug.hpp:1116
void arma_cold arma_bad(const T1 &x, const bool hurl=true)
print a message to get_stream_err2() and/or throw a run-time error exception
Definition: debug.hpp:150
Dense matrix class.
static bool syl(Mat< eT > &X, const Mat< eT > &A, const Mat< eT > &B, const Mat< eT > &C)


armadillo_matrix
Author(s):
autogenerated on Fri Apr 16 2021 02:31:57