Pedantic bug-fix (i.e. in reality the code workes fine 'as is' due to the 'early return' statement) in gmnl2a/processor.h: curlies were not set properly in stage3 'else' stages of caching per individual attributes in 'log_likelihood' method...
===============================
Migration from the use of gcc-4.6.2 to gcc-4.7.2 (more optimizations, c++11 compliance, etc.)
-------------------------------
Subsequent change to later version of Boost as well. This caused some, minor, refactoring:
boost/stream.hpp related objects/code (version 1.52-ish) and the release builds of my code (where I use -fno-rtti) don't play nice. Defining
#define BOOST_NO_RTTI
#define BOOST_NO_TYPEID
when compiling and using boost libs did not help. So currently (as I really don't want to give up -fno-rtti) refactored my code to not use boost iostreams (for the time being anyways).
-------------------------------
Reducing some of the -DBUILD_FAST BSDmakefile parameters to allow for quicker compilation on my current machine (<4Gig RAM). TODO later re-enable (when better box arrives/becomes-available).
-------------------------------
Dropped mixed floating point math 387 and sse -- see BSDmakefile for comments, basically the benefits are not always clear (due to having to typedef float_t as long double even on x86_64 archs due to some optimization modes utilising certain code which expects intermediaries be at least 80 bits in size for 387 FP model).
-------------------------------
Fix the syntax in native gcc building info/howto with respect to enabling gold linker in binutils. But in practice gold linker is not used (bfd linker currently supports plugins anyways). The lack of gold deployment is mainly due to the fact that it does not catch exceptions. Moreover, the gold linker requires to be built with newer gcc (i.e. a comparatively oldish gcc on freebsd cannot build binuitls gold linker and generates internal compiler error). TODO -- redeploy gold linker when the bugs for its ability to catch exceptions become less of an issue. Although by that stage Clang/LLVM may well be of interest.
-------------------------------
Some minor fixes in relation to gcc 4.7.2 / c++11 conformance (syntatic changes).
===============================
Processor related changes:
-------------------------------
Utilising better alignment semantics now that gcc 4.7.2 is deployed (more consistent macros for restricted and aligned pointers -- to be future-editable with other, non-gcc compilers).
-------------------------------
Slightly more efficient mechanism of calculating the "acccumulated_probability" in mixed_logit/gmnl2/gmnl2a log_likeilhood models -- and addition instead of multiplication. Consequently, repetitions_inv variable in mixed logit, GMNL-II and Gmnl2a are no longer needed.
-------------------------------
Minor bug fix -- was_fpu_ok is now called with more explicit pointers -- because respondent_probability_cache is of exended_float_type and some pointers of interest which (theoretically)may trip fpu are just float_type (so compiler may presume strict aliasing rules based reordering)
-------------------------------
Enabling experimental mean-normalisation in scaling distribution in gmnl2a and gmnl2.
-------------------------------
Adding distribution draws to the "additive approximation afterthought" in gmnl2a (as opposed to a simple scalar coefficient).
-------------------------------
Adding estimated coefficient to account for correlation between the scaling and offsetting distributions in gmnl2a.
-------------------------------
Documentation in LaTeX files for Gmnl2a changed accordingly.
-------------------------------
Transferring (experimentally) all of the stage3 caching to the "x_size/coefficient specific" stage in gmnl2a (as opposed to a previous case of some cached variables such as tau, et.al. being set outside of the 'for each coefficient' loop). On some occasions when/if only a given coefficient 'blows the range' whilst subsequent likelihood evaluation retains other coefficients and tau et. al. values, then the 'already done coefficient-wise computations' in the previous evaluation could be reused (unlikely statistical case as it may be -- why not try it indeed, albeit experimentally).
===============================
HTTP-related changes:
-------------------------------
Bug fix in http/server.cc -- cancel in http driver was invoking the 'io::post' with 'shared_from_this', yet the shared_ptr usage was already over (http adapter was dtored because the ref count in shared ptr was 0; adapter's user_key was reset calling deallocation of io_wrapper which called 'cancel' on the http_adapter_detail and it called shared_from_this... which threw bad weak_ptr exception in boost). This bug was exposed since migration to boost 1_52
-------------------------------
http/server target does not, currently, need libiconv -- taking it out of BSDmakefile
-------------------------------
http/index.html -- reformatting of the labels for coefficients (no etas, just sigmas of betas, etc.) and other formatting niceties.
-------------------------------
http/index.html -- minor help-documentation clarifications.
=================================
Other changes:
-------------------------------
censoc/haltons.h -- extra assertion for aligned requirements
-------------------------------
more reduction in usage of Eigen and more comments/code cleanup
-------------------------------
converger_1/server.h -- bugfix (syntatic typo thingy) for release-mode building (var 'tmp' had to be redeclared, as previous declaration was only available if NDEBUG was hashdefined).
-------------------------------
written a TODO (performnace related, non-critical): setting streambuf buffers to filebuf and other classes of STL happens to be in many cases undefined (i.e. may not have any effect); solution is not that simple though...