# HG changeset patch # User Jaroslav Hajek # Date 1236764524 -3600 # Node ID 360aa52b5942dca2f8d4be8310aac0f736d1b669 # Parent d91fa4b20bbbfa35b91a9cbf332e41babfa329fe remove unused liboctave sources diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/Bounds.cc --- a/liboctave/Bounds.cc Wed Mar 11 10:31:08 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* - -Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2002, 2004, 2005, - 2007 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include "Bounds.h" -#include "lo-error.h" - -// error handling - -void -Bounds::error (const char* msg) -{ - (*current_liboctave_error_handler) ("fatal bounds error: ", msg); -} - -Bounds& -Bounds::set_bounds (const ColumnVector l, const ColumnVector u) -{ - if (l.capacity () != u.capacity ()) - { - error ("inconsistent sizes for lower and upper bounds"); - return *this; - } - - lb = l; - ub = u; - - return *this; -} - -Bounds& -Bounds::set_lower_bounds (const ColumnVector l) -{ - if (ub.capacity () != l.capacity ()) - { - error ("inconsistent size for lower bounds"); - return *this; - } - - lb = l; - - return *this; -} - -Bounds& -Bounds::set_upper_bounds (const ColumnVector u) -{ - if (lb.capacity () != u.capacity ()) - { - error ("inconsistent size for upper bounds"); - return *this; - } - - ub = u; - - return *this; -} - -std::ostream& -operator << (std::ostream& os, const Bounds& b) -{ - for (octave_idx_type i = 0; i < b.size (); i++) - os << b.lower_bound (i) << " " << b.upper_bound (i) << "\n"; - - return os; -} - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/ diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/Bounds.h --- a/liboctave/Bounds.h Wed Mar 11 10:31:08 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -/* - -Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2002, 2004, 2005, - 2007 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#if !defined (octave_Bounds_h) -#define octave_Bounds_h 1 - -#include - -#include "dColVector.h" - -class -Bounds -{ -public: - - Bounds (void) - : lb (), ub () { } - - Bounds (octave_idx_type n) - : lb (n, 0.0), ub (n, 0.0) { } - - Bounds (const ColumnVector l, const ColumnVector u) - : lb (l), ub (u) - { - if (lb.capacity () != ub.capacity ()) - { - error ("inconsistent sizes for lower and upper bounds"); - return; - } - } - - Bounds (const Bounds& a) - : lb (a.lb), ub (a.ub) { } - - Bounds& operator = (const Bounds& a) - { - if (this != &a) - { - lb = a.lower_bounds (); - ub = a.upper_bounds (); - } - return *this; - } - - ~Bounds (void) { } - - Bounds& resize (octave_idx_type n) - { - lb.resize (n); - ub.resize (n); - - return *this; - } - - double lower_bound (octave_idx_type index) const { return lb.elem (index); } - double upper_bound (octave_idx_type index) const { return ub.elem (index); } - - ColumnVector lower_bounds (void) const { return lb; } - ColumnVector upper_bounds (void) const { return ub; } - - octave_idx_type size (void) const { return lb.capacity (); } - - Bounds& set_bound (octave_idx_type index, double low, double high) - { - lb.elem (index) = low; - ub.elem (index) = high; - return *this; - } - - Bounds& set_bounds (double low, double high) - { - lb.fill (low); - ub.fill (high); - return *this; - } - - Bounds& set_bounds (const ColumnVector lb, const ColumnVector ub); - - Bounds& set_lower_bound (octave_idx_type index, double low) - { - lb.elem (index) = low; - return *this; - } - - Bounds& set_upper_bound (octave_idx_type index, double high) - { - ub.elem (index) = high; - return *this; - } - - Bounds& set_lower_bounds (double low) - { - lb.fill (low); - return *this; - } - - Bounds& set_upper_bounds (double high) - { - ub.fill (high); - return *this; - } - - Bounds& set_lower_bounds (const ColumnVector lb); - Bounds& set_upper_bounds (const ColumnVector ub); - - friend std::ostream& operator << (std::ostream& os, const Bounds& b); - -protected: - - ColumnVector lb; - ColumnVector ub; - -private: - - void error (const char *msg); -}; - -#endif - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/ diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/FEGrid.cc --- a/liboctave/FEGrid.cc Wed Mar 11 10:31:08 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -/* - -Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2002, 2003, 2004, - 2005, 2007 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include "FEGrid.h" -#include "lo-error.h" - -// error handling - -void -FEGrid::error (const char* msg) const -{ - (*current_liboctave_error_handler) ("fatal FEGrid error: %s", msg); -} - -void -FEGrid::nel_error (void) const -{ - error ("number of elements less than 1"); -} - -// Constructors - -FEGrid::FEGrid (octave_idx_type nel, double width) -{ - if (nel < 1) - { - nel_error (); - return; - } - - elem.resize (nel+1); - - for (octave_idx_type i = 0; i <= nel; i++) - elem.elem (i) = i * width; -} - -FEGrid::FEGrid (octave_idx_type nel, double l, double r) -{ - if (nel < 1) - { - nel_error (); - return; - } - - elem.resize (nel+1); - - double width = (r - l) / nel; - - for (octave_idx_type i = 0; i <= nel; i++) - elem.elem (i) = i * width + l; - - check_grid (); -} - -octave_idx_type -FEGrid::element (double x) const -{ - if (! in_bounds (x)) - { - error ("value not within grid boundaries"); - return -1; - } - - octave_idx_type nel = elem.capacity () - 1; - for (octave_idx_type i = 1; i <= nel; i++) - { - if (x >= elem.elem (i-1) && x <= elem.elem (i)) - return i; - } - return -1; - -} - -void -FEGrid::check_grid (void) const -{ - octave_idx_type nel = elem.capacity () - 1; - if (nel < 1) - { - nel_error (); - return; - } - - for (octave_idx_type i = 1; i <= nel; i++) - { - if (elem.elem (i-1) > elem.elem (i)) - { - error ("element boundaries not in ascending order"); - return; - } - - if (elem.elem (i-1) == elem.elem (i)) - { - error ("zero width element"); - return; - } - } -} - -std::ostream& -operator << (std::ostream& s, const FEGrid& g) -{ - s << g.element_boundaries (); - return s; -} - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/ diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/FEGrid.h --- a/liboctave/FEGrid.h Wed Mar 11 10:31:08 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* - -Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2002, 2004, 2005, - 2007 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#if !defined (octave_FEGrid_h) -#define octave_FEGrid_h 1 - -#include - -#include "dColVector.h" - -class -FEGrid -{ -public: - - FEGrid (void) - : elem () { } - - FEGrid (const ColumnVector& elbnds) - : elem (elbnds) { check_grid (); } - - FEGrid (octave_idx_type nel, double width); - - FEGrid (octave_idx_type nel, double left, double right); - - FEGrid (const FEGrid& a) - : elem (a.elem) { } - - FEGrid& operator = (const FEGrid& a) - { - if (this != &a) - elem = a.elem; - - return *this; - } - - ~FEGrid (void) { } - - octave_idx_type element (double x) const; - - double left (void) const { return elem.elem (0); } - - double right (void) const { return elem.elem (elem.capacity () - 1); } - - int in_bounds (double x) const { return (x >= left () && x <= right ()); } - - ColumnVector element_boundaries (void) const { return elem; } - - friend std::ostream& operator << (std::ostream&, const FEGrid&); - -protected: - - ColumnVector elem; - -private: - - void error (const char* msg) const; - void nel_error (void) const; - - void check_grid (void) const; -}; - -#endif - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/ diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/LP.h --- a/liboctave/LP.h Wed Mar 11 10:31:08 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* - -Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2002, 2003, 2005, - 2007 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#if !defined (octave_LP_h) -#define octave_LP_h 1 - -#include "dColVector.h" -#include "Bounds.h" -#include "LinConst.h" -#include "base-min.h" - -class -octave_LP : public base_minimizer -{ -public: - - octave_LP (void) - : base_minimizer (), cvec (), bnds (), lin_constr () { } - - octave_LP (const ColumnVector& c) - : base_minimizer (), cvec (c), bnds (), lin_constr () { } - - octave_LP (const ColumnVector& c, const Bounds& b) - : base_minimizer (), cvec (c), bnds (b), lin_constr () { } - - octave_LP (const ColumnVector& c, const Bounds& b, const LinConst& l) - : base_minimizer (), cvec (c), bnds (b), lin_constr (l) { } - - octave_LP (const ColumnVector& c, const LinConst& l) - : base_minimizer (), cvec (c), bnds (), lin_constr (l) { } - - octave_LP (const octave_LP& a) - : base_minimizer (a), cvec (a.cvec), bnds (a.bnds), lin_constr (a.lin_constr) { } - - octave_LP& operator = (const octave_LP& a) - { - if (this != &a) - { - base_minimizer::operator = (a); - - cvec = a.cvec; - bnds = a.bnds; - lin_constr = a.lin_constr; - } - return *this; - } - - ~octave_LP (void) { } - - ColumnVector linear_obj_coeff (void) const { return cvec; } - - Bounds bounds (void) const { return bnds; } - - LinConst linear_constraints (void) const { return lin_constr; } - -protected: - - ColumnVector cvec; - Bounds bnds; - LinConst lin_constr; -}; - -#endif - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/ diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/LinConst.cc --- a/liboctave/LinConst.cc Wed Mar 11 10:31:08 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* - -Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2002, 2004, 2005, - 2007 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include "LinConst.h" -#include "lo-error.h" - -// error handling - -void -LinConst::error (const char* msg) -{ - (*current_liboctave_error_handler) ("fatal LinConst error: %s", msg); -} - -std::ostream& -operator << (std::ostream& os, const LinConst& c) -{ - for (octave_idx_type i = 0; i < c.size (); i++) - os << c.lower_bound (i) << " " << c.upper_bound (i) << "\n"; - - os << "\n"; - os << c.constraint_matrix (); - - return os; -} - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/ diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/LinConst.h --- a/liboctave/LinConst.h Wed Mar 11 10:31:08 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* - -Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2002, 2004, 2005, - 2007 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#if !defined (octave_LinConst_h) -#define octave_LinConst_h 1 - -#include - -class ColumnVector; - -#include - -#include "dMatrix.h" -#include "Bounds.h" - -class -LinConst : public Bounds -{ -public: - - LinConst (void) - : Bounds (), A () { } - - LinConst (const ColumnVector& l, const Matrix& amat, const ColumnVector& u) - : Bounds (l, u), A (amat) - { - if (Bounds::size () != amat.rows ()) - error ("nonconformant constraint matrix and bounds vectors"); - } - - LinConst (const LinConst& a) - : Bounds (a.lb, a.ub), A (a.A) { } - - LinConst& operator = (const LinConst& a) - { - if (this != &a) - { - Bounds::operator = (a); - - A = a.A; - } - return *this; - } - - ~LinConst (void) { } - - Matrix constraint_matrix (void) const { return A; } - - LinConst& set_constraint_matrix (const Matrix& amat) - { - if (lb.capacity () != amat.rows ()) - error ("inconsistent size for new linear constraint matrix"); - - A = amat; - - return *this; - } - - friend std::ostream& operator << (std::ostream& os, const LinConst& b); - -protected: - - Matrix A; - -private: - - void error (const char *msg); -}; - -#endif - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/ diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/Makefile.in --- a/liboctave/Makefile.in Wed Mar 11 10:31:08 2009 +0100 +++ b/liboctave/Makefile.in Wed Mar 11 10:42:04 2009 +0100 @@ -77,11 +77,11 @@ OPT_IN := $(addsuffix .in, $(OPT_BASE)) OPT_INC := $(addsuffix .h, $(OPT_BASE)) -INCLUDES := Bounds.h CollocWt.h DAE.h DAEFunc.h DAERT.h \ - DAERTFunc.h DASPK.h DASRT.h DASSL.h FEGrid.h \ - LinConst.h LP.h LSODE.h \ +INCLUDES := CollocWt.h DAE.h DAEFunc.h DAERT.h \ + DAERTFunc.h DASPK.h DASRT.h DASSL.h \ + LSODE.h \ ODE.h ODEFunc.h ODES.h ODESFunc.h \ - Objective.h QP.h Quad.h Range.h base-dae.h \ + Quad.h Range.h base-dae.h \ base-de.h base-min.h byte-swap.h cmd-edit.h cmd-hist.h \ data-conv.h dir-ops.h file-ops.h file-stat.h functor.h getopt.h \ glob-match.h idx-vector.h kpse-xfns.h \ @@ -142,8 +142,8 @@ SPARSE_MX_OP_SRC := $(shell $(AWK) -f $(srcdir)/sparse-mk-ops.awk prefix=smx list_cc_files=1 $(srcdir)/sparse-mx-ops) -LIBOCTAVE_CXX_SOURCES := oct-locbuf.cc Bounds.cc CollocWt.cc DASPK.cc DASRT.cc \ - DASSL.cc FEGrid.cc LinConst.cc LSODE.cc ODES.cc \ +LIBOCTAVE_CXX_SOURCES := oct-locbuf.cc CollocWt.cc DASPK.cc DASRT.cc \ + DASSL.cc LSODE.cc ODES.cc \ Quad.cc Range.cc data-conv.cc dir-ops.cc \ file-ops.cc file-stat.cc glob-match.cc idx-vector.cc \ lo-ieee.cc lo-mappers.cc lo-specfun.cc lo-sysdep.cc \ diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/Objective.h --- a/liboctave/Objective.h Wed Mar 11 10:31:08 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* - -Copyright (C) 1993, 1994, 1995, 1996, 1997, 2005, 2007 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#if !defined (octave_Objective_h) -#define octave_Objective_h 1 - -#include "dColVector.h" - -class -Objective -{ -public: - - typedef double (*objective_fcn) (const ColumnVector&); - typedef ColumnVector (*gradient_fcn) (const ColumnVector&); - - Objective (void) - : phi (0), grad (0) { } - - Objective (const objective_fcn obj) - : phi (obj), grad (0) { } - - Objective (const objective_fcn obj, const gradient_fcn g) - : phi (obj), grad (g) { } - - Objective (const Objective& a) - : phi (a.phi), grad (a.grad) { } - - Objective& operator = (const Objective& a) - { - if (this != &a) - { - phi = a.phi; - grad = a.grad; - } - return *this; - } - - ~Objective (void) { } - - objective_fcn objective_function (void) const { return phi; } - - Objective& set_objective_function (const objective_fcn obj) - { - phi = obj; - return *this; - } - - gradient_fcn gradient_function (void) const { return grad; } - - Objective& set_gradient_function (const gradient_fcn g) - { - grad = g; - return *this; - } - -private: - - objective_fcn phi; - gradient_fcn grad; - -}; - -#endif - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/ diff -r d91fa4b20bbb -r 360aa52b5942 liboctave/QP.h --- a/liboctave/QP.h Wed Mar 11 10:31:08 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* - -Copyright (C) 1993, 1994, 1995, 1996, 1997, 2005, 2007 John W. Eaton - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ - -#if !defined (octave_QP_h) -#define octave_QP_h 1 - -#include "dMatrix.h" -#include "dColVector.h" -#include "Bounds.h" -#include "LinConst.h" -#include "base-min.h" - -class -QP : public base_minimizer -{ -public: - - QP (void) - : base_minimizer (), H (), c (), bnds (), lc () { } - - QP (const ColumnVector& x, const Matrix& H_arg) - : base_minimizer (x), H (H_arg), c (), bnds (), lc () - { make_h_symmetric (); } - - QP (const ColumnVector& x, const Matrix& H_arg, const ColumnVector& c_arg) - : base_minimizer (x), H (H_arg), c (c_arg), bnds (), lc () - { make_h_symmetric (); } - - QP (const ColumnVector& x, const Matrix& H_arg, const Bounds& b) - : base_minimizer (x), H (H_arg), c (), bnds (b), lc () - { make_h_symmetric (); } - - QP (const ColumnVector& x, const Matrix& H_arg, const LinConst& l) - : base_minimizer (x), H (H_arg), c (), bnds (), lc (l) - { make_h_symmetric (); } - - QP (const ColumnVector& x, const Matrix& H_arg, const ColumnVector& c_arg, - const Bounds& b) - : base_minimizer (x), H (H_arg), c (c_arg), bnds (b), lc () - { make_h_symmetric (); } - - QP (const ColumnVector& x, const Matrix& H_arg, const ColumnVector& c_arg, - const LinConst& l) - : base_minimizer (x), H (H_arg), c (c_arg), bnds (), lc (l) - { make_h_symmetric (); } - - QP (const ColumnVector& x, const Matrix& H_arg, const Bounds& b, - const LinConst& l) - : base_minimizer (x), H (H_arg), c (), bnds (b), lc (l) - { make_h_symmetric (); } - - QP (const ColumnVector& x, const Matrix& H_arg, const ColumnVector& c_arg, - const Bounds& b, const LinConst& l) - : base_minimizer (x), H (H_arg), c (c_arg), bnds (b), lc (l) - { make_h_symmetric (); } - - QP (const QP& qp) - : base_minimizer (qp), H (qp.H), c (qp.c), bnds (qp.bnds), lc (qp.lc) { } - - QP& operator = (const QP& qp) - { - if (this != &qp) - { - base_minimizer::operator = (qp); - - H = qp.H; - c = qp.c; - bnds = qp.bnds; - lc = qp.lc; - } - return *this; - } - - virtual ~QP (void) { } - - Matrix hessian (void) const { return H; } - - ColumnVector linear_obj_coeff (void) const { return c; } - - Bounds bounds (void) const { return bnds; } - - LinConst linear_constraints (void) const { return lc; } - -protected: - - Matrix H; - ColumnVector c; - Bounds bnds; - LinConst lc; - -private: - - Matrix make_h_symmetric (void) { return 0.5 * (H + H.transpose ()); } -}; - -#endif - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/