Commit Graph

63 Commits

Author SHA1 Message Date
Beman 8c36890e77 Test and doc updates for Pierre Talbot's int8_t/uint8_t reverse_value() and templated reverse() patch. 2014-04-16 13:52:24 -04:00
Beman d339470e6e Remove "explicit" from Endian type constructors. Rationale: Having to write "cntr.insert(big_int32_t(value))" instead of "cntr.insert(value)" gets old fast when you are writing application code and the use case arises more or less continuously. Additionally, the use of an endian type is an implementation detail that should not leak into the application code that needs to create values of the type. Furthermore, the ambiguities that caused the constructors to be made explicit no longer occur; they were eliminated when BOOST_MINIMAL_INTEGER_COVER_OPERATORS was introduced to removed a dependency on boost/operators.hpp. If an ambiguity does arise, it is easy to clear via a static_cast or a function-style cast. 2013-09-06 10:36:54 -04:00
Beman 016d3b2e7c Rename the endian typedefs. Rationale: Subjective - during three months working on the B-tree library, the *un_t names were a constant source of irritation. Objective - the new scheme, which reverts the *un_t names to having no alignment decoration, provides consistent *_align* decoration for both FP and integer types. Also, the library now provides conversion functions which may reduce use of aligned endian types. 2013-09-01 08:40:32 -04:00
Beman a40d580782 Get 64-bit builds working. Update timings to reflect 64-bit build. 2013-06-06 08:00:28 -04:00
Beman 74b122c581 Alignment of 64-bit integers on a 32-bit system may be to a 32-bit boundary! 2013-05-30 10:07:16 -04:00
Beman cd985897e6 By default use a shorter test, but add coverage of the aligned types. 2013-05-30 09:19:42 -04:00
Beman 30c44461f6 Only do relational tests if signedness is the same, to quiet GCC warnings. Start using lightweight test. 2013-05-30 08:57:09 -04:00
Beman db3864b3d4 Fix boo boos detected by inspect program. 2013-05-29 09:40:35 -04:00
Beman 9c25d54d38 Finalize index.html discussion. 2013-05-28 09:42:04 -04:00
Beman a55a44c67b Loop test time work in progress. 2013-05-28 07:37:52 -04:00
Beman 50b5488997 loop_time_test current work-in-progress 2013-05-27 08:53:18 -04:00
Beman 32b04869e8 Initial commit loop_time_test.cpp and its infrastructure. 2013-05-27 07:44:29 -04:00
Beman 7f9d91e6d2 Rename unaligned integers to fit the floating point pattern. Unifies the naming pattern, deliberately makes the unaligned type names a bit uglier. 2013-05-26 12:05:33 -04:00
Beman dff7c1254e Add unaligned floating point types and supporting infrastructure. 2013-05-26 08:25:10 -04:00
Beman a7ba65f830 Implement, test, float and double endian types. 2013-05-25 12:16:32 -04:00
Beman f8f8d90b1f Eliminate addition as not adding any useful information. 2013-05-24 13:22:48 -04:00
Beman 77520edff1 Change speed_test.cpp output to HTML 2013-05-24 11:28:26 -04:00
Beman 2f85e370b6 Add 16 and 64 bit varieties 2013-05-23 10:19:56 -04:00
Beman 8f55000f6f Finally getting useful speed_test results from both GCC and VC++ 2013-05-23 10:11:29 -04:00
Beman c7beb10785 Add alignment test cases for aligned endian types. 2013-05-22 08:46:56 -04:00
Beman 6f84684e9e Add separate big and little specializations for aligned case; the attempt to combine into a single specialization was selecting the unaligned specialization. Rework speed_test to try to get more meaningful results and cover more test cases. 2013-05-22 08:14:51 -04:00
Beman 4d6f7001fa Create separate synopsis section 2013-05-21 08:38:24 -04:00
Beman ddb5936b68 Yet another naming scheme for type synonyms. Aligned type names now exactly follow the <cstdint> pattern, while the unaligned names elide "int". 2013-05-21 07:56:27 -04:00
Beman 870b542456 Rename endian types to a scheme that mimics cstdint.hpp. Change test and example code accordingly. 2013-05-20 17:03:12 -04:00
Beman f13a9cd6a4 Rename integers.hpp to types.hpp in case floating point is someday supported. 2013-05-20 09:07:01 -04:00
Beman 9089eb037b Rename header converters.hpp back to conversion.hpp. Clean up infrastructure. 2013-05-18 16:14:30 -04:00
Beman de91bcd571 Cleanup residue from prior changes. 2013-05-18 15:09:51 -04:00
Beman c0fc4cdf8c Somewhat more interesting results after redoing loop based on iteration count rather than time. Release builds particularly interesting. 2013-05-18 10:27:18 -04:00
Beman 2b18459db0 Speed_test working, although not yielding useful results. 2013-05-18 08:28:27 -04:00
Beman b587bab1db Add speed_test infrastructure. 2013-05-17 13:19:45 -04:00
Beman 9a1d520572 Use a more robust detection of __builtin_bswap funtions for Clang. Fix Clang lack of __builtin_bswap16 in some releases. To be conservative only, fallback to byteswap.h if __linux__ is defined. Fix intrinsic_test so that <cstdint> isn't required. 2013-05-16 17:22:38 -04:00
Beman 4066443d89 Rework intrinsic.hpp to handle GCC and Clang __builtin_bswap* if available. Add test program. 2013-05-16 10:40:18 -04:00
Beman 8b4bd2adfc Add synonyms based on names popularized by BSD, e.g. OS X, Linux. 2013-05-15 08:51:05 -04:00
Beman 09b361e161 Simulated function template partial specialization working. converter_test and pair_test passing. 2013-05-14 17:59:50 -04:00
Beman 72880a1416 Initial commit udt_conversion_example.cpp 2013-05-14 14:54:11 -04:00
Beman c16fd1384f Teaks 2013-05-14 10:32:51 -04:00
Beman 1a496f277e Signs of life 2013-05-14 09:59:18 -04:00
Beman e7c14b9ff2 pair_test infrastructure initial commit. 2013-05-14 07:20:53 -04:00
Beman db2f30b77c Better fix that works with more compilers, old and new, VC++ and GCC. 2013-05-13 11:05:31 -04:00
Beman 62915438e3 Fix converter_test cases. converter_test now passes on big-endian mac. 2013-05-13 10:43:56 -04:00
Beman 4c0bd87c18 Tweaks to get tests running with various compilers. 2013-05-12 17:42:48 -04:00
Beman 6c00b65eb4 Add light test of modify-in-place interface 2013-05-12 11:31:32 -04:00
Beman ec3aacd132 Remove cruft left over from refactoring. 2013-05-12 10:55:18 -04:00
Beman 0fef88ab3f Change names to make room for modify-in-place names. 2013-05-12 08:58:44 -04:00
Beman 854c27939a Change name of conditional conversion functions to big_endian and little_endian. 2013-05-12 07:52:42 -04:00
Beman 50c1a27386 Change name convert_bytes to convert. Given the namespace, template parameters, and function arguments, it is obvious what is being converted, and "bytes" is too low level for this function. 2013-05-12 07:25:12 -04:00
Beman 3877219925 Remove spurious semi-colon. 2013-05-12 07:21:37 -04:00
Beman 2794810b29 converter_test.cpp refactoring complete 2013-05-11 17:41:06 -04:00
Beman 97b024bcf6 Continue refactoring converter_test.cpp. 2013-05-11 17:18:17 -04:00
Beman c349e35e91 Enable double, fix bug in generic reverse_bytes implementation. Begin refactoring converter_test code. 2013-05-11 16:08:15 -04:00