Commit Graph

4294 Commits (fd4c71a2a4f20854c91309444e8c80e040282aed)

Author SHA1 Message Date
Stéphane Adjemian (Scylla) 21e9b22d7c Merge branch 'get-prior-info-fixes' 2014-02-03 14:25:53 +01:00
Johannes Pfeifer 6962bc8171 Convert use of unique to be compatible with older Matlab version 2014-02-03 13:19:11 +01:00
Johannes Pfeifer 85815ca651 Adds new option to select which variables to consider for estimation
First step for ticket #336
2014-02-03 13:10:31 +01:00
Stéphane Adjemian (Scylla) 2ee11fa860 Changed the handling of optimization options in dynare_estimation_1.m. Removed calls to strsplit. Closes #605. 2014-02-03 12:25:29 +01:00
Stéphane Adjemian (Scylla) 4b4de4102a Added new routine that converts a string of Key-Value pairs in a cell. 2014-02-03 12:25:29 +01:00
Johannes Pfeifer c6cd5b40d9 Consider only unique members of varlist in estimation 2014-02-03 10:03:17 +01:00
Johannes Pfeifer e0ed06e608 Consider only unique variables in stoch_simul 2014-02-03 09:54:27 +01:00
Michel Juillard c1e0d68351 removed useless test with exist() that is very expensive in
Octave (but apparently not in Matlab)
2014-02-01 16:26:18 +01:00
Stéphane Adjemian (Scylla) 63c289adba If us and ts are dseries objects, chain(ts,us) and ts.chain(us) return the same dseries object. 2014-02-01 11:38:10 +01:00
Stéphane Adjemian (Scylla) 90b47d2704 Added chain method in dseries class. 2014-02-01 11:38:10 +01:00
Sébastien Villemot 9d36a326f1 Merge pull request #603 from rattoma/master
HP-filtered moments: Fix bug when unit root models provide NaN's or Inf's in g_omega
2014-01-31 09:09:29 -08:00
Stéphane Adjemian (Scylla) 7864e0ec82 Rewrote the error message issued when the prefilter option in used while the steady state of the observed variables is non zero (introduced in commit d82252e805). 2014-01-30 17:57:36 +01:00
Stéphane Adjemian (Scylla) f1e4ca2f48 Test if the data are positive before applying the log. 2014-01-30 17:44:47 +01:00
Stéphane Adjemian (Scylla) 8829baa3aa Merge branch 'johannes-documentation' 2014-01-30 15:33:28 +01:00
Stéphane Adjemian (Scylla) 00cfec8fb6 Issue an error message if loglinear option is equal to 1 in non linear likelihood routine. 2014-01-30 14:39:06 +01:00
Stéphane Adjemian (Scylla) 2e1ad9c51b Merge branch 'loglinear' 2014-01-30 13:06:43 +01:00
Stéphane Adjemian (Scylla) 62aa9b8fa5 Check if the steady state is strictly positive when simulating/estimating a model with loglinear option. 2014-01-30 13:03:03 +01:00
Stéphane Adjemian (Scylla) 8359b90cdf Cosmetic changes. 2014-01-30 13:00:25 +01:00
Stéphane Adjemian (Scylla) 8309ed5c96 Added a routine to test if we are currently estimating a model. 2014-01-30 12:48:48 +01:00
Marco Ratto b33da9a40d Fix bug when unit root models provide NaN's or Inf's in g_omega 2014-01-30 10:38:46 +01:00
Johannes Pfeifer d82252e805 Filter out inconsistent specification of prefiltering when observation equation is not mean zero 2014-01-30 10:07:41 +01:00
Johannes Pfeifer 8ef4e45eaf More explicit commenting of stoch_simul.m related to loglinear option 2014-01-30 09:09:25 +01:00
Johannes Pfeifer 4bd7f4952a Make sure that estimation works after loglinear option in stoch_simul with initval-block
stoch_simul logs the steady state. Here, it is transformed back
2014-01-30 08:53:58 +01:00
Johannes Pfeifer 15f0353d02 Make sure repeated runs of stoch_simul.m with loglinear option do not crash due to logged steady state 2014-01-29 19:52:20 +01:00
Johannes Pfeifer 3da8e92aa5 Fix option loglinear for stoch_simul.m by also logging steady state.
Must be done to assure correct simulations and output of moments. Cannot be done in the solver itself as estimation performs logging of steady state also outside of solver
2014-01-29 19:39:00 +01:00
Johannes Pfeifer dfd9e3819b Filter out use of loglinear with simulated moments
Does not work because steady state is not logged
2014-01-29 19:20:52 +01:00
Stéphane Adjemian (Scylla) fa6e97a929 Fixed copyright year. 2014-01-29 17:22:44 +01:00
Stéphane Adjemian (Scylla) b93eab8bf2 Added overloaded cumprod function (dseries class). 2014-01-29 17:22:10 +01:00
Stéphane Adjemian (Scylla) 4254da0a00 Fixed bug. Closes #590. 2014-01-29 13:51:34 +01:00
Stéphane Adjemian (Scylla) 5f46f983c1 Fixed bug. Closes #591. 2014-01-29 12:57:55 +01:00
Stéphane Adjemian (Scylla) b9c4f7d8d1 Deactivate the rescaling of the perturbation in numgrad3_ and numgrad5_ routines. 2014-01-29 12:36:34 +01:00
Johannes Pfeifer 9d4adbcf72 Merge branch 'master' of https://github.com/DynareTeam/dynare 2014-01-28 18:46:27 +01:00
Johannes Pfeifer 16b7a9ed98 Change get_prior_info.m to reflect user-specified bounds. Also corrects LaTeX-code 2014-01-28 18:45:40 +01:00
Johannes Pfeifer c2345fd23b Change minus_logged_prior_density.m to reflect new treatment of estimated and calibrated covariances 2014-01-28 18:42:47 +01:00
Johannes Pfeifer d5446e734a Add comments to make clear distinction between generalized distribution and user-imposed bound 2014-01-28 18:41:07 +01:00
Johannes Pfeifer 0ec62c6360 Fix Latex Bug in display_estimation_results_table.m
Missing line break resulted in compilation errors
2014-01-28 18:39:51 +01:00
Sébastien Villemot 66c1aa78f0 Move add_auxiliary_variables_to_steadystate to partial_information directory.
This function is obsolete, but the PI solver still uses it, so make that
relationship explicit.
2014-01-28 17:48:08 +01:00
Johannes Pfeifer 9e99eed6da Fix sample on which Geweke convergence diagnostics is computed
Was only correct for mh_drop of 0.5
2014-01-27 10:34:13 +01:00
Houtan Bastani 9b17c5db4b fix typo 2014-01-24 11:11:57 -06:00
Houtan Bastani fa9c0f0a79 reporting: add indentation to table rows. closes #581 2014-01-24 09:53:53 -06:00
Stéphane Adjemian (Scylla) a15808b2ce Removed useless output arguments from numerical gradient routines. 2014-01-24 15:47:46 +01:00
Houtan Bastani fd5dc8c14a reporting: print less to screen by default 2014-01-23 17:47:04 -06:00
Houtan Bastani 3ea028f783 fix typo 2014-01-23 17:03:25 -06:00
ferhat 4dc21b48e9 Corrects a typo, checks that the number of dates and the number of values are equal, Warns instead of reporting an error if the basic_plan is applied on a shock that is used in a flip_plan (flip_plan has the higher priority) 2014-01-21 14:42:44 -06:00
ferhat d325ad15b2 Adds setdiff method to dates 2014-01-21 14:37:43 -06:00
Houtan Bastani 3f5d18f5c5 dseries: allow assign to select by date string as opposed to dates 2014-01-17 14:59:20 -05:00
Stéphane Adjemian (Charybdis) 8b093aecbb Allow assignation of variables in an empty dseries object. 2014-01-16 10:06:30 +01:00
Stéphane Adjemian (Charybdis) 117f338eff Implement broadcasting for operations (+,-,* and /) between dseries and scalar or vectors. Efficiency and cosmetic changes. 2014-01-16 10:06:30 +01:00
Stéphane Adjemian (Charybdis) 3534c68be6 Fixed bug. Allow selection of an observation with a date defined in a formatted string. 2014-01-16 10:06:30 +01:00
Stéphane Adjemian (Charybdis) add3b1401f Fixed bug (a string passed to a dseries object can be a date). 2014-01-16 10:06:30 +01:00
ferhat ae72105b5c Speeds up the Kalman smoother 2014-01-14 17:32:45 +01:00
ferhat 4e789452b2 Allows to use alternative algorithms to solve lyapunov equation 2014-01-14 17:32:01 +01:00
Houtan Bastani 168895f428 dseries: fix display when TABLE is empty 2014-01-14 09:03:24 -05:00
Houtan Bastani d1fe0e78cb reporting: support data of all frequencies in table 2014-01-03 17:20:17 +01:00
Houtan Bastani 7e6eb2fbab reporting: support monthly data in table 2014-01-03 16:04:39 +01:00
Houtan Bastani 21a22cb670 reporting: simplify code 2014-01-03 16:01:26 +01:00
Sébastien Villemot c391876196 Workaround for a strange bug with Octave.
If there is any call to exist(fname) before the call to the preprocessor, then
Octave will use the old copy of the .m instead of the newly generated one.
Deleting the .m beforehand fixes the problem.
2014-01-03 14:29:09 +01:00
Sébastien Villemot 5bbfe9cd5a Remove more remnants from old deterministic conditional forecast syntax. 2014-01-03 12:09:39 +01:00
Sébastien Villemot 66d48f5917 Compatibility fixes for Octave 3.8.
- no longer use OCTAVE_QUIT in MEX files; this seems now only possible in
  oct-files. (Ref #304)
- do not build linsolve.oct on Octave >= 3.8, it is available natively.
- do not add strjoin.m to the patch on Octave >= 3.8, it is available natively.
- default_save_options has been renamed save_default_options.
2014-01-03 11:05:39 +01:00
Sébastien Villemot 5becaeae00 Merge pull request #572 from FerhatMihoubi/master
Changes in conditional forecast using the extended path
2014-01-02 07:31:00 -08:00
ferhat dfbff7fc32 New syntax used to call the conditional forecast using the extended path method. It allows to match the endogenous and the shock that are flipped. 2014-01-02 16:13:03 +01:00
Houtan Bastani 52492afe6e reporting: add tableDataRhs option to series 2014-01-02 15:28:23 +01:00
Houtan Bastani 26d834a42a reporting: make vlineAfter accept a cell array of dates 2014-01-02 09:35:45 +01:00
Houtan Bastani 809c3aca11 reporting: remove annualAverages option 2013-12-31 12:54:49 +01:00
Stéphane Adjemian (Charybdis) afb36821a8 Merge branch 'master' into sim1-with-variable-dimension 2013-12-30 16:37:16 +01:00
Stéphane Adjemian (Charybdis) 893a0ef8ad Cosmetic/Efficiency changes. 2013-12-30 15:41:06 +01:00
Johannes Pfeifer 187ddbabf1 Harmonize terminology in gmhmaxlik.m 2013-12-30 13:55:30 +01:00
Johannes Pfeifer 24dcfcb901 Initialize epsilon in shock_decomposition.m 2013-12-30 13:54:48 +01:00
Johannes Pfeifer a5a189475e Improve documentation of shock_decomposition 2013-12-30 13:54:16 +01:00
Stéphane Adjemian (Charybdis) c3a9f0b972 Added new routine to compute the max. abs. error associated to a path (perfect foresight models). Use this routine to compute (and report) the true max. abs. error when sim1 (stack_algo==0) is used with option endogenous_terminal_period. 2013-12-28 17:41:36 +01:00
Stéphane Adjemian (Charybdis) 1ea7631930 Added new option for perfect foresight simulations (sim1 routine, available only with stack_solve_algo==0).
Try to reduce the size of the nonlinear system of equations by skipping the (last) periods for wich the residuals are
already (almost) zero. The number of periods is not constant during the Newton, the effective number of periods for
each iteration of the Newton is available in oo_.deterministic_simulation.vperiods.
2013-12-27 18:35:53 +01:00
Stéphane Adjemian (Scylla) 63986a0ebf Closes #567. 2013-12-18 16:44:31 +01:00
Stéphane Adjemian (Scylla) 6efdfb5414 Use options_.prior_draws in posteriorIRF. 2013-12-18 16:44:31 +01:00
Stéphane Adjemian (Scylla) 4a4c06b781 Fixed bug (options_.subdraws does not exist). 2013-12-18 16:44:31 +01:00
Houtan Bastani 79f35961ed clean up file
* remove comment as rmdir with 's' option is Octave (not Windows) specific
* remove val as it's not used
* take confirm_recursive_rmdir out of for loop to avoid unnecessary resetting of the value
2013-12-18 14:13:31 +01:00
Houtan Bastani bbdad94d96 parallel: add local switch to confirm_recursive_rmdir 2013-12-18 14:07:25 +01:00
Houtan Bastani 7bc5d5c2ec ms-sbvar: add confirm_recursive_rmdir 2013-12-18 12:48:20 +01:00
Stéphane Adjemian (Charybdis) 6efe62a3b2 Transposed the definition of the innovations in (stochastic) extended path routine, so that, for a given state of the random number generator, stochastic simulations obtained with extended_path and stoch_simul commands consider the same innovations (when the number of shocks is greater than one). Otherwise the stochastic simulations cannot be compared. 2013-12-17 22:49:37 +01:00
Sébastien Villemot e43e54cfde Remove spurious executable permission 2013-12-16 16:23:50 +01:00
Stéphane Adjemian (Scylla) 32e162ec48 Reduced the dimension of the problem in the unitary test for cycle_reduction and logarithmic_reduction routines. 2013-12-16 09:44:15 +01:00
Sébastien Villemot 732c463d27 Merge pull request #565 from JohannesPfeifer/master
Initialize stock1_filter_step_ahead to prevent crash in Octave
2013-12-13 09:41:20 -08:00
Stéphane Adjemian (Scylla) 264460e9d0 Added @dates/ne method. Overloads the ~= operator. 2013-12-13 18:30:37 +01:00
Stéphane Adjemian (Scylla) dd10c788ff Added @dseries/abs method. Returns the absolute value of a dseries object. 2013-12-13 18:30:37 +01:00
Johannes Pfeifer cac48d2e80 Initialize stock1_filter_step_ahead to prevent crash in Octave 2013-12-13 18:29:48 +01:00
Houtan Bastani c0149f69d9 reporting: bug fix: Windows can't handle windows-style file separators in latex 2013-12-13 17:23:56 +01:00
Houtan Bastani 359245b65b reporting: bug fix: avoid underscores altogether 2013-12-13 17:23:26 +01:00
Sébastien Villemot b9df616c18 Fix treatment of error conditions in bytecode. 2013-12-13 16:49:08 +01:00
Sébastien Villemot 6e8b35c7f3 Fix bug in method disp of dseries. 2013-12-13 16:49:08 +01:00
Stéphane Adjemian (Scylla) 8e6df85604 Fixed bug. 2013-12-13 15:53:06 +01:00
Stéphane Adjemian (Scylla) fd5742a399 Add a second output argument to CheckPath nonzero iff the routine creates a new directory. 2013-12-13 15:53:06 +01:00
Houtan Bastani 08199dc881 reporting: fix if statement for changes in dynDates/dates class 2013-12-13 15:36:04 +01:00
Houtan Bastani 6f8d7fd0ec reporting: add xTicks argument 2013-12-13 15:36:04 +01:00
Stéphane Adjemian (Scylla) 832f8ee82f Bug fixes (related to the loading of the mcmc files) + Cosmetic changes. 2013-12-13 12:49:19 +01:00
Michel Juillard 58c40fdca9 ramsey_policy: correcting the computation of the value of the
objective function; adding details about the period objective function
in the manual.
2013-12-13 10:44:29 +01:00
Michel Juillard 77fdd3bfda ms-sbvar: corrected bug with final_subperiod default value and
clarified in the manual.
2013-12-13 09:56:11 +01:00
Houtan Bastani 3990707e36 reporting: fix typo 2013-12-12 16:05:57 +01:00
Houtan Bastani 99f4a01a48 reporting: fix figure inclusion for windows 2013-12-12 16:05:57 +01:00
Houtan Bastani 85905cbb1d reporting: for windows filenames escape underscore 2013-12-12 16:05:57 +01:00
Houtan Bastani 7cc259ea46 fix permissions 2013-12-12 16:05:57 +01:00
Michel Juillard 1ddd00b502 ms-sbvar: corrected bug in initialization/computation of final
subperiod
2013-12-12 10:02:31 +01:00
Michel Juillard ed15f0bcac ms-sbvar: corrected bug in initialization/computation of final subperiod 2013-12-12 09:10:09 +01:00
Michel Juillard 86a083697e osr: added optimal value of parameters to oo_.osr.optim_params; moved
osr_example to ./tests/optimal_policy
2013-12-11 19:24:29 +01:00
Stéphane Adjemian (Scylla) 6cb18b34fb Added the possibilty to set the initial condition of the (stochastic) extended path simulations with the histval block. 2013-12-11 16:43:15 +01:00
Johannes Pfeifer cd3b5bf3d9 Fix bug in Bayesian estimation where the filter_step_ahead command produced no output
- Improves documentation of resulting matrices
- Adds unit test for filter_step_ahead option
2013-12-11 16:43:15 +01:00
Sébastien Villemot 1dc3f2119a Merge pull request #561 from rattoma/master
Fixed bugs and continue GSA plots harmonization
2013-12-11 01:51:50 -08:00
Stéphane Adjemian (Scylla) f16689e76f Do not systematically throw an errror message if the parameters in the provided mode_file does not exactly match the set of estimated parameters.
If some parameters are missing in the provided mode_file and if mode_compute>0, use the prior mean as an initial condition.
2013-12-11 10:01:22 +01:00
Stéphane Adjemian (Scylla) 4afcf8fdaf Fixed typo. 2013-12-11 10:01:22 +01:00
Stéphane Adjemian (Scylla) cf1bd26f84 Removed old version of homotopic_steps (extended path). 2013-12-11 10:01:22 +01:00
Stéphane Adjemian (Scylla) 1a8e50dd7a Same as commit #52a5262b7bbeb0a47961be42d8fba4845ead31cc for the simul command. 2013-12-11 10:01:22 +01:00
Stéphane Adjemian (Scylla) 3790ab1dc7 Cosmetic changes. Removed useless spaces and semicolons. 2013-12-11 10:01:22 +01:00
Stéphane Adjemian (Scylla) cf567dd5c0 Bug fix. Force axis tight in @dseries/plot method (otherwise the method crashes if Matlab/octave considers a too large x-abscissa). 2013-12-11 10:01:22 +01:00
Stéphane Adjemian (Scylla) a51db32145 Copy the generated time series in a dseries object (called Simulated_time_series) in the Base workspace (extended_path). 2013-12-11 10:01:22 +01:00
Marco Ratto a90807f85b Cosmetic change 2013-12-10 17:35:55 +01:00
Marco Ratto eb70ddfe66 threshold_redform must override detailed mapping also with log-transformation 2013-12-10 17:31:26 +01:00
Marco Ratto db9b61df78 Bug fixes, reduced the number of graphs and improved info on graphical output for screening identification and MC theoretical moments in GSA. 2013-12-10 17:10:04 +01:00
Marco Ratto f8ec220711 1) Fixed bug introduced in commit 3cb16af5e3
2) Harmonize bivariate plots in the proper way
3) Harmonize bivariate plots for rmse analysis
2013-12-10 15:48:34 +01:00
Marco Ratto 5516c64205 Fixed bug introduced in commit 57eb9e12e5 2013-12-10 14:10:43 +01:00
Marco Ratto 57eb9e12e5 1) Allow for endogenous prior restrictions
2) trap cases where only very few parameter combinations provide unique saddle path solution
2013-12-10 12:42:45 +01:00
Marco Ratto b3c4f9427f Fixed bad representation of identification patterns for moment information matrix (and also fixed figure title) 2013-12-10 11:22:15 +01:00
Marco Ratto 67d7ba75f0 1) Define a new type of parameter Random_prior_params, when prior/posterior mean mode do not work and the code searches randomly in the prior space a parameter combination that provides unique saddle path solution;
2) save point estimates in separate file, in order not lose work when subsequent analyses are done for prior/posterior mean/mode etc.
2013-12-10 11:05:54 +01:00
Marco Ratto 2d6e513738 Bug fix with irf restriction on period larger than 1 2013-12-10 10:54:47 +01:00
Sébastien Villemot b840af9fa5 Modify get_directory_description to return a flat cell 2013-12-09 18:54:12 +01:00
Houtan Bastani 2d966208c4 write_latex_definitions: remove lines that prevented this code from being included in a larger latex doc 2013-12-09 17:36:08 +01:00
Houtan Bastani 10652be09a write_latex_definitions: use texttt for variable names, #478 2013-12-09 17:24:50 +01:00
Houtan Bastani 3539dc7153 write_latex_definitions: use longtable, #478 2013-12-09 17:04:32 +01:00
Sébastien Villemot 07bea735de Merge pull request #557 from rattoma/master
Fixes to mode_compute=5. (1) force univariate steps at every iteration: ...
2013-12-09 05:29:47 -08:00
Stéphane Adjemian (Scylla) 1b57cb4a07 Copy the generated time series in Base workspace (extended_path). 2013-12-09 11:08:08 +01:00
Houtan Bastani ef777de3d5 fix typo fix 2013-12-08 11:40:10 +01:00
Houtan Bastani e765c16b73 fix typo 2013-12-08 10:47:39 +01:00
Marco Ratto e5854cb201 Fixes to mode_compute=5. (1) force univariate steps at every iteration: improve robustness at the expenses of a bit less efficiency; (2) fix gradient computation for special cases when the value of the parameters get stacked at the prior boundary. 2013-12-07 10:52:27 +01:00
Houtan Bastani ea888fe646 write_latex_definitions: use M_ as global 2013-12-06 16:01:38 +01:00
Houtan Bastani f70ebea94c new function write_latex_definitions closes #478 2013-12-06 15:33:49 +01:00
Sébastien Villemot c06a8df8a4 Merge pull request #553 from rattoma/master
Trap the case where only one parameter is estimated and only one non-con...
2013-12-06 06:16:50 -08:00
Marco Ratto d969a8129c Trap the case where only one parameter is estimated and only one non-constant row is available in Jacobian: (1) do not use vnorm; (2) do not use advanced option.
(cherry picked from commit d9856879ea4d9a7d9e954cc9392d1f0e98634cda)
2013-12-06 08:21:10 +01:00
Johannes Pfeifer c9ebe21faf Harmonize plotting of IRFS
In stoch_simul.m IRFs were only printed if they were not flat instead of checking whether the IRF is different from 0. Unit root responses were thus filtered out, e.g. C=0.2 for all t was not displayed.
2013-12-05 17:46:38 +01:00
Stéphane Adjemian (Charybdis) deed4df569 Added @dseries/mpower method (element-by-element powers). 2013-12-03 23:57:53 +01:00
Sébastien Villemot d9c3073fd9 Merge pull request #539 from JohannesPfeifer/stab_map_bivariate
Continue harmonizing figure titles in GSA
2013-12-03 06:50:51 -08:00
Johannes Pfeifer 51adbd8008 Update error message if SS-Anova Toolbox is missing 2013-12-03 11:45:29 +01:00
Johannes Pfeifer 3cb16af5e3 Continue harmonizing figure titles in GSA 2013-12-03 11:35:20 +01:00
Houtan Bastani 22949820be bug fix: close unclosed file id, #438 2013-12-02 12:34:09 +01:00
Sébastien Villemot d8d0f2b8cc Revert cosmetic change of 4fa2d5b 2013-11-29 23:09:51 +01:00
Stéphane Adjemian (Scylla) dc3bcb47bf Cosmetic (removed commented line of code). 2013-11-29 19:06:26 +01:00
Stéphane Adjemian (Scylla) a6a10055da Fixed bug (problem with dates selection in @dseries::subsref). 2013-11-29 19:02:40 +01:00
Stéphane Adjemian (Scylla) e1bff2c885 Adapted unitary tests for octave. 2013-11-29 19:02:40 +01:00
Stéphane Adjemian (Scylla) 59f1967347 Adapted unitary test for octave. 2013-11-29 19:02:40 +01:00
Stéphane Adjemian (Scylla) 67d71a628b Fixed bug (isscalar does not assume that the input is numeric). 2013-11-29 19:02:40 +01:00
Stéphane Adjemian (Scylla) e615f00bec Fixed bug in unitary test (due to a change of behaviour introduced last week by Houtan). 2013-11-29 19:02:40 +01:00
Stéphane Adjemian (Scylla) ee506c4ebe Added new routine to test if a global variable exist in the base workspace. 2013-11-29 19:02:40 +01:00
Stéphane Adjemian (Scylla) 4f71d74512 Bug fix (wrong handle). 2013-11-29 19:02:40 +01:00
Stéphane Adjemian (Scylla) 121aa5038c Bug fix. Input must be numeric in the first place. 2013-11-29 19:02:40 +01:00