00001 /* 00002 * $Id$ 00003 * 00004 * Author: David Fournier 00005 * Copyright (c) 2008-2012 Regents of the University of California 00006 */ 00011 #include "fvar.hpp" 00012 00013 #ifdef __TURBOC__ 00014 #pragma hdrstop 00015 #include <iostream.h> 00016 #endif 00017 00018 #ifdef __ZTC__ 00019 #include <iostream.hpp> 00020 #define endl "\n" 00021 #endif 00022 #include <math.h> 00023 00024 #ifndef OPT_LIB 00025 #include <cassert> 00026 #include <climits> 00027 #endif 00028 00033 void fmm_control::set_defaults() 00034 { 00035 noprintx=0; 00036 fringe = 0.0; 00037 maxfn = 500; 00038 iprint = 1; 00039 crit = 0.0001; 00040 imax = 30; 00041 dfn = 0; 00042 ifn = 0; 00043 iexit = 0; 00044 ialph = 0; 00045 ihflag = 0; 00046 ihang = 0; 00047 scroll_flag = 1; 00048 maxfn_flag=0; 00049 quit_flag=0; 00050 min_improve=.0000001; 00051 ireturn = 0; 00052 dcheck_flag = -1; 00053 use_control_c=1; 00054 } 00055 00060 fmm_control::fmm_control(const fmm_control & t) 00061 { 00062 fringe = t.fringe; 00063 maxfn = t.maxfn; 00064 iprint = t.iprint; 00065 crit = t.crit; 00066 imax = t.imax; 00067 dfn = t.dfn; 00068 ifn = t.ifn; 00069 iexit = t.iexit; 00070 min_improve =t.min_improve; 00071 ialph = t.ialph; 00072 ihflag = t.ihflag; 00073 ihang = t.ihang; 00074 scroll_flag = t.scroll_flag; 00075 dcheck_flag = t.dcheck_flag; 00076 00077 ireturn = t.ireturn; 00078 } 00079 00084 fmm_control::fmm_control() 00085 { 00086 set_defaults(); 00087 } 00088 00093 fmm_control::fmm_control(const lvector& ipar) 00094 { 00095 set_defaults(); 00096 maxfn = ipar[1]; 00097 iprint = ipar[2]; 00098 #ifdef __HP__ 00099 crit = .0001; 00100 #else 00101 crit = pow(double(10), int(-ipar[3])); 00102 #endif 00103 imax = ipar[4]; 00104 long ipar5 = ipar[5]; 00105 #ifndef OPT_LIB 00106 assert(ipar5 <= INT_MAX); 00107 #endif 00108 scroll_flag = (int)ipar5; 00109 } 00110 00117 ostream& operator<<(const ostream& s, const fmm_control& fmc) 00118 { 00119 fmc.writeon(s); 00120 return (ostream&)s; 00121 } 00122 00127 void fmm_control::writeon(const ostream& _s) const 00128 { 00129 ostream& s = (ostream&) _s; 00130 s << "values of fmm_control structure:\n"; 00131 s << " maxfn = " << maxfn << endl; 00132 s << " iprint = " << iprint << endl; 00133 s << " crit = " << crit << endl; 00134 s << " imax = " << imax << endl; 00135 s << " dfn = " << dfn << endl; 00136 s << " ifn = " << ifn << endl; 00137 s << " iexit = " << iexit << endl; 00138 s << " ialph = " << ialph << endl; 00139 s << " ihflag = " << ihflag << endl; 00140 s << " ihang = " << ihang << endl; 00141 s << " scroll_flag = " << scroll_flag << endl; 00142 s << " ireturn = " << ireturn << endl; 00143 }
Generated on Tue Mar 8 2016 19:51:33 for ADMB Documentation by 1.8.0 |