CM2 Math1 /release 4.8.0
- 4.8.0
- December, 2017
- CM2 MeshTools® 4.8.0 and CM2 FEM® Engines 4.3.0
- Major release of the CM2 Math1 library
- Due to changes in the API, client applications must be recompiled against the new headers
/caveats
- Lib names suffix is
_48
for this series. - New Visual Studio 2017 builds (Win32, Win64, MD, MT).
- GCC 5 and GCC 6 builds (Linux86, Linux64).
- Visual Studio < 2010 and GCC < 4.8 are deprecated and will be no longer supported in future versions.
In the long term, C++98 will be deprecated. C++11-compliant compilers (for instance Visual Studio >= 2015) will be required to compile the source code of CM2 but also to compile against its API. - Windows XP is deprecated and will be no longer supported in future versions.
- macOS < 10.9 is deprecated and will be no longer supported in future versions (minimum deployment target will raise to 10.9 Mavericks).
/new features
- New
segment_iterators
andconst_segment_iterators
for matrices (dynamic and fixed-size):
operator*()
,operator!=
and postfix increment/decrement operators added.
This makes these column iterators compatible with STL algorithms and enables writing for instance:
DoubleMat M(3, 12, 0.);
std::for_each(M.seg_begin(), M.seg_end(), [](DoubleMat::segment_type v){ vecscal::copy(v.index(), v); });
std::for_each(M.seg_begin(), M.seg_end(), [](DoubleMat::segment_type v){ vecio::write(std::cout, v); });
/improvements
matvec::mult
andmatvec::transpose_mult
now parallelized.matvec::Vt_A_V
(formerlymatvec::Bt_A_B
) now parallelized and optimized for sparse matrices.
/fixes
matvec::transpose_mult
for matrices with separate diagonal storage.
/breaking changes
vector_fixed
,matrix_fixed
,symmetric_fixed
:
constructors with a single initializing value are now qualifiedexplicit
.matvec::Bt_A_B
renamedmatvec::Vt_A_V
.matmat::diag_mult
parametercache_size
removed.- Default alignment for dynamic arrays is now 8 bytes (instead of 32).