These changes were made to include in odepkg some new solvers that implement geometric integrators for Hamiltonian systems and for second order problems in general. Odeset and odeget have been modified in order to handle new options' names. New solvers have this executing structure: solver--> integrate_function--> stepper. I rewrote ode23 and ode45 with this new structure. In new files function fuzzy_compare is used to compare strings sometimes. In integrate_functions it is used the kahan algorithm to avoid the cumulation of floating point approximation errors. In some cases solvers need to approximate Hessians and Jacobians and it is done by functions included in utilities directory by means of finite differences. * inst/ode12.m: New file. Added 'vodeoptions' input argument and some bugs fixed. Added copyright definitions. added the ODE options handling leaving as warning those one not yet really implemented. substituted call to odepkg_structure_check with a call to ode_struct_value_check and fixed a bug on options field OutputFcn. Fixed the documentation. Bugs fixed and uniformation of error and warning messages. Changes to textinfo. Added comments and tests. fixed bugs with input arguments checking. Improved the handling of some ODE options. Fixed the handling of ODE options. Updated documentation fixed a bug with odestruct handling, fixed some warning messages Fixed all tests fixed a bug with odestruct handling, fixed some warning messages. Fixed grammatical errors in documentation and textinfo. * inst/ode23.m: added 'vodeoptions' input argument and some bugs fixed. Added copyright definitions added the ODE options handling leaving as warning those one not yet really implemented substituted call to odepkg_structure_check with a call to ode_struct_value_check and fixed a bug on options field OutputFcn Fixed the documentation Bugs fixed and uniformation of error and warning messages Changes to textinfo Added comments and tests. fixed bugs with input arguments checking. Improved the handling of ODE options Fixed the handling of ODE options. Updated documentation fixed a bug with odestruct handling, fixed some warning messages Fixed all tests fixed a bug with odestruct handling, fixed some warning messages. Fixed grammatical errors in documentation and textinfo * inst/ode45.m: added 'vodeoptions' input argument and some bugs fixed Added copyright definitions Modified copyright text added the ODE options handling leaving as warning those one not yet really implemented substituted call to odepkg_structure_check with a call to ode_struct_value_check and fixed a bug on options field OutputFcn Fixed the documentation Bugs fixed and uniformation of error and warning messages Changes to textinfo Added comments and tests. fixed bugs with input arguments checking. Improved the handling of ODE options Updated documentation fixed a bug with odestruct handling, fixed some warning messages Fixed all tests fixed a bug with odestruct handling, fixed some warning messages Fixed grammatical errors in documentation and textinfo * inst/odebwe.m: New solver inspired from the original one but with the structure integrate_function-stepper and with the possibility to choose if use an inexact Newton method or not. Substituted call to odepkg_structure_check with a call to ode_struct_value_check and fixed a bug on options field OutputFcn. Fixed the documentation. Fixed many bugs. Modified in order to handle a constant or not constant Jacobian. Uniformation of error and warning messages. Changes to textinfo. Added comments and tests. Fixed bugs with input arguments checking. Improved the handling of ODE options. Updated documentation fixed a bug with odestruct handling, added the possibility to set new ode options for inexact_newton solver, fixed some warning messages Fixed all tests Fixed grammatical errors in documentation and textinfo. * inst/odefwe.m: New file. added 'vodeoptions' input argument and some bugs fixed. Added copyright definitions Added the ODE options handling leaving as warning those one not yet really implemented substituted call to odepkg_structure_check with a call to ode_struct_value_check and fixed a bug on options field OutputFcn Fixed the documentation Bugs fixed and uniformation of error and warning messages Changes to textinfo Added comments and tests. fixed bugs with input arguments checking. Improved the handling of ODE options Updated documentation fixed a bug with odestruct handling, fixed some warning messages Fixed some errors in documentation and fixed some bugs in steppers Fixed grammatical errors in documentation and textinfo * inst/odeget.m: New file that behaves in a more MATLAB-compatible way. Added copyright definitions Fixed some bugs Modified copyright text added inst/odepkg_structure_check.m call to input argument old calls to odepkg_structure_check substituted with calls to inst/ode_struct_value_check.m Added documentation added new fields 'PolynomialDegree', 'QuadratureOrder' in order to handle new functionalities Many bugs fixed. added new fields 'Explicit', 'UseJacobian' to options vector added new fields 'TimeStepNumber', 'TimeStepSize', 'InexactSolver' to options vector Added comments and tests. Updated documentation added new ode options 'Algorithm', 'Choice', 'Eta', 'Restart', 'Tau' Fixed some errors in documentation * inst/odepkg_structure_check.m: Added new ODE options 'PolynomialDegree', 'QuadratureOrder', 'TimeStepNumber', 'TimeStepSize', 'InexactSolver', 'Algorithm', 'Choice', 'Eta', 'Restart', 'Tau', 'Explicit', 'UseJacobian' *inst/odeRATTLE.m: New file. fprint displaying 'coordinates and momenta' changed into a warning Now It takes a function_handle which returns a cell array containing Hamilton's equations in first element and (optional) Hamiltonian Hessian in the second element Added copyright definitions added the managing and eventually approximation of the Hessian of the constraint function Fixed the approximation of the Hessian of the Hamiltonian now is possible to define more than one constraint ODE options are handled in a more standard way Bugs fixed and uniformation of error and warning messages Changes to textinfo Changes to documentation Added comments and tests fixed bugs with input arguments checking. Improved the handling of ODE options Updated documentation fixed a bug with odestruct handling, added the possibility to set new ODE options for inexact_newton solver, fixed some warning messages Fixed grammatical errors in documentation and textinfo * inst/odeSE.m: New file. Added copyright definitions fprint displaying 'coordinates and momenta' changed into a warning Fixed the documentation fixed the text message of a warning Now It takes a function_handle which returns a cell array containing Hamilton's equations in first element and (optional) Hamiltonian Hessian in the second element Added the possibility to approximate the Hessian of the Hamiltonian Now options are handled in a more standard way Bugs fixed and uniformation of error and warning messages Changes to textinfo Added comments and tests fixed bugs with input arguments checking. Improved the handling of ODE options Fixed the handling of ODE options. Updated documentation fixed a bug with odestruct handling, added the possibility to set new ode options for inexact_newton solver, fixed some warning messages * inst/odeset.m: New file that behaves in a more MATLAB-compatible way. Added copyright definitions removed a nested function, substituting it with calls to inst/ode_struct_value_check.m bug fixed and great improvement in compatibility with MATLAB odeset added new field 'InexactSolver' in order to handle new functionalities within inst/odebwe.m Fixed the documentation added new fields 'PolynomialDegree', 'QuadratureOrder' in order to handle new functionalities added new fields 'Explicit', 'UseJacobian' to options vector added new fields 'TimeStepNumber', 'TimeStepSize', 'InexactSolver' to options vector Added comments and tests Updated documentation added new ode options 'Algorithm', 'Choice', 'Eta', 'Restart', 'Tau' * inst/ode_struct_value_check.m: New file. This behaves as inst/odepkg_structure_check.m but doesn't give error messages, just warnings added new field 'InexactSolver' in order to handle new functionalities in inst/odebwe.m Fixed the documentation added fields 'PolynomialDegree', 'QuadratureOrder' to options vector added new fields 'Explicit', 'UseJacobian' to options vector added new fields 'TimeStepNumber', 'TimeStepSize', 'InexactSolver' to options vector Added comments and tests. Little changes in textinfo. Fixed some not correct definitions of optional input arguments in the textinfo section added new ode options 'Algorithm', 'Choice', 'Eta', 'Restart', 'Tau'. * inst/odeSPVI.m: New file. Added copyright definitions Bugs fixed fixed the text message of a warning Now It takes a function_handle which returns a cell array containing Hamilton's equations in first element and (optional) Hamiltonian Hessian in the second element Fixed the approximation of the Hessian of the Hamiltonian options are handled in a more standard way Bugs fixed and uniformation of error and warning messages Changes to textinfo Changes to documentation Added comments and tests fixed bugs with input arguments checking. Improved the handling of ODE options Updated documentation fixed a bug with odestruct handling, added the possibility to set new ode options for inexact_newton solver, fixed some warning messages * inst/odeSV.m: New file. Added copyright definitions fprint displaying 'coordinates and momenta' changed into a warning Fixed the documentation fixed the text message of a warning Now It takes a function_handle which returns a cell array containing Hamilton's equations in first element and (optional) Hamiltonian Hessian in the second element Added the possibility to approximate the Hessian of the Hamiltonian Now options are handled in a more standard way Bugs fixed and uniformation of error and warning messages Changes to textinfo Added comments and tests fixed bugs with input arguments checking. Improved the handling of ODE options Fixed the handling of ODE options. Updated documentation fixed a bug with odestruct handling, added the possibility to set new ode options for inexact_newton solver, fixed some warning messages * inst/odeVV.m: New file. fprint displaying 'coordinates and velocities' changed into a warning fixed the text message of a warning Ode options are handled in a more standard way Bugs fixed and uniformation of error and warning messages Changes to documentation and textinfo Added comments and tests fixed bugs with input arguments checking. Improved the handling of ODE options Updated documentation fixed a bug with odestruct handling, fixed some warning messages * inst/first_dt/starting_stepsize.m: New file. Added copyright definitions Fixed the documentation Added comments and tests * inst/inexact_solvers/inexact_newton.m: Modified a preexisting file. Fixed the documentation changes to many part of the code in order to have a behaviour similar to that one of fsolve function, in particular in input and output arguments added the possibility to take the jacobian of a function_handle that passes two output arguments (the first is the function and the second is the jacobian) developments to make its usage more similar to that one of fsolve now it's usage is very similar to fsolve, indeed in steppers it can be exchanged with fsolve without any other change to the code Changes to documentation Added comments and tests * inst/integrate_functions/integrate_adaptive.m: New file Some bugs fixed. Added copyright definitions added a new input argument which represents the options that may be necessary for the stepper or the integrate function. added the input argument 'options' to stepper call Main changes in order to make integrate_functions able to handle steppers that return also internal nodes values Changes to documentation and textinfo Added comments and tests now the handling of requested time values is really general. Now it is possible to request the values of the solution at two or more time values that are all very close each to the other and inside the same integration step now all the equality comparisons are correctly computed, thanks to the new kahan function Little changes in textinfo. Fixed some not correct definitions of optional input arguments in the textinfo section Perfectionated documentation and all tests work fine * inst/integrate_functions/integrate_const.m: New file Some bugs fixed. Added copyright definitions added a new input argument which represents the options that may be necessary for the stepper or the integrate function. added the input argument 'options' to stepper call Main changes in order to make integrate_functions able to handle steppers that return also internal nodes values Changes to documentation and textinfo Added comments and tests now the handling of requested time values is really general. Now it is possible to request the values of the solution at two or more time values that are all very close each to the other and inside the same integration step now all the equality comparisons are correctly computed, thanks to the new kahan function Little changes in textinfo. Fixed some not correct definitions of optional input arguments in the textinfo section Perfectionated documentation and all tests work fine * inst/integrate_functions/integrate_n_steps.m: New file. Added copyright definitions. added a new input argument which represents the options that may be necessary for the stepper or the integrate function. added the input argument 'options' to stepper call Main changes in order to make integration functions able to handle steppers that return also internal nodes values Changes to documentation and textinfo Added comments and tests Little changes in textinfo. Fixed some not correct definitions of optional input arguments in the textinfo section * inst/steppers/bwe_inexact_newton.m: New file. Bug fixed: there were parameters not passed to the inexact_solver fixed the call to inexact_newton (now i pass a struct containing the required parameters) main bugs fixed modified in order to handle a constant or not constant Jacobian Added comments and tests Updated documentation * inst/steppers/bwe_newton_raphson.m: New file. main bugs fixed Removed the approximation of the Jacobian Changed the handling of options Added comments and tests * inst/steppers/fwe_heun.m: New file. Added copyright Updated documentation Added comments and tests * inst/steppers/fwe_richardson.m: New file. Added copyright Updated documentation Added comments and tests * inst/steppers/rattle.m: New file. bugs fixed added the explicit expression of the Jacobian of the system to be solved now is possible to define more than one constraint Added comments and tests Updated documentation Added the possibility to be solved with inst/inexact_solvers/inexact_newton.m Perfectionated documentation and all tests work fine Fixed some errors in documentation and fixed other bugs * inst/steppers/runge_kutta_23.m: New file. Added copyright Updated documentation Added comments and tests * inst/steppers/runge_kutta_45.m: New file. Added copyright Updated documentation Added comments and tests * inst/steppers/spectral_var_int.m: New file. Added interpolation of nodal values for internal nodes momenta removed reinitialization of q0 and p0, modified the way in which is set the new starting point for fsolve (simple algebraic media) added the Jacobian of the nonlinear system to be solved optimized computation of Jacobian fixed bug in Jacobian computation: no more warning of matrix singular to machine precision fixed a problem with optimset improved the handling of options Updated documentation Added the possibility to be solved with inst/inexact_solvers/inexact_newton.m Fixed some errors in documentation and fixed some bugs * inst/steppers/stormer_verlet.m: New file. fixed a problem with optimset fixed some bugs, now the algorithm is really correct. Now the algorithm is implicit Added the possibility to solve the system in a faster way if the problem is explicit improved the handling of options Updated documentation Fixed some errors in documentation and fixed some bugs * inst/steppers/symplectic_euler.m: New file. fixed a problem with optimset fixed some bugs, now the algorithm is really correct. Now the algorithm is implicit Added the possibility to solve the system in a faster way if the problem is explicit improved the handling of options Updated documentation Fixed some errors in documentation and fixed some bugs * inst/steppers/velocity_verlet.m: New file. fixed a bug about dimensions, now the forcing term is expressed by a function which must return a vector containing the velocities in the first half and the expression of accelerations in the second half; this structure is the same adopted for geometric integrators with coordinates and momenta unknowns Completed documentation and updated that one in textinfo. Added comments and tests. * inst/string_compare/fuzzy_compare.m: New file. modified the tolerance expression and added some 'deblank' operators deleted some 'lower' calls because now the 'case sensitiveness' has been transferred to inst/string_compare/levenshtein.m function added license copyright, tests and removed some 'lower' calls because case sensitivity is transferred to inst/string_compare/levenshtein.m modified Copyright modified the way the tolerance is calculated, now is more realistic. If the word is longer, the tolerance is grater but if the minimum distance is very low or it too close to word length, the tolerance will be lower Changes to documentation and textinfo Added comments and tests Completed documentation and updated that one in textinfo * inst/string_compare/levenshtein.m: New file. added a new input parameter to choose if it should not be case sensitive, default is case sensitive added license copyright Changes to documentation and textinfo Added comments and tests. Little changes in textinfo. Fixed some not correct definitions of optional input arguments in the textinfo section Completed documentation and updated that one in textinfo * inst/utilities/approx_Constr_grad.m: New file. Completed documentation and updated that one in textinfo Added comments and tests. * inst/utilities/approx_Constr_Hess.m: New file. Completed documentation and updated that one in textinfo Added comments and tests. * inst/utilities/approx_Hamilt_Hess.m: New file. Completed documentation and updated that one in textinfo Added comments and tests. * inst/utilities/approx_Jacobian.m: New file. Completed documentation and updated that one in textinfo Added comments and tests. * inst/utilities/golub_welsch.m: New file. Changes to documentation and textinfo Added Comments and tests Perfectionated documentation and all tests work fine. * inst/utilities/kahan.m: New file. Completed documentation and updated that one in textinfo Added Comments and tests