//================================================================================================== /* ROTGEN - Runtime Overlay for Eigen Copyright : CODE RECKONS SPDX-License-Identifier: BSL-1.0 */ //================================================================================================== #include #include "unit/tests.hpp" #include TTS_CASE_TPL("outer_stride<0> interactions", rotgen::tests::types)( tts::type>) { using mat_t = rotgen::matrix; T contiguous[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; rotgen::map> m(&contiguous[0], 4, 3); TTS_EQUAL(m.innerStride(), 1); TTS_EQUAL(m.outerStride(), O::value == rotgen::ColMajor ? 4 : 3); if constexpr (O::value == rotgen::ColMajor) { T padded[] = {1, 2, 3, 4, 99, 5, 6, 7, 8, 99, 9, 10, 11, 12}; rotgen::map> sp(&padded[0], 4, 3); TTS_EQUAL(sp.innerStride(), 1); TTS_EQUAL(sp.outerStride(), 5); rotgen::map> dp(&padded[0], 4, 3, rotgen::outer_stride(5)); TTS_EQUAL(dp.innerStride(), 1); TTS_EQUAL(dp.outerStride(), 5); TTS_EQUAL(m, sp); TTS_EQUAL(m, dp); TTS_EQUAL(dp, sp); } else { T padded[] = {1, 2, 3, 99, 4, 5, 6, 99, 7, 8, 9, 99, 10, 11, 12}; rotgen::map> sp(&padded[0], 4, 3); TTS_EQUAL(sp.innerStride(), 1); TTS_EQUAL(sp.outerStride(), 4); rotgen::map> dp(&padded[0], 4, 3, rotgen::outer_stride(4)); TTS_EQUAL(dp.innerStride(), 1); TTS_EQUAL(dp.outerStride(), 4); TTS_EQUAL(m, sp); TTS_EQUAL(m, dp); TTS_EQUAL(dp, sp); } };