5#include "tpcclibConfig.h"
45 unsigned int pi, nAccept=0;
48 if(penalty!=NULL) *penalty=1.0;
49 if(n<1 || p==NULL || pLower==NULL || pUpper==NULL)
51 for(pi=0; pi<n; pi++) {
52 range=pUpper[pi]-pLower[pi];
if(range<1.0E-30) range=1.0;
53 if(p[pi]<pLower[pi]) {
54 if(pAccept!=NULL) pAccept[pi]=pLower[pi];
55 if(penalty!=NULL) *penalty += (pLower[pi]-p[pi])/range;
56 }
else if(p[pi]>pUpper[pi]) {
57 if(pAccept!=NULL) pAccept[pi]=pUpper[pi];
58 if(penalty!=NULL) *penalty += (p[pi]-pUpper[pi])/range;
60 if(pAccept!=NULL) pAccept[pi]=p[pi];
86 unsigned int pi, nAccept=0;
88 if(n<1 || p==NULL || pLower==NULL || pUpper==NULL)
return(nAccept);
89 for(pi=0; pi<n; pi++) {
90 if(!(p[pi]>=pLower[pi])) {
92 }
else if(!(p[pi]<=pUpper[pi])) {
unsigned int nloptForceLimits(unsigned int n, double *pLower, double *pUpper, double *p)
Enforce the model parameters within given limits.
unsigned int nloptCheckParameters(unsigned int n, double *pLower, double *pUpper, double *p, double *pAccept, double *penalty)
Check that model parameters are within given limits.
Header file for library libtpcextensions.
Header file for library libtpcnlopt.
Header file for libtpcrand.