# HG changeset patch # User Marco Caliari # Date 1300254331 25200 # Node ID 919cadf334f8995e2cab922ee1a19a8bcd27bd00 # Parent 41d183070c04f3374e80a593a1232412b964026c Simplify calculation of number of tick labels. Bug #32692. diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2010-03-15 Marco Caliari + + * graphics.cc: Simplify calculation of number of tick labels. Fixes + bug #32692. + 2011-03-13 Konstantinos Poulios * DLD-FUNCTIONS/__init_fltk__.cc (plot_window::plot_window): diff --git a/src/graphics.cc b/src/graphics.cc --- a/src/graphics.cc +++ b/src/graphics.cc @@ -4976,8 +4976,8 @@ } } -// magform(x) Returns (a, b), where x = a * 10^b, a >= 1., and b is -// integral. +// magform(x) Returns (a, b), where x = a * 10^b, abs (a) >= 1., and b is +// integer. static void magform (double x, double& a, int& b) @@ -4989,18 +4989,8 @@ } else { - double l = std::log10 (std::abs (x)); - double r = std::fmod (l, 1.); - a = std::pow (10.0, r); - b = static_cast (l-r); - if (a < 1) - { - a *= 10; - b -= 1; - } - - if (x < 0) - a = -a; + b = static_cast (gnulib::floor (std::log10 (std::abs (x)))); + a = x / std::pow (10.0, b); } }