メインページ   クラス階層   構成   ファイル一覧   構成メンバ   ファイルメンバ  

LSODE-opts.h

解説を見る。
00001 // DO NOT EDIT!
00002 // Generated automatically from LSODE-opts.in.
00003 
00004 #if !defined (octave_LSODE_options_h)
00005 #define octave_LSODE_options_h 1
00006 
00007 #include <cfloat>
00008 #include <cmath>
00009 
00010 #include <ODE.h>
00011 
00012 
00013 class
00014 LSODE_options
00015 {
00016 public:
00017 
00018   LSODE_options (void) { init (); }
00019 
00020   LSODE_options (const LSODE_options& opt) { copy (opt); }
00021 
00022   LSODE_options& operator = (const LSODE_options& opt)
00023     {
00024       if (this != &opt)
00025         copy (opt);
00026 
00027       return *this;
00028     }
00029 
00030   ~LSODE_options (void) { }
00031 
00032   void init (void)
00033     {
00034       x_absolute_tolerance.resize (1);
00035       x_absolute_tolerance(0) = ::sqrt (DBL_EPSILON);
00036       x_relative_tolerance = ::sqrt (DBL_EPSILON);
00037       x_integration_method = "stiff";
00038       x_initial_step_size = -1.0;
00039       x_maximum_order = -1;
00040       x_maximum_step_size = -1.0;
00041       x_minimum_step_size = 0.0;
00042       x_step_limit = 100000;
00043       reset = true;
00044     }
00045 
00046   void copy (const LSODE_options& opt)
00047     {
00048       x_absolute_tolerance = opt.x_absolute_tolerance;
00049       x_relative_tolerance = opt.x_relative_tolerance;
00050       x_integration_method = opt.x_integration_method;
00051       x_initial_step_size = opt.x_initial_step_size;
00052       x_maximum_order = opt.x_maximum_order;
00053       x_maximum_step_size = opt.x_maximum_step_size;
00054       x_minimum_step_size = opt.x_minimum_step_size;
00055       x_step_limit = opt.x_step_limit;
00056       reset = opt.reset;
00057     }
00058 
00059   void set_options (const LSODE_options& opt) { copy (opt); }
00060 
00061   void set_default_options (void) { init (); }
00062 
00063   void set_absolute_tolerance (double val)
00064     {
00065       x_absolute_tolerance.resize (1);
00066       x_absolute_tolerance(0) = (val > 0.0) ? val : ::sqrt (DBL_EPSILON);
00067       reset = true;
00068     }
00069 
00070   void set_absolute_tolerance (const Array<double>& val)
00071     { x_absolute_tolerance = val; reset = true; }
00072 
00073   void set_relative_tolerance (double val)
00074     { x_relative_tolerance = (val > 0.0) ? val : ::sqrt (DBL_EPSILON); reset = true; }
00075 
00076   void set_integration_method (const std::string& val)
00077     {
00078       if (val == "stiff" || val == "bdf")
00079         x_integration_method = "stiff";
00080       else if (val == "non-stiff" || val == "adams")
00081         x_integration_method = "non-stiff";
00082       else
00083         (*current_liboctave_error_handler)
00084           ("lsode_options: method must be \"stiff\", \"bdf\", \"non-stiff\", or \"adams\"");
00085       reset = true;
00086     }
00087 
00088   void set_initial_step_size (double val)
00089     { x_initial_step_size = (val >= 0.0) ? val : -1.0; reset = true; }
00090 
00091   void set_maximum_order (int val)
00092     { x_maximum_order = val; reset = true; }
00093 
00094   void set_maximum_step_size (double val)
00095     { x_maximum_step_size = (val >= 0.0) ? val : -1.0; reset = true; }
00096 
00097   void set_minimum_step_size (double val)
00098     { x_minimum_step_size = (val >= 0.0) ? val : 0.0; reset = true; }
00099 
00100   void set_step_limit (int val)
00101     { x_step_limit = val; reset = true; }
00102   Array<double> absolute_tolerance (void) const
00103     { return x_absolute_tolerance; }
00104 
00105   double relative_tolerance (void) const
00106     { return x_relative_tolerance; }
00107 
00108   std::string integration_method (void) const
00109     { return x_integration_method; }
00110 
00111   double initial_step_size (void) const
00112     { return x_initial_step_size; }
00113 
00114   int maximum_order (void) const
00115     { return x_maximum_order; }
00116 
00117   double maximum_step_size (void) const
00118     { return x_maximum_step_size; }
00119 
00120   double minimum_step_size (void) const
00121     { return x_minimum_step_size; }
00122 
00123   int step_limit (void) const
00124     { return x_step_limit; }
00125 
00126 private:
00127 
00128   Array<double> x_absolute_tolerance;
00129   double x_relative_tolerance;
00130   std::string x_integration_method;
00131   double x_initial_step_size;
00132   int x_maximum_order;
00133   double x_maximum_step_size;
00134   double x_minimum_step_size;
00135   int x_step_limit;
00136 
00137 protected:
00138 
00139   bool reset;
00140 };
00141 
00142 #endif

Wed Dec 29 11:51:43 2004に生成されました。 doxygen1.2.18
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送