Revision 1599

5 5
 * Copyright (c) 2008-2012 Regents of the University of California

6 6
 */

7 7
/**

8
 * \file

9
 * Description not yet available.

10
 */

8
  \file boundfun.cpp

9
  \brief Code to implement placing constraints on parameters.

10
  See in Section 10.1 of the AUTODIF manual.

11
  The code in thse section of the AUTODIF manual appears to be

12
  out of date with respect to some of the code in this file.

13
*/

11 14
#include "fvar.hpp"

12
//#ifdef __TURBOC__

13
//#  pragma hdrstop

14
//#endif

15 15

16
/**

17
  \details Use penalties recomended in Bard, Y. (1974) Nonlinear parameter estimation.

18
  Academic Press, New York.

19
*/

16 20
#define USE_BARD_PEN

17 21

18 22
#include <stdlib.h>

19 23
#include <stdio.h>

20 24
#include <math.h>

21 25

22
double dmin(double,double);

23
double dmax(double, double);

26
// function prototypes duplicated in fvar.hpp

27
// double dmin(double, double);

28
// double dmax(double, double);

24 29

25 30
/**

26
 * Description not yet available.

27
 * \param

31
  Scale input variable between upper and lower bounds

32
  and compute a penalty for exceeding the bounds.

33
  \param x Variable to be scaled

34
  \param fmin Lower bound of x

35
  \param fmin Upper bound of x

36
  \param _fpen On return, contains penalty if x > fmax or x < fmin

37
  \return Scaled value of x between fmin and fmax in the range [-1,1]

28 38
 */

29 39
dvariable dfatan1(dvariable x, double fmin, double fmax, const prevariable&  _fpen)

30 40
{

......
49 59
}

50 60

51 61
/**

52
 * Description not yet available.

53
 * \param

62
   Inverse of \ref dvariable dfatan1(dvariable x, double fmin, double fmax, const prevariable&  _fpen)

63
  \param x Variable to be scaled

64
  \param fmin Lower bound of x

65
  \param fmin Upper bound of x

54 66
 */

55 67
double dftinv(double x, double fmin, double fmax)

56 68
{

......
69 81
}

70 82

71 83
/**

72
 * Description not yet available.

73
 * \param

74
 */

84
  Scale input variable between upper and lower bounds

85
  and compute a penalty for exceeding the bounds.

86
  \param x Variable to be scaled

87
  \param fmin Lower bound of x

88
  \param fmin Upper bound of x

89
  \param _fpen On return, contains penalty if x > fmax or x < fmin

90
  \param s Divide x by s before scaling and setting bounds

91
  \return Scaled value of x between fmin and fmax in the range [-1,1]

92
*/

75 93
dvariable boundp(const prevariable& x, double fmin, double fmax,const prevariable& _fpen,double s)

76 94
{

77 95
  return boundp(x/s,fmin,fmax,_fpen);

78 96
}

79 97

80 98
/**

81
 * Description not yet available.

82
 * \param

83
 */

99
  Scale input variable between upper and lower bounds

100
  and compute a penalty for exceeding the bounds.

101
  \param x Variable to be scaled

102
  \param fmin Lower bound of x

103
  \param fmin Upper bound of x

104
  \param _fpen On return, contains penalty if x > fmax or x < fmin

105
  \return Scaled value of x between fmin and fmax in the range [-1,1]

106
*/

84 107
dvariable boundp(const prevariable& x, double fmin, double fmax,const prevariable& _fpen)

85 108
{

86 109
  if (gradient_structure::Hybrid_bounded_flag==0)

... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff