alifahrri / nmtools Goto Github PK
View Code? Open in Web Editor NEWA generic, composable multi-dimensional array library.
License: MIT License
A generic, composable multi-dimensional array library.
License: MIT License
std::optional on commit ed7fee5394e25316bc619f6a4414d78fa46965fa errored:
2024-05-23T14:31:24.9138165Z /usr/include/c++/12/optional:207:15: error: initializations for multiple members of 'std::_Optional_payload_base<nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::greater, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > > >::_Storage<nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::greater, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, true>'
2024-05-23T14:31:24.9237346Z 207 | union _Storage
2024-05-23T14:31:24.9237987Z | ^~~~~~~~
2024-05-23T14:31:24.9457319Z /usr/include/c++/12/optional:164:7: note: synthesized method 'constexpr std::_Optional_payload_base<nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::greater, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > > >::_Storage<nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::greater, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, true>::_Storage(std::_Optional_payload_base<nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::greater, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > > >::_Storage<nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::greater, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [1], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 1> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::where_t, nmtools::view::decorator_t<nmtools::view::indexing_t, nmtools::view::decorator_t<nmtools::view::ufunc_t, nmtools::view::fun::less, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > >, nmtools::view::decorator_t<nmtools::view::indexing_t, signed char [3][2], nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, nmtools::view::broadcast_to_t<std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, std::tuple<nmtools::meta::integral_constant<long unsigned int, 3>, nmtools::meta::integral_constant<long unsigned int, 2> >, nmtools::array::hybrid_ndarray<unsigned char, 2, 1>, nmtools::meta::integral_constant<long unsigned int, 6> > > >, true>&&)' first required here
2024-05-23T14:31:24.9651957Z 164 | _Optional_payload_base(_Optional_payload_base&&) = default;
2024-05-23T14:31:24.9653032Z | ^~~~~~~~~~~~~~~~~~~~~~
while it is working fine on clang, and works fine on gcc with NOSTL build:
section 4.3 in
Antoniou A, Lu WS. Practical optimization: algorithms and engineering applications. Springer Science & Business Media; 2007 Dec 14.
from
template <size_t order, Formulas formula = Formulas::Centered, typename F, typename Scalar>
void finite_difference(F &f, Scalar x, Scalar step, Scalar &d)
{
detail::finite_difference(detail::Order<order>{}, detail::ComputeType<formula>{}, f, x, step, d);
}
to
template <size_t order, Formulas formula = Formulas::Centered, typename F, typename Scalar>
auto finite_difference(F &f, Scalar x, Scalar step)
{
return detail::finite_difference(detail::Order<order>{}, detail::ComputeType<formula>{}, f, x, step);
}
add LU decompostion base and implemetation for eigen and armadillo backend
nmtools::array
Add support for python
no longer support fft
refactor backend directory structure to gla/backend
and update namepace accordingly
init matrix support (eigen & armadillo backend)
section 4.6 in
Antoniou A, Lu WS. Practical optimization: algorithms and engineering applications. Springer Science & Business Media; 2007 Dec 14.
add functional inverse frontend with eigen and armadillo backend
recursive fft
clang & gcc disagree on contstexpr evaluation:
2024-06-01T09:08:52.7324596Z In file included from /work/tests/index/src/roll.cpp:1:
2024-06-01T09:08:52.7326602Z /work/include/nmtools/array/index/roll.hpp:278:32: error: constexpr variable 'result' must be initialized by a constant expression
2024-06-01T09:08:52.7344845Z constexpr auto result = index::roll(shape,indices,shift,axis_t{});
2024-06-01T09:08:52.7345811Z ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2024-06-01T09:08:52.7354560Z /work/include/nmtools/meta/transform.hpp:73:5: note: in instantiation of template class 'nmtools::meta::resolve_optype<void, nmtools::index::roll_t, std::tuple<nmtools::meta::integral_constant<unsigned long, 2>, nmtools::meta::integral_constant<unsigned long, 4>>, std::tuple<nmtools::meta::integral_constant<unsigned long, 0>, nmtools::meta::integral_constant<unsigned long, 0>>, nmtools::meta::integral_constant<unsigned long, 1>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 0>>>' requested here
2024-06-01T09:08:52.7359228Z using resolve_optype_t = typename resolve_optype<void,op_t,tparams...>::type;
2024-06-01T09:08:52.7360126Z ^
2024-06-01T09:08:52.7362036Z /work/include/nmtools/array/index/roll.hpp:68:32: note: in instantiation of template type alias 'resolve_optype_t' requested here
2024-06-01T09:08:52.7363861Z using result_t = meta::resolve_optype_t<roll_t,shape_t,indices_t,shift_t,axis_t>;
2024-06-01T09:08:52.7364807Z ^
2024-06-01T09:08:52.7374728Z /work/tests/index/src/roll.cpp:294:5: note: in instantiation of function template specialization 'nmtools::index::roll<std::tuple<nmtools::meta::integral_constant<unsigned long, 2>, nmtools::meta::integral_constant<unsigned long, 4>>, std::tuple<nmtools::meta::integral_constant<unsigned long, 0>, nmtools::meta::integral_constant<unsigned long, 0>>, nmtools::meta::integral_constant<unsigned long, 1>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 0>>>' requested here
2024-06-01T09:08:52.7380034Z ROLL_SUBCASE( case2d1, shape_ct, indices_ct, shift_ct, axis_ct );
2024-06-01T09:08:52.7380837Z ^
2024-06-01T09:08:52.7381715Z /work/tests/index/src/roll.cpp:12:35: note: expanded from macro 'ROLL_SUBCASE'
2024-06-01T09:08:52.7382794Z auto result = nmtools::index::roll(__VA_ARGS__); \
2024-06-01T09:08:52.7383484Z ^
2024-06-01T09:08:52.7386236Z /work/include/nmtools/array/index/roll.hpp:183:32: note: non-constexpr function 'operator()<unsigned long, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 0>>>' cannot be used in a constant expression
2024-06-01T09:08:52.7388600Z auto m_shift = normalize_length(shift,axis);
2024-06-01T09:08:52.7389246Z ^
2024-06-01T09:08:52.7391498Z /work/include/nmtools/array/index/roll.hpp:278:42: note: in call to 'roll(shape, indices, shift, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 0>>{})'
2024-06-01T09:08:52.7393643Z constexpr auto result = index::roll(shape,indices,shift,axis_t{});
2024-06-01T09:08:52.7394518Z ^
2024-06-01T09:08:52.7395361Z /work/include/nmtools/array/index/roll.hpp:98:37: note: declared here
2024-06-01T09:08:52.7399104Z auto normalize_length = [](const auto& lhs, const auto& rhs){
success on gcc, but clang rejects
full clang logs (error):
job-logs-clang-index-error.txt
full gcc logs (success):
job-logs-gcc-index-success.txt
commit: cca38c3
clang error: note: read of variable whose lifetime has ended
branch: https://github.com/alifahrri/nmtools/tree/clang-compile-error-constexpr-variable-lifetime
CI log (clang-14)
2022-10-01T13:26:22.6894603Z In file included from /work/tests/meta/array/view/moveaxis.cpp:5:
2022-10-01T13:26:22.6895063Z In file included from /work/include/nmtools/array/view/moveaxis.hpp:4:
2022-10-01T13:26:22.6895649Z In file included from /work/include/nmtools/array/index/argsort.hpp:5:
2022-10-01T13:26:22.6919427Z /work/include/nmtools/array/shape.hpp:242:47: error: non-type template argument is not a constant expression
2022-10-01T13:26:22.6939473Z }, nmtools_tuple<meta::ct<(size_t)at(fixed_shape,0)>>{});
2022-10-01T13:26:22.6943928Z ^~~~~~~~~~~~~~~~~~~~~~~~~
2022-10-01T13:26:22.6951885Z /work/include/nmtools/array/view/transpose.hpp:42:50: note: in instantiation of function template specialization 'nmtools::shape<true, nmtools::array::ndarray_t<std::array<float, 12>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 2>, nmtools::meta::integral_constant<unsigned long, 6>>>>' requested here
2022-10-01T13:26:22.6956189Z using src_shape_type = decltype(nmtools::shape</*force_constant_index*/true>(meta::declval<array_t>()));
2022-10-01T13:26:22.6959811Z ^
2022-10-01T13:26:22.6966252Z /work/include/nmtools/array/view/decorator.hpp:129:26: note: in instantiation of template class 'nmtools::view::transpose_t<nmtools::array::ndarray_t<std::array<float, 12>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 2>, nmtools::meta::integral_constant<unsigned long, 6>>>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 0>, nmtools::meta::integral_constant<unsigned long, 2>>>' requested here
2022-10-01T13:26:22.6971507Z struct decorator_t : view_t<Ts...>
2022-10-01T13:26:22.6971763Z ^
2022-10-01T13:26:22.6983224Z /work/include/nmtools/array/view/transpose.hpp:100:16: note: in instantiation of template class 'nmtools::view::decorator_t<nmtools::view::transpose_t, nmtools::array::ndarray_t<std::array<float, 12>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 2>, nmtools::meta::integral_constant<unsigned long, 6>>>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 0>, nmtools::meta::integral_constant<unsigned long, 2>>>' requested here
2022-10-01T13:26:22.6984659Z return decorator_t<transpose_t,array_t,axes_t>{{array,axes}};
2022-10-01T13:26:22.6984952Z ^
2022-10-01T13:26:22.6992103Z /work/include/nmtools/array/view/moveaxis.hpp:37:56: note: in instantiation of function template specialization 'nmtools::view::transpose<nmtools::array::ndarray_t<std::array<float, 12>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 2>, nmtools::meta::integral_constant<unsigned long, 6>>>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 0>, nmtools::meta::integral_constant<unsigned long, 2>>>' requested here
2022-10-01T13:26:22.6994480Z using result_t = meta::remove_cvref_t<decltype(transpose(array,*order))>;
2022-10-01T13:26:22.6995209Z ^
2022-10-01T13:26:22.7005677Z /work/tests/meta/array/view/moveaxis.cpp:54:44: note: in instantiation of function template specialization 'nmtools::view::moveaxis<nmtools::array::ndarray_t<std::array<float, 12>, std::tuple<nmtools::meta::integral_constant<unsigned long, 1>, nmtools::meta::integral_constant<unsigned long, 2>, nmtools::meta::integral_constant<unsigned long, 6>>>, nmtools::meta::integral_constant<unsigned long, 0>, nmtools::meta::integral_constant<unsigned long, 1>>' requested here
2022-10-01T13:26:22.7006825Z using view_type = decltype(view::moveaxis(meta::declval<array_type>(),meta::declval<src_type>(),meta::declval<dst_type>()));
2022-10-01T13:26:22.7008561Z ^
2022-10-01T13:26:22.7013855Z /work/include/nmtools/array/shape.hpp:242:55: note: read of variable whose lifetime has ended
2022-10-01T13:26:22.7015592Z }, nmtools_tuple<meta::ct<(size_t)at(fixed_shape,0)>>{});
2022-10-01T13:26:22.7017908Z ^
works fine on gcc
related code: https://github.com/alifahrri/nmtools/blob/clang-compile-error-constexpr-variable-lifetime/include/nmtools/array/shape.hpp#L236
constexpr auto fixed_shape = meta::fixed_shape_v<array_t>;
if constexpr (!meta::is_fail_v<decltype(fixed_shape)>) {
return meta::template_reduce<len(fixed_shape)-1>([&](auto init, auto index){
using init_type = decltype(init);
using type = meta::append_type_t<init_type,meta::ct<(size_t)at(fixed_shape,index+1)>>;
return type{};
}, nmtools_tuple<meta::ct<(size_t)at(fixed_shape,0)>>{});
} else {
return impl::shape<array_t>(array);
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.