Complete version history
========================
##############################################################################
Math::String:
1.02: fixed new() as copy, bstr works now, dropped multiple charsets
1.03: 02/2001: added support for Math::String::Charset and thus bi-grams
added: caching for more speed
2001-02-14 1.04: fixed inheritance/overloading bugs (objectify)
finally got rid of copy&paste overload
2001-02-16 1.05: fixed overload bug in cmp (Math::String cmp something other)
2001-02-22 1.06: fixed: digits() => length()
2001-03-18 1.07: fixed: documentation
2001-03-25 1.08: added: support for caching of string form
2001-04-13 1.09: as_number: returns now Math::BigInt
2001-05-07 1.10: finally got rid of C&P of overload section
2001-05-13 1.11: added accuracy/precision/fallback/rnd_mode and tests for this
2001-07-08 1.12: added bnan(), binf(), fixed $x->bzero(), added test for these
fixed bug in copy() code in from_number()
2001-07-26 1.13: new( { str => 'abc', num => '123' } );
2001-08-08 1.14: bstr() was not caching string form, some more tests
copy() does no longer make a (costly) true copy of the charset
2001-09-01 1.15: unreleased
binc(), bdec() modify cache for speedup (instead clearing it)
added bone(), is_valid(), maxlen(), minlen()
2001-11-05 1.16: added class()
binc(), bdec() modify cache instead of clearing it (speedup)
added bone(), is_valid(), minlen(), maxlen(), type(), class()
2002-02-20 1.17: removed debug output
_core_lib => config()->{lib}
2002-02-28 1.18: binc()/bdec() four times as fast
as_number twice as fast
2003-02-06 1.19: removed some needless return statements
removed debug printout "changing charset..."
added __END__ marker for faster loading
2003-04-07 1.20: added: scale()
as_number() uses _scale to scale output
2003-04-10 1.21: fixed: bug in UNIVERSAL::isa() call in from_number
2003-04-22 1.22: prefer Math::BigInt::GMP on use
2003-07-26 1.23: removed shebang line
2003-12-11 1.24 Tels 599 tests
* new( { str => ..., num => ... } ) did not honour scale from charset
2004-11-20 1.25 Tels 662 tests
* simplify caching:
+ remove unused len cache
+ since we only cache on thing, use a plain scalar instead of a hash, this
saves memory per Math::String object and makes everything go a little
faster since a hash lookup for ->{str} is no longer necessary
* bstr() for uncached strings with SIMPLE charset is now about twice as fast
* copy() is about 16% faster (due to simpler cache and streamlining)
##############################################################################
Math::String::Charset:
2000-02-07 1.02: first version with bi-grams
2000-02-14 1.03: fixed: simple charsets to work now,
added: _end hash and _ones set
2000-02-16 1.04: added: char(), charlength()
2000-02-17 1.05: fixed: chars with diff. len raise error, works now with
characters of length > 1
some slight optimizations for simple charsets
2000-02-22 1.06: fixed: documentation (fill-characters, die on error)
toggle $Math::String::Charset::die_on_error
num2str() is now about a small, constant amount faster
2000-03-18 1.07: fixed: documentation
added: separator string/char for 'the lazy fox' style strings
renamed type() to order()
documented that length() always returns count of chars
2000-03-25 1.08: added: next(), prev() for simple charsets (cache in M::S)
2000-06-26 1.09: fixed: bug accessing BigInt's internals, fails for BitVect etc
2000-09-01 1.10: split: into Charset, Nested and Grouped
fixed: next()/prev() work now
added: support for minlen, maxlen, ones(), type()
2000-10-19 1.11: fixed: Math::BigInt::bzero() => Math::BigInt->bero()
split Charset.pm into
Math::String::Charset::Simple (type = 0, order = 1)
Math::String::Charset::Nested (type = 0, order > 1)
Math::String::Charset::Grouped (type = 1, order = 1)
added: support for minlen and maxlen
ones(), count(), zero(), one(), type() and tests
next/prev actually work
analyze is alias for study, can export analyze
fixed: better error handling upon initialization
is now subclassable
first()/last() work now with sep char, added tests
make Math::String->first($length,$set) work
(and last(), too), test for it
study:
'chars' and 'start' for depth => 1
depth as alias for order
can return histogram (hist => 1)
now works for the "hocuspocus" example
tests are now in seperate file
2003-02-06 1.12: added __END__ marker for faster loading
2003-04-10 1.13: added scale() and scale as parameter to new()
2003-04-22 1.14: fix for scale not beeing a legal parameter to new()
prefer Math::BigInt::GMP on use
added method copy()
2003-07-26 1.15: require Math::String::Charset::Wordlist vs. use
added lib => 'GMP'
removed shebang line
2004-11-20 1.16
* for simple Charsets, the _end hash can be shared with the _map hash. That
reduces memory by at least 20% (a..z, leaning towards 30% for larger sets)
and makes new() at least 10% (a..z, more for larger sets) faster, too :)
* dump() returns the dump as string instead of printing it
* fix end keys in dump from SIMPLE charsets
* dump() takes optional indend parameter
* remove unused SIMPLE() in Charset.pm
* streamlined str2num() to make "new()" faster
* streamlined num2str() to make "bstr()" faster
* remove GMP lib (let caller decide)
##############################################################################
Math::String::Charset::Grouped:
2000-09-20 0.01: first version from Charset
2000-10-25 0.02: fixed bugs, added sep char support
2003-02-06 0.03: added __END__ marker for faster loading
2003-04-14 0.04: fix for scale not beeing a legal parameter to new()
2003-07-26 0.05: added lib => 'GMP'
removed shebang line
2004-11-20 0.06: fix dump() for GROUPED charsets
remove GMP lib (let caller decide)
##############################################################################
Math::String::Charset::Nested:
2000-09-15 0.01: split from Charset
fixed: bi-gram chars w/o followers can't be in _start
class() was wrong for bi-grams (with some start sets)
2003-02-06 0.02: added __END__ marker for faster loading
2003-04-14 0.03: fix for scale not beeing a legal parameter to new()
2003-07-26 0.04: added lib => 'GMP'
removed shebang line
2004-11-20 0.05: remove GMP lib (let caller decide)
##############################################################################
Math::String::Charset::Wordlist was moved into it's own distribution
##############################################################################
Math::String::Sequence:
2001-03-20 1.00 first version, complete with test and doc
2001-03-24 1.01 support for reversed sequences
2001-04-21 1.02 added: as_array for 'a'..'z' emulation
2003-02-06 1.03 added __END__ marker for faster loading
fixed a potential problem in as_array()
2003-07-26 1.04 added lib => 'GMP'
removed shebang line
2004-11-20 0.05: remove GMP lib (let caller decide)