Optimizations for speed: o Make function star() and operators *, ^, &, %, / friends of class matrix_multi<>. |
|
More...
|
almost 18 years ago
|
New functions: o mono_kron(): sparse Kronecker tensor product of monomial matrices; o norm_frob2(): square of Frobenius norm; o trace(): Matrix trace. |
|
More...
|
almost 18 years ago
|
New functions: o mono_kron(): sparse Kronecker tensor product of monomial matrices; o norm_frob2(): square of Frobenius norm; o trace(): Matrix trace. |
|
More...
|
almost 18 years ago
|
Optimzations for speed: o In constructor from index_pair_t, use masks instead of a loop. o Consolidate templates for functions test(), count(), count_pos(), use bitset_t::to_ulong(). o In functions min() and max(), if _GLUCAT_BITS_PER_ULONG is 32 or 64, use the "bit wizardry" version of the function for all LO, HI, but only include all cases if HI-LO > 8. o In function compare(), use lex_less_than(). o In function lex_less_than() use, bitset_t::to_ulong(). o Inline functions classname() and value_of_fold(). o Consolidate templates for sign_of_mult(). Use bitset_t::to_ulong(). If HI-LO > 8, use "bit wizardry": new static functions inverse_gray() and inverse_reversed_gray(). Otherwise use slightly faster loops. o Consolidate templates for hash_fn(). Shift neg_part into high bits of result, to reduce collisions. o Inline short index_set<>::reference functions. |
|
More...
|
almost 18 years ago
|
Make operators ^, & and | friends of class index_set<>. Use BOOST_STATIC_ASSERT to enforce (LO <= 0) && (HI >= 0) && (HI > LO) && (-LO < _GLUCAT_BITS_PER_ULONG) && (HI < _GLUCAT_BITS_PER_ULONG) && (HI-LO <= _GLUCAT_BITS_PER_ULONG). New typedef index_pair_t for use with index_set<> constructor for index range. New member function sign_of_square(): sign of geometric square of a Clifford basis element. Remove deprecated function index_range(). |
|
More...
|
almost 18 years ago
|
Use the Boost pool allocator. Include <boost/pool/pool_alloc.hpp> |
|
More...
|
almost 18 years ago
|
Include <boost/static_assert.hpp> |
|
More...
|
almost 18 years ago
|
Change _GLUCAT_CTAssert so that it does not generate spurious warnings with gcc 4.2.2. New tuning parameter Products_Size_Threshold, default 1UL << 22, to control operators ^, & and %. Change defaults for the other tuning parameters: DEFAULT_Div_Max_Steps = 4; DEFAULT_Sqrt_Max_Steps = 16; DEFAULT_Log_Max_Outer_Steps = 16; DEFAULT_Log_Max_Inner_Steps = 16; DEFAULT_Basis_Max_Count = 10; DEFAULT_Fast_Size_Threshold = 1UL << 6; DEFAULT_Inv_Fast_Dim_Threshold = 1UL << 6; |
|
More...
|
almost 18 years ago
|
Optimizations for speed: o Make generator_table<> operator() inline; o In function gen_from_pm1_qm1(), use 3 parameter constructor for neg and dup, copy pos from neg and use function mono_kron(). |
|
More...
|
almost 18 years ago
|
Inline function classname(). |
|
More...
|
almost 18 years ago
|
Optimizations for speed: o Make function star() and operators *, ^, &, %, / friends of class framed_multi<>; o Use boost::fast_pool_allocator<> with std::map<>. |
|
More...
|
almost 18 years ago
|
Optimizations for speed: (1) For operators *, ^, &, %, use the new corresponding operator for the left hand side type in preferenece to *=, ^=, &=, %=. (2) The function star() uses the corresponding function for the left hand side type. (3) The functions scalar() and pure() use the member function scalar(). The function pow() with int right hand side is no longer inlined. |
|
More...
|
almost 18 years ago
|
New const member function scalar(). Make order of products more consistent: geometric, outer, inner, contraction. New versions of sqrt, log, cos, acos, acosh, sin, asin, asinh, tan, atan, atanh with a second parameter i, which is a specified complexifier and a third parameter prechecked which controls check_complex. |
|
More...
|
almost 18 years ago
|
Remove the test for matrix_multi<double>. |
|
More...
|
almost 18 years ago
|
Make test11 into a regression test which uses the new function check() to compare results. Use many more test cases with function transcendtest(). |
|
More...
|
almost 18 years ago
|
Correct the URL of the Clical demo. |
|
More...
|
almost 18 years ago
|
Tighten tol from eps*4 to eps*2. Do not use std::abs(). It is not needed when Scalar_T is float or double. |
|
More...
|
almost 18 years ago
|
Use more test cases with function do_test00(): < *_multi<float,-3,4> >(3), < *_multi<float,-5,6> >(5), < *_multi<double> >(5). |
|
More...
|
almost 18 years ago
|
Use GLUCAT_TEST_REPEAT to control whether to repeat the timing tests. |
|
More...
|
almost 18 years ago
|
Use GLUCAT_TEST_REPEAT to control whether to repeat the timing tests. Remove the tests for *_multi<double,-4,4>, and *_multi<float>. |
|
More...
|
almost 18 years ago
|
Change Driver_Fast_Size_Threshold and Driver_Inv_Fast_Dim_Threshold for _GLUCAT_SQUARING_OPT to match the default value of 1 << 6. |
|
More...
|
almost 18 years ago
|
Update to version 0.4.0. New configure option --with-unordered-map which controls -D_GLUCAT_USE_TR1_UNORDERED_MAP. Reorder compiler flags for the sake of consistency. Remove some commands which were commented out. For gcc between 4 and 4.0.2, move the test for and use of the flag -fno-strict-aliasing. Confine the test for and use of -fabi-version=0 to gcc between 4 and 4.0.2 only. Confine the test for and use of -Wstrict-aliasing=2 to gcc between 4 and 4.1 only. If --enable-strict is selected, for gcc later than 4.1, test and use the flags -pedantic -Wextra -Wno-unused-parameter. If --enable-debug=no is selected: (1) For gcc 4.1 and later, test and use the flags -O3 --param max-inline-insns-single=5400 --param large-function-insns=5400 -funroll-loops -fvariable-expansion-in-unroller -fno-math-errno -fno-trapping-math. (2) For gcc later than 4.2.1, for host x86_64-*-*, also use the flag -march=k8. |
|
More...
|
almost 18 years ago
|
HAVE_TR1_UNORDERED_MAP is to be defined to 1 if <tr1/unordered_map> exists. |
|
More...
|
almost 18 years ago
|
Update to version 0.4.0. |
|
More...
|
almost 18 years ago
|
Changes for version 0.3.0. |
|
More...
|
almost 18 years ago
|
Test results for version 0.3.0. |
|
More...
|
almost 18 years ago
|
Add an extra line after the tests for each different template class, to make output easier to read. |
|
More...
|
almost 18 years ago
|
Clean up based on products test. Increase precision of output and increase number of repetitions to get more accurate timings for small frame sizes. Use new index_set(range) constructor. |
|
More...
|
almost 18 years ago
|
Increase precision of output and increase number of repetitions to get more accurate timings for small frame sizes. |
|
More...
|
almost 18 years ago
|
Use new index_set(range) constructor. |
|
More...
|
almost 18 years ago
|