00001 #include <admodel.h>
00002 #include <df1b2fun.h>
00003 #include <adrndeff.h>
00004
00005
00006
00015 dvariable nonrectangular_hyperbola(const double& x, const prevariable& theta, const prevariable& alpha, const prevariable& pmax)
00016 {
00017 RETURN_ARRAYS_INCREMENT();
00018 dvariable y;
00019 y=pow(2.0*theta, -1.0)*(alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*theta*alpha*x*pmax, 0));
00020
00021 RETURN_ARRAYS_DECREMENT();
00022 return (y);
00023 }
00032 dvar_vector nonrectangular_hyperbola(const dvector& x, const prevariable& theta, const prevariable& alpha, const prevariable& pmax)
00033 {
00034 RETURN_ARRAYS_INCREMENT();
00035 dvar_vector y;
00036 y=pow(2.0*theta, -1.0)*(alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*theta*alpha*x*pmax, 0));
00037
00038 RETURN_ARRAYS_DECREMENT();
00039 return (y);
00040 }
00049 dvar_vector nonrectangular_hyperbola(const dvector& x, const dvar_vector& theta, const prevariable& alpha, const prevariable& pmax)
00050 {
00051 RETURN_ARRAYS_INCREMENT();
00052 dvar_vector y;
00053 y=elem_prod(pow(2.0*theta, -1.0), (alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*elem_prod(theta, x)*alpha*pmax, 0)));
00054
00055 RETURN_ARRAYS_DECREMENT();
00056 return (y);
00057 }
00058
00067 dvar_vector nonrectangular_hyperbola(const dvector& x, const prevariable& theta, const dvar_vector& alpha, const prevariable& pmax)
00068 {
00069 RETURN_ARRAYS_INCREMENT();
00070 dvar_vector y;
00071 y=pow(2.0*theta, -1.0)*(elem_prod(alpha, x)+pmax-pow(pow(elem_prod(alpha, x)+pmax, 2.0) - 4.0*theta*elem_prod(alpha, x)*pmax, 0));
00072
00073 RETURN_ARRAYS_DECREMENT();
00074 return (y);
00075 }
00084 dvar_vector nonrectangular_hyperbola(const dvector& x, const dvar_vector& theta, const dvar_vector& alpha, const prevariable& pmax)
00085 {
00086 RETURN_ARRAYS_INCREMENT();
00087 dvar_vector y;
00088 y=elem_prod(pow(2.0*theta, -1.0), (elem_prod(alpha, x)+pmax-pow(pow(elem_prod(alpha, x)+pmax, 2.0) - 4.0*elem_prod(theta, elem_prod(alpha, x))*pmax, 0)));
00089
00090 RETURN_ARRAYS_DECREMENT();
00091 return (y);
00092 }
00093
00094
00103 dvar_vector nonrectangular_hyperbola(const dvector& x, const prevariable& theta, const prevariable& alpha, const dvar_vector& pmax)
00104 {
00105 RETURN_ARRAYS_INCREMENT();
00106 dvar_vector y;
00107 y=pow(2.0*theta, -1.0)*(alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*theta*alpha*elem_prod(x, pmax), 0));
00108
00109 RETURN_ARRAYS_DECREMENT();
00110 return (y);
00111 }
00120 dvar_vector nonrectangular_hyperbola(const dvector& x, const dvar_vector& theta, const prevariable& alpha, const dvar_vector& pmax)
00121 {
00122 RETURN_ARRAYS_INCREMENT();
00123 dvar_vector y;
00124 y=elem_prod(pow(2.0*theta, -1.0), (alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*elem_prod(elem_prod(theta, x), pmax)*alpha, 0)));
00125
00126 RETURN_ARRAYS_DECREMENT();
00127 return (y);
00128 }
00129
00138 dvar_vector nonrectangular_hyperbola(const dvector& x, const prevariable& theta, const dvar_vector& alpha, const dvar_vector& pmax)
00139 {
00140 RETURN_ARRAYS_INCREMENT();
00141 dvar_vector y;
00142 y=pow(2.0*theta, -1.0)*(elem_prod(alpha, x)+pmax-pow(pow(elem_prod(alpha, x)+pmax, 2.0) - 4.0*theta*elem_prod(elem_prod(alpha, x), pmax), 0));
00143
00144 RETURN_ARRAYS_DECREMENT();
00145 return (y);
00146 }
00155 dvar_vector nonrectangular_hyperbola(const dvector& x, const dvar_vector& theta, const dvar_vector& alpha, const dvar_vector& pmax)
00156 {
00157 RETURN_ARRAYS_INCREMENT();
00158 dvar_vector y;
00159 y=elem_prod(pow(2.0*theta, -1.0), (elem_prod(alpha, x)+pmax-pow(pow(elem_prod(alpha, x)+pmax, 2.0) - 4.0*elem_prod(elem_prod(theta, elem_prod(alpha, x)), pmax), 0)));
00160
00161 RETURN_ARRAYS_DECREMENT();
00162 return (y);
00163 }
00164
00165
00166
00175 df1b2variable nonrectangular_hyperbola(const double& x, const df1b2variable& theta, const df1b2variable& alpha, const df1b2variable& pmax)
00176 {
00177 df1b2variable y;
00178 y=pow(2.0*theta, -1.0)*(alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*theta*alpha*x*pmax, 0));
00179
00180 return (y);
00181 }
00190 df1b2vector nonrectangular_hyperbola(const dvector& x, const df1b2variable& theta, const df1b2variable& alpha, const df1b2variable& pmax)
00191 {
00192 df1b2vector y;
00193 y=pow(2.0*theta, -1.0)*(alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*theta*alpha*x*pmax, 0));
00194
00195 return(y);
00196 }
00205 df1b2vector nonrectangular_hyperbola(const dvector& x, const df1b2vector& theta, const df1b2variable& alpha, const df1b2variable& pmax)
00206 {
00207 df1b2vector y;
00208 y=elem_prod(pow(2.0*theta, -1.0), (alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*elem_prod(theta, x)*alpha*pmax, 0)));
00209
00210 return(y);
00211 }
00212
00213
00214
00223 df1b2vector nonrectangular_hyperbola(const dvector& x, const df1b2variable& theta, const df1b2vector& alpha, const df1b2variable& pmax)
00224 {
00225 df1b2vector y;
00226 y=pow(2.0*theta, -1.0)*(elem_prod(alpha, x)+pmax-pow(pow(elem_prod(alpha, x)+pmax, 2.0) - 4.0*theta*elem_prod(alpha, x)*pmax, 0));
00227
00228 return(y);
00229 }
00238 df1b2vector nonrectangular_hyperbola(const dvector& x, const df1b2vector& theta, const df1b2vector& alpha, const df1b2variable& pmax)
00239 {
00240 df1b2vector y;
00241 y=elem_prod(pow(2.0*theta, -1.0), (elem_prod(alpha, x)+pmax-pow(pow(elem_prod(alpha, x)+pmax, 2.0) - 4.0*elem_prod(theta, elem_prod(alpha, x))*pmax, 0)));
00242
00243 return(y);
00244 }
00245
00246
00247
00248
00249
00258 df1b2vector nonrectangular_hyperbola(const dvector& x, const df1b2variable& theta, const df1b2variable& alpha, const df1b2vector& pmax)
00259 {
00260 df1b2vector y;
00261 y=pow(2.0*theta, -1.0)*(alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*theta*alpha*elem_prod(x, pmax), 0));
00262
00263 return(y);
00264 }
00273 df1b2vector nonrectangular_hyperbola(const dvector& x, const df1b2vector& theta, const df1b2variable& alpha, const df1b2vector& pmax)
00274 {
00275 df1b2vector y;
00276 y=elem_prod(pow(2.0*theta, -1.0), (alpha*x+pmax-pow(pow(alpha*x+pmax, 2.0) - 4.0*elem_prod(elem_prod(theta, x), pmax)*alpha, 0)));
00277
00278 return(y);
00279 }
00280
00281
00282
00291 df1b2vector nonrectangular_hyperbola(const dvector& x, const df1b2variable& theta, const df1b2vector& alpha, const df1b2vector& pmax)
00292 {
00293 df1b2vector y;
00294 y=pow(2.0*theta, -1.0)*(elem_prod(alpha, x)+pmax-pow(pow(elem_prod(alpha, x)+pmax, 2.0) - 4.0*theta*elem_prod(elem_prod(alpha, x), pmax), 0));
00295
00296 return(y);
00297 }
00306 df1b2vector nonrectangular_hyperbola(const dvector& x, const df1b2vector& theta, const df1b2vector& alpha, const df1b2vector& pmax)
00307 {
00308 df1b2vector y;
00309 y=elem_prod(pow(2.0*theta, -1.0), (elem_prod(alpha, x)+pmax-pow(pow(elem_prod(alpha, x)+pmax, 2.0) - 4.0*elem_prod(elem_prod(theta, elem_prod(alpha, x)), pmax), 0)));
00310
00311 return(y);
00312 }