MPQC
2.3.1
Main Page
Related Pages
Classes
Files
File List
src
lib
math
optimize
math/optimize/transform.h
1
//
2
// transform.h
3
//
4
// Copyright (C) 1996 Limit Point Systems, Inc.
5
//
6
// Author: Curtis Janssen <cljanss@limitpt.com>
7
// Maintainer: LPS
8
//
9
// This file is part of the SC Toolkit.
10
//
11
// The SC Toolkit is free software; you can redistribute it and/or modify
12
// it under the terms of the GNU Library General Public License as published by
13
// the Free Software Foundation; either version 2, or (at your option)
14
// any later version.
15
//
16
// The SC Toolkit is distributed in the hope that it will be useful,
17
// but WITHOUT ANY WARRANTY; without even the implied warranty of
18
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
// GNU Library General Public License for more details.
20
//
21
// You should have received a copy of the GNU Library General Public License
22
// along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23
// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24
//
25
// The U.S. Government is granted a limited license as per AL 91-7.
26
//
27
28
#ifndef _math_optimize_transform_h
29
#define _math_optimize_transform_h
30
31
#ifdef __GNUC__
32
#pragma interface
33
#endif
34
35
#include <math/scmat/matrix.h>
36
37
namespace
sc {
38
42
class
NonlinearTransform
:
public
RefCount
{
43
protected
:
44
// The linear part of the nonlinear transform. This must
45
// be initialized by derived classes in their
46
// transform_coordinates routine (or the transform
47
// members must be overridden so it is ignored).
48
RefSCMatrix
linear_transform_;
49
public
:
50
~
NonlinearTransform
();
51
53
virtual
void
transform_coordinates
(
const
RefSCVector
& x) = 0;
57
virtual
void
transform_gradient
(
const
RefSCVector
& g);
61
virtual
void
transform_hessian
(
const
RefSymmSCMatrix
& h);
65
virtual
void
transform_ihessian
(
const
RefSymmSCMatrix
&ih);
66
};
67
68
69
73
class
IdentityTransform
:
public
NonlinearTransform
{
74
public
:
75
~
IdentityTransform
();
76
79
void
transform_coordinates
(
const
RefSCVector
& x);
80
void
transform_gradient
(
const
RefSCVector
& g);
81
void
transform_hessian
(
const
RefSymmSCMatrix
& h);
82
void
transform_ihessian
(
const
RefSymmSCMatrix
&ih);
83
};
84
85
}
86
87
#endif
88
89
// Local Variables:
90
// mode: c++
91
// c-file-style: "CLJ"
92
// End:
Generated at Sun Oct 6 2013 05:58:45 for
MPQC
2.3.1 using the documentation package
Doxygen
1.8.3.1.