
What's new in Math::BigRat v0.13:

 * fixed digit(): it never worked due to dropping the second parameter
 * fixed a bug in brsft() when passing arguments (2 vs. 3 in objectify)
 * when using "lib => GMP;", certain things never worked:
   + sqrt() was not possible
   + new("2.3") did not work
   + new("12.3e-2") did not work
 * we now use Math::BigInt->config('lib') for parts instead of Math::BigInt
   + This makes everything go between two and three times faster :)
   + And it saves memory (408 vs. 807 bytes for a simple number)
   See benchmarks below.

 * _as_float() is about 6 times as fast for integers (e.g. 123/1 vs. 2/3)

 * denominator() returns 1 for +inf and -inf (+inf/1, -inf/1) instead of +-inf

 * converted t/bigratup.t to Test::More

 * tests for as_hex(), as_bin(), digit(), length()

#############################################################################
BigBench v0.11  (c) Copyright by Tels 2001-2004.  Have fun!

Wed Oct 20 22:17:36 2004 Reading templates from 'tpl/bigrat/'...done.
 Got 4 templates.
Wed Oct 20 22:17:36 2004 Reading definitions from def/bigrat.def...done.
 Got 61 ops in 14 groups.

Each op will run for at least 2 seconds.
Results are scaled by factor 1 and rounded to 3 digits.
Results will be rounded to integer.
The benchmark will run for approximately 14 minutes.
Reusing results from 'bb_out.dat'...done. Got 280 cached results.
Final results will be merged back into 'bb_out.dat'.

8 out of 244 (3.28%) benchmarks failed to return a result.

Wed Oct 20 22:17:37 2004 Numbers are relative to v0.12, 100 denotes 100%.

                 |  v0.12  v0.13  v0.13
                 |    GMP           GMP
                 |  v1.14         v1.14
 ----------------+----------------------
  123            |   88.0    217    187
  2/3            |    100    208    231
  10/5           |   88.0    259    218
  2.3            |    n/a    217    227
  -10/5          |   88.0    264    221
  10/-5          |   88.0    259    220
  -4/5           |    100    211    232
  4/-5           |   99.0    208    233
  12.3e-2        |    n/a    203    243
  2/5->copy()    |   73.0    208    124
 new:            |   79.4    218    178
 ................|......................
  NaN            |   91.0    130    110
  +inf           |   81.0    155    111
  -inf           |   82.0    157    114
 new specials:   |   84.2    149    112
 ................|......................
  "123"          |    102    162    176
  "2/3"          |    104    173    199
 stringify:      |    103    167    186
 ................|......................
  is_one("123")  |   92.0    159    155
  is_odd("2/3")  |   92.0    158    158
 is_foo:         |   91.6    159    156
 ................|......................
  123 * 123      |   91.0    287    240
  2/3 * 123      |   89.0    321    255
  2/3 * -5/2     |   92.0    290    266
  1/2 * 10       |   88.0    324    258
 mul:            |   90.2    304    253
 ................|......................
  123 / 23       |    101    247    276
  2/3 / 123      |   94.0    271    260
  2/3 / -5/2     |    101    250    278
 div:            |   98.5    257    270
 ................|......................
  123 % 23       |   91.0    328    272
  2/3 % 123      |   94.0    317    290
  2/3 % -5/2     |   96.0    311    293
  7/5 % 1/3      |   94.0    316    288
 div:            |   93.3    318    284
 ................|......................
  bfac(123)      |   5050    102  12400
  bfac(10)       |    129    209    418
 div:            |    226    207    653
 ................|......................
  sqrt(144)      |    n/a    135    157
  sqrt(1/2)      |    n/a    106    502
  sqrt(1/4)      |    n/a    147    178
  sqrt(2/3)      |    n/a    101    458
 div:            |    n/a    137    189
 ................|......................
  123 + 123      |   94.0    322    277
  2/3 + 123      |   97.0    292    294
  2/3 + -5/2     |   95.0    285    271
  1/2 + 10       |   93.0    307    286
  123 - 123      |   89.0    307    237
  2/3 - 123      |   95.0    285    273
  2/3 - -5/2     |   95.0    290    278
  1/2 - 10       |   92.0    284    254
 add/sub:        |   93.6    298    271
 ................|......................
  2/3 ++         |    108    235    318
  2/3 --         |    101    249    309
 inc/dec:        |    104    242    313
 ................|......................
  bnorm(123)     |   92.0    208    212
  bnorm(2/3)     |    108    235    320
  bzero()        |   81.0    212    138
  numify(2/3)    |   79.0    201    148
  numify(122)    |   83.0    198    152
  "2/3"          |    105    170    194
  "122"          |    101    160    169
 bnorm/num/str:  |   90.3    194    175
 ................|......................
  123->_as_float |    n/a    475    431
  2/3->_as_float |    n/a   89.0    114
  123->as_number |   80.0    226    143
  2/3->as_number |   79.0    224    143
  123->as_hex    |   95.0    167    159
  123->as_bin    |    102    156    170
 as_foo:         |   89.4    187    166
 ................|......................
  floor(123)     |   82.0    146    138
  floor(2/3)     |   83.0    372    257
  ceil(123)      |   84.0    153    145
  ceil(2/3)      |   87.0    388    303
 floor/ceil:     |   82.8    177    158
 ................|......................

Wed Oct 20 22:17:37 2004 All done, took 1 seconds. Enjoy!

#############################################################################

Please have an arbitrarily big pizza quadro ratenti.

Tels <http://bloodgate.com/perl>

