1 ////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (C) 1993-2021 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_DAE_h)
27 #define octave_DAE_h 1
28 
29 #include "octave-config.h"
30 
31 #include "DAEFunc.h"
32 #include "base-dae.h"
33 
34 class
35 OCTAVE_API
36 DAE : public base_diff_alg_eqn, public DAEFunc
37 {
38 public:
39 
DAE(void)40   DAE (void)
41     : base_diff_alg_eqn (), DAEFunc () { }
42 
DAE(const ColumnVector & xx,double tt,DAEFunc & f)43   DAE (const ColumnVector& xx, double tt, DAEFunc& f)
44     : base_diff_alg_eqn (xx, tt), DAEFunc (f) { }
45 
DAE(const ColumnVector & xx,const ColumnVector & xxdot,double tt,DAEFunc & f)46   DAE (const ColumnVector& xx, const ColumnVector& xxdot,
47        double tt, DAEFunc& f)
48     : base_diff_alg_eqn (xx, xxdot, tt), DAEFunc (f) { }
49 
DAE(const DAE & a)50   DAE (const DAE& a)
51     : base_diff_alg_eqn (a), DAEFunc (a) { }
52 
53   DAE& operator = (const DAE& a)
54   {
55     if (this != &a)
56       {
57         base_diff_alg_eqn::operator = (a);
58         DAEFunc::operator = (a);
59       }
60     return *this;
61   }
62 
63   virtual ~DAE (void) = default;
64 };
65 
66 #endif
67