Changelog

0.25.0

  • Fix conversion warning in xrepeat # 2732 https://github.com/xtensor-stack/xtensor/pull/2732

  • Upraded to xsimd 11 # 2735 https://github.com/xtensor-stack/xtensor/pull/2735

  • Update to use XTENSOR_DEFAULT_ALIGNMENT when using XSIMD # 2739 https://github.com/xtensor-stack/xtensor/pull/2739

  • Removed failing test xinfo on clang 16 # 2740 https://github.com/xtensor-stack/xtensor/pull/2740

  • [CI] Switching to mamba-org/setup-micromamba # 2742 https://github.com/xtensor-stack/xtensor/pull/2742

  • Bump cmake version and resolve build issues # 2744 https://github.com/xtensor-stack/xtensor/pull/2744

  • Make reshape_view accept -1 as a wildcard dimension # 2746 https://github.com/xtensor-stack/xtensor/pull/2746

  • Fixing bug in argmin/argmax called with axis on rank-1 container # 2753 https://github.com/xtensor-stack/xtensor/pull/2753

  • pre-commit autoupdate # 2754 https://github.com/xtensor-stack/xtensor/pull/2754

  • Use L suffix for long double constants # 2762 https://github.com/xtensor-stack/xtensor/pull/2762

  • Use 1/4 step for testing arange # 2763 https://github.com/xtensor-stack/xtensor/pull/2763

  • [Optimization] Updated concatenate_access and stack_access to remove allocations # 2759 https://github.com/xtensor-stack/xtensor/pull/2759

  • [CI] Added more compilers # 2767 https://github.com/xtensor-stack/xtensor/pull/2767

  • Minor xindex_view to_array cleanup # 2765 https://github.com/xtensor-stack/xtensor/pull/2765

0.24.7

  • Adjust version of required xsimd in README # 2670 https://github.com/xtensor-stack/xtensor/pull/2670

  • Add CI through github actions. # 2692 https://github.com/xtensor-stack/xtensor/pull/2692

  • Added unwrap # 2710 https://github.com/xtensor-stack/xtensor/pull/2710

  • Removed repeated work from ci-extra build # 2711 https://github.com/xtensor-stack/xtensor/pull/2711

  • Removed bad macro definitions # 2712 https://github.com/xtensor-stack/xtensor/pull/2712

  • Fixing some iterator issues # 2564 https://github.com/xtensor-stack/xtensor/pull/2564

  • Fixed static analysis build # 2720 https://github.com/xtensor-stack/xtensor/pull/2720

  • Support external linkage for “recurser_run” # 2714 https://github.com/xtensor-stack/xtensor/pull/2714

  • add possibility to use std::stable_sort with xt::argsort # 2681 https://github.com/xtensor-stack/xtensor/pull/2681

0.24.6

  • Improving documentation xstrides # 2664 https://github.com/xtensor-stack/xtensor/pull/2664

  • Parallel and more aggressive strided assigner # 2660 https://github.com/xtensor-stack/xtensor/pull/2660

  • Removing duplicates from documentation # 2669 https://github.com/xtensor-stack/xtensor/pull/2669

  • Adding aliases xt::xtensor_pointer and xt::xarray_pointer # 2665 https://github.com/xtensor-stack/xtensor/pull/2665

  • Fix and refactor partition # 2652 https://github.com/xtensor-stack/xtensor/pull/2652

  • Fix and update pre-commit # 2657 https://github.com/xtensor-stack/xtensor/pull/2657

0.24.5

  • Add space before pragma diagnostic # 2654 https://github.com/xtensor-stack/xtensor/pull/2654

  • Update xtl requirement in cmake # 2649 https://github.com/xtensor-stack/xtensor/pull/2649

  • Fix a bug where .fill doesn’t work for a xcontainer that is non-contiguous # 2650 https://github.com/xtensor-stack/xtensor/pull/2650

0.24.4

  • Align qualifiers using clang-format # 2647 https://github.com/xtensor-stack/xtensor/pull/2647

  • Add xt::quantile # 2614 https://github.com/xtensor-stack/xtensor/pull/2614

  • Add swapaxes and moveaxis # 2638 https://github.com/xtensor-stack/xtensor/pull/2638

  • Enforce { … } # 2641 https://github.com/xtensor-stack/xtensor/pull/2641

  • Manual style fixes # 2642 https://github.com/xtensor-stack/xtensor/pull/2642

  • Do not step further than last element in xreducer_stepper aggregation # 2636 https://github.com/xtensor-stack/xtensor/pull/2636

  • Upgraded to xsimd 10.0.0 # 2635 https://github.com/xtensor-stack/xtensor/pull/2635

  • Explicitly declare test_xtensor_core_lib as STATIC # 2586 https://github.com/xtensor-stack/xtensor/pull/2586

  • fix npy_file move assignment # 2585 https://github.com/xtensor-stack/xtensor/pull/2585

  • Install as arch-independent # 2588 https://github.com/xtensor-stack/xtensor/pull/2588

  • Change extended tests test header # 2630 https://github.com/xtensor-stack/xtensor/pull/2630

  • argmax crashes when compiled using Visual Studio compiler with O1/O2 optimizations # 2568 https://github.com/xtensor-stack/xtensor/pull/2568

  • Fix xindexed_view::to_end # 2627 https://github.com/xtensor-stack/xtensor/pull/2627

  • Change xindex_view reference type to handle const data # 2622 https://github.com/xtensor-stack/xtensor/pull/2622

  • Fix TBB target in CMake exported interface # 2617 https://github.com/xtensor-stack/xtensor/pull/2617

  • Document missing xsort functions # 2608 https://github.com/xtensor-stack/xtensor/pull/2608

  • Specialize get_strides_type for xbuffer_adaptor # 2606 https://github.com/xtensor-stack/xtensor/pull/2606

  • find external packages (threads) after defining project # 2575 https://github.com/xtensor-stack/xtensor/pull/2575

0.24.3

  • Rename and fix storage iterator #2534 https://github.com/xtensor-stack/xtensor/pull/2534

  • rename storage_rbegin, storage_rend, … to linear_rbegin, … #2535 https://github.com/xtensor-stack/xtensor/pull/2535

  • Enabling reference value types for xfunction. #2532 https://github.com/xtensor-stack/xtensor/pull/2532

  • fixing linear iterator docs. #2538 https://github.com/xtensor-stack/xtensor/pull/2538

  • Minor improvements for Windows (MSVC, ClangCl) support #2531 https://github.com/xtensor-stack/xtensor/pull/2531

  • changing static layout in xtsrided_view temporary_type to container’s layout #2553 https://github.com/xtensor-stack/xtensor/pull/2553

  • Upgraded to xsimd 9.0.1 #2573 https://github.com/xtensor-stack/xtensor/pull/2573

0.24.2

  • Fixed the documentation of adapt functions #2496 https://github.com/xtensor-stack/xtensor/pull/2496

  • Updated C++20 option for visual studio builds C++2a no longer a valid std option #2497 https://github.com/xtensor-stack/xtensor/pull/2497

  • Simplifying argmin and argmax where possible #2499 https://github.com/xtensor-stack/xtensor/pull/2499

  • Removed unused code #2502 https://github.com/xtensor-stack/xtensor/pull/2502

  • Fixed build error in MSVC 2019 by decaying decltype to base type #2506 https://github.com/xtensor-stack/xtensor/pull/2506

  • Added xt::convolve #2507 https://github.com/xtensor-stack/xtensor/pull/2507

  • Adding reset_data to xbuffer_adaptor and reset_buffer to adaptor to replace the pointer without any reallocation #2521 https://github.com/xtensor-stack/xtensor/pull/2521

  • Workaround for EDG C++ frontend bug #2528 https://github.com/xtensor-stack/xtensor/pull/2528

  • Adding cast to deal with xtensor-python’s signedness of shape #2510 https://github.com/xtensor-stack/xtensor/pull/2510

  • Adding missing rank to xtensor_adaptor #2520 https://github.com/xtensor-stack/xtensor/pull/2520

  • Fixing compiler warning #2522 https://github.com/xtensor-stack/xtensor/pull/2522

0.24.1

  • Define tbb threshold #2455 https://github.com/xtensor-stack/xtensor/pull/2455

  • Export link interface to tbb #2456 https://github.com/xtensor-stack/xtensor/pull/2456

  • has_trivial_default_constructor has been removed from libstdc++ since version 7. #2459 https://github.com/xtensor-stack/xtensor/pull/2459

  • Added missing headers in CMake #2462 https://github.com/xtensor-stack/xtensor/pull/2462

  • Workaround for CMake implementations that do not use C and CXX languages #2467 https://github.com/xtensor-stack/xtensor/pull/2467

  • Fix erroneous less_equal usage in is_sorted calls #2471 https://github.com/xtensor-stack/xtensor/pull/2471

  • Adding xt::missing to operator() #2488 https://github.com/xtensor-stack/xtensor/pull/2488

  • Silence unused variable warning GCC #2494 https://github.com/xtensor-stack/xtensor/pull/2494

  • Adding xt::missing functionality to .periodic(…), .at(…), and .in_bounds(…) #2493 https://github.com/xtensor-stack/xtensor/pull/2493

  • Fixing internal types #2492 https://github.com/xtensor-stack/xtensor/pull/2492

  • Adding size assertion .flat(i) + adding a few tests on size assertions #2388 https://github.com/xtensor-stack/xtensor/pull/2388

  • Adding free function xt::strides #2489 https://github.com/xtensor-stack/xtensor/pull/2489

0.24.0

  • Comparison of shapes with differnt types is now supported #2393 https://github.com/xtensor-stack/xtensor/pull/2393

  • Ported tests to doctest #2405 https://github.com/xtensor-stack/xtensor/pull/2405

  • Updated docs of argmin and argmax #2425 https://github.com/xtensor-stack/xtensor/pull/2425

  • blockwise reducers intital implementation #2415 https://github.com/xtensor-stack/xtensor/pull/2415

  • Fixed comparison of double in some tests #2436 https://github.com/xtensor-stack/xtensor/pull/2436

  • Upgraded to xsimd 8 #2438 https://github.com/xtensor-stack/xtensor/pull/2438

0.23.10

  • Performance fix: set m_strides_computed = true after computing #2377 https://github.com/xtensor-stack/xtensor/pull/2377

  • argsort: catching zeros stride leading axis (bugfix) #2238 https://github.com/xtensor-stack/xtensor/pull/2238

  • Adding .flat(i) #2356 https://github.com/xtensor-stack/xtensor/pull/2356

  • Fixed check_index function #2378 https://github.com/xtensor-stack/xtensor/pull/2378

  • Fixing & -> && in histogram #2386 https://github.com/xtensor-stack/xtensor/pull/2386

  • Adding front() and back() convenience methods #2385 https://github.com/xtensor-stack/xtensor/pull/2385

  • Adding description of index operators #2387 https://github.com/xtensor-stack/xtensor/pull/2387

  • flip: adding overload without axis (mimics NumPy) #2373 https://github.com/xtensor-stack/xtensor/pull/2373

  • average: fixing overload issue for axis argument #2374 https://github.com/xtensor-stack/xtensor/pull/2374

0.23.9

  • Fix data_offset method in xview to compute the strides only once #2371 https://github.com/xtensor-stack/xtensor/pull/2371

0.23.8

  • Specialize operator= when RHS is chunked #2367 https://github.com/xtensor-stack/xtensor/pull/2367

0.23.7

  • Fixed chunked_iterator #2365 https://github.com/xtensor-stack/xtensor/pull/2365

0.23.6

  • Update installation instructions to mention mamba #2357 https://github.com/xtensor-stack/xtensor/pull/2357

  • Fixed grid_shape return type #2360 https://github.com/xtensor-stack/xtensor/pull/2360

  • Added assertion in resize method #2361 https://github.com/xtensor-stack/xtensor/pull/2361

  • Added const chunk iterators #2362 https://github.com/xtensor-stack/xtensor/pull/2362

  • Fixed chunk assignment #2363 https://github.com/xtensor-stack/xtensor/pull/2363

0.23.5

  • No need to explicitly install blas anymore with latest xtensor-blas #2343 https://github.com/xtensor-stack/xtensor/pull/2343

  • FIX for xtensor-stack/xtl/issues/245 #2344 https://github.com/xtensor-stack/xtensor/pull/2344

  • Implement grid view #2346 https://github.com/xtensor-stack/xtensor/pull/2346

  • Refactoring of xchunked_view #2353 https://github.com/xtensor-stack/xtensor/pull/2353

0.23.4

  • Fix edge chunk assignment #2342 https://github.com/xtensor-stack/xtensor/pull/2342

0.23.3

  • Use the correct version file for TBB since 2021.1 #2334 https://github.com/xtensor-stack/xtensor/pull/2334

  • Add missing API RTD for nan functions #2333 https://github.com/xtensor-stack/xtensor/pull/2333

  • Fixed layout issue in container classes #2335 https://github.com/xtensor-stack/xtensor/pull/2335

  • Fixed assignment of a tensor_view on a pseudo-container #2336 https://github.com/xtensor-stack/xtensor/pull/2336

  • Fixed return type of data method #2338 https://github.com/xtensor-stack/xtensor/pull/2338

  • Fixed assignment to flatten view #2339 https://github.com/xtensor-stack/xtensor/pull/2339

0.23.2

  • MSVC Build: Wrapped linker flags in quotes #2299 https://github.com/xtensor-stack/xtensor/pull/2299

  • Added can_assign and enable_assignable_expression #2323 https://github.com/xtensor-stack/xtensor/pull/2323

  • Fix automatically generated tests #2313 https://github.com/xtensor-stack/xtensor/pull/2313

  • Fix linspace endpoint bug #2306 https://github.com/xtensor-stack/xtensor/pull/2306

  • Added fallback to old behavior in FindTBB.cmake #2325 https://github.com/xtensor-stack/xtensor/pull/2325

  • Implement nanmin and nanmax #2314 https://github.com/xtensor-stack/xtensor/pull/2314

  • Clean up and add more tests for nanmin and nanmax #2326 https://github.com/xtensor-stack/xtensor/pull/2326

  • Fix linespace with only one point #2327 https://github.com/xtensor-stack/xtensor/pull/2327

  • Fixed ambiguous call of tile #2329 https://github.com/xtensor-stack/xtensor/pull/2329

0.23.1

  • Fix compilation warnings on unused local typedefs #2295 https://github.com/xtensor-stack/xtensor/pull/2295

  • Disable a failing shuffle test for clang #2294 https://github.com/xtensor-stack/xtensor/pull/2294

  • Fix simd assign_data #2292 https://github.com/xtensor-stack/xtensor/pull/2292

  • Fix -Wshadow and -Wunused-local-typedef warning #2293 https://github.com/xtensor-stack/xtensor/pull/2293

  • Documentation improvement Part #B #2287 https://github.com/xtensor-stack/xtensor/pull/2287

0.23.0

Breaking changes

  • Remove chunked array extension mechanism #2283

  • Upgraded to xtl 0.7.0 #2284

Other changes

  • Harmonize #include statements in doc #2280

  • Added missing shape_type in xfunctor_stepper #2285

0.22.0

Breaking changes

  • Drop support of 3.* Clang versions #2251

  • Fix reducers assignment #2254

  • Removed reducer big_promote_type #2277

Other changes

  • Improve histogram performance with equal bin sizes #2088

  • Added missing header in xfixed #2225

  • Implement xt::random::choice with weights vector #2241

  • Testing alignment #2246

  • Add reducers tests #2252

  • Fix binary operators on complex #2253

  • Removed not implemented assign method from xchunked_array #2256

  • Support initialized list for chunked_array shapes #2258

  • Add as_strided free function #2261

  • Fix histogram compatibility with containers beyond xtensor #2263

  • Fixed broadcasting with keep_slice that holds a single element #2270

  • Make xt::cast and xtl::optional compatible #2271

  • Fix minor warnings detected by clang #2272

  • Extra assert in mean computation wrt. ddof #2273

  • Provide a -Werror mode and ensure xtensor passes with it #2274

  • Moved layout_remove_any to xlayout.hpp #2275

  • Provide a -Werror mode and ensure xtensor passes with it #2274

  • Slight reorganization of the documentation #2276

  • Updated reducer docs according to recent changes #2278

  • Added template parameter for initial value type in accumulators #2279

0.21.10

  • Document chunked arrays #2102

  • Removed zarray files #2221

  • Improved xeval #2223

  • Fixed various warnings #2224

0.21.9

  • Adding macro XTENSOR_SELECT_ALIGN #2152

  • xcontainer.hpp: Renamed a shadowing type name inside a function #2208

  • Add chunk_memory_layout to chunked_array factory #2211

  • CMake: Modernized GTest-integration #2212

  • xnpy.hpp: fix multiple definition of ‘host_endian_char’ variable when included in different linked objects #2214

  • Made global variable const to force internal linkage #2216

  • Use xtl::endianness instead of bundling it #2218

  • Fix call to resize of chunk container #2219

0.21.8

  • Fix undefined behavior while testing shifts #2175

  • Fix zarray initialization from zarray #2180

  • Portable and generic implementation of endianess detection #2182

  • Fix xnpy save padding computation #2183

  • Only use -march=native if it’s available #2184

  • Fix xchunked_array assignment #2177

  • Add specific xchunked_array constructor for xchunk_store_manager #2188

  • Make xnpy tests aware of both little and big endian targets #2189

  • Fixed constructors of xchunked_array #2190

  • First implementation of zchunked_wrapper #2193

  • Don’t mark dirty a resized or reshaped xfile_array #2194

  • Replaced catch-all constructor of zarray with more restrictive ones #2195

  • Fixed SFINAE based on xchunked_store_manager #2197

  • Fix generated cmake config to include missing required lib #2200

  • Add set_chunk_shape to the first chunk of the pool #2198

  • Chunked array refactoring #2201

  • Refactored xchunked_array semantic #2202

  • Added missing header to CMakeLists.txt #2203

  • Fixed load_simd for xcomplex #2204

  • Upgraded to xtl 0.6.20 #2206

  • changed std traits to new xtl::xtraits #2205

  • xstorage.hpp: Renamed a shadowing variable inside a function #2207

0.21.7

  • Removed zheaders from single header #2157

  • Implemented insertion of range and intializer list in svector #2165

  • Adding has_shape #2163

  • Adding get_rank and has_fixed_rank #2162

  • Zrefactoring #2140

  • Added missing header #2169

  • Extending docs random #2173

0.21.6

  • Added implementation of isin and in1d #2021

  • Wrote single include header #2031

  • Added details for xt::random to docs #2043

  • Added digitize, searchsorted, and bin_items #2037

  • Fixed error with zero tensor size in xt::mean #2047

  • Fixed initialization order in xfunction #2050

  • adapt_smart_ptr overloads now accept STL-like container as shape #2052

  • Added xchunked_array #2076

  • xchunked_array inherits from xiterable #2082

  • xchunked_array inherits from xcontainer_semantic #2083

  • Fixed assignment operator of xchunked_array #2084

  • Added constructors from xexpression and chunk_shape to xchunked_array #2087

  • Fixed chunk layout #2091

  • Copy constructor gets expression’s chunk_shape if it is chunked #2092

  • Replaced template parameter chunk_type with chunk_storage #2095

  • Implemented on-disk chunked array #2096

  • Implemented chunk pool in xchunk_store_manager #2099

  • xfile_array is now an expression #2107

  • xchunked_array code cleanup #2109

  • xchunked_store_manager code cleanup #2110

  • Refactored xfile_array #2117

  • Added simd accessors to xfil_array_container #2118

  • Abstracted file format through a formal class #2115

  • Added xchunked_array extension template #2122

  • Refactored xdisk_io_handler #2123

  • Fixed exception for file write operation #2125

  • Implemented zarray #2127

  • Implemented the skeleton of the dynamic expression system #2129

  • Implemented zfunctions, equivalent of xfunction for dynamic expression system #2130

  • Implemented allocate_result in zfunction #2132

  • Implemented assign mechanism for zarray #2133

  • Added xindex_path to transform indexes into path #2131

  • Fixing various compiler warnings #2145

  • Removed conversion and initialization warnings #2141

0.21.5

  • Fix segfault when using xt::drop on an empty list of indices #1990

  • Implemented missing methods in xrepeat class #1993

  • Added extension base to xrepeat and clean up xbroadcast #1994

  • Fix return type of nanmean and add unittest #1996

  • Add result type template argument for stddev, variance, nanstd and nanvar #1999

  • Fix variance overload #2002

  • Added missing xaxis_slice_iterator header to CMakeLists.txt #2009

  • Fixed xview on const keep and const drop slices #2010

  • Added static_assert to adapt methods #2015

  • Removed allocator deprecated calls #2018

  • Added missing overload of push_back to svector #2024

  • Initialized all members of xfunciton_cache_impl #2026

0.21.4

  • Fix warning -Wsign-conversion in xview #1902

  • Fixed issue due to thread_local storage on some architectures #1905

  • benchmark/CMakeLists.txt: fixed a tiny spelling mistake #1904

  • nd-iterator implementation #1891

  • Add GoatCounter analytics for the documentation #1908

  • Added noexcept in svector #1919

  • Add implementation of repeat (similar to NumPy) #1896

  • Fix initialization of out shape in xt::tile #1923

  • xaxis_slice_iterator – Iterates over 1D slices oriented along the specified axis #1916

  • Fixed cxx11 lib guard #1925

  • Fixed CXX11 ABI when _GLIBCXX_USE_DUAL_ABI is set to 0 #1927

  • Enabling array-bounds warning #1933

  • Fixed warnings #1934

  • Compile with g++ instead of gcc, clarify include directories #1938

  • broadcast function now accepts fixed shapes #1939

  • Don’t print decimal point after inf or nan #1940

  • Improved performance of xt::tile #1943

  • Refactoring CI #1942

  • Documentation build: Switched to channel QuantStack #1948

  • Removed warnings due to gtest upgrade #1949

  • Fixed flatten view of view #1950

  • Improved narrative documentation of reducers #1958

  • Add test for printing xarray of type size_t #1947

  • Added documentation for iterators #1961

  • Fixed check_element_index behavior for 0-D expressions #1965

  • Fixed element method of xreducer #1966

  • Fixed cast for third-party types #1967

  • fix xoperation #1790

  • Added installation instruction with MinGW #1969

  • xrepeat now stores const_xclosure_t<E> instead of E #1968

  • Fixed argpartition leading axis test #1971

  • Added tests with C++20 enabled #1974

  • Added documentation for repeat #1975

  • Fixed sort and partition #1976

  • xt::view now supports negative indices #1979

0.21.3

  • Allow use of cmake add_subdirectory(xtensor) by checking for xtl target #1865

  • Simplifying CMake config #1856

  • Fixed reshape with signed integers #1867

  • Disabled MSVC iterator checks #1874

  • Added covariance function #1847

  • Fix for older cmake #1880

  • Added row and col facade for 2-D contianers #1876

  • Implementation of xt::tile #1888

  • Fixed reshape return #1886

  • Enabled add_subdirectory for xsimd #1889

  • Support ddof argument for xt::variance #1893

  • Set -march=native only if the user did not set another -march already #1899

  • Assemble new container in xpad #1808

0.21.2

  • Upgraded to gtest 1.10.0 #1859

  • Upgraded to xsimd 7.4.4 #1864

  • Removed allocator deprecated calls #1862

0.21.1

  • Added circular includes check #1853

  • Removed cricular dependencies #1854

0.21.0

Breaking changes

  • Dynamic SIMD assign #1762

Other changes

  • Updated links to other projects #1773

  • Updated license #1774

  • Updated related projects #1775

  • Fixed has_simd_interface for non existing simd_return_type #1779

  • Added average overload for default equal weights #1789

  • Implemented concatenation of fixed_shape tensors #1793

  • Replaced new with unique_ptr in headers #1800

  • Fixed reallocation when an xbuffer is copied over #1799

  • Added hte ability to use the library with -fnoexception #1801

  • Minor efficiency improvement #1807

  • Unified xt::concatenate and xt::concatenate_fixed #1805

  • Have reshape method return a reference to self #1813

  • Enabling tests of xtensor_fixed on Windows with clang. #1815

  • Disabled SIMD assignment when bool conversion occurs #1818

  • Speed up views, added SIMD interface to strided views #1627

  • Fixed assignment of scalar to complex #1828

  • Fixed concurrency issue in flat_expression_adaptor #1831

  • Implemented an equivalent to numpy.roll #1823

  • Upgraded to xtl 0.6.9 #1839

  • Fixed type of OpenMP’s index variable on Windows #1838

  • Implemented hstack and vstack #1841

  • Implemented hsplit and vsplit #1842

  • Fixed behavior of diff when n is greater thant the number of elements #1843

  • Added treshold to OpenMP parallelization #1849

  • Added missing assign operator in xmasked_view #1850

  • Updated CMake target #1851

0.20.10

  • Simplified functors definition #1756

  • Fixed container_simd_return_type #1759

  • Fixed reducer init for xtensor_fixed value type #1761

0.20.9

  • Added alias to check if type is xsemantic_base #1673

  • Added missing include xoperation.hpp #1674

  • Moved XSIMD and TBB dependencies to tests only #1676

  • Added missing coma #1680

  • Added NumPy-like parameter in load_csv #1682

  • Added shape() method to xshape.hpp #1592

  • Added shape print tip to docs #1693

  • Fix lvalue npy_file heap corruption in MSVC #1697

  • Fix UB when parsing 1-dimension npy #1696

  • Fixed compiler error (missing shape method in xbroadcast and xscalar) #1699

  • Added: deg2rad, rad2deg, degrees, radians #1700

  • Despecialized xt::to_json and xt::from_json #1691

  • Added coverity #1577

  • Additional configuration for future coverity branch #1712

  • More tests for coverity #1714

  • Update README.md for Conan installation instructions #1717

  • Reset stream’s flags after output operation #1718

  • Added missing include in xview.hpp #1719

  • Removed usage of allocator’s members that are deprecated in C++17 #1720

  • Added tests for mixed assignment #1721

  • Fixed step_simd when underlying iterator holds an xscalar_stepper #1724

  • Fixed accumulator for empty arrays #1725

  • Use temporary_type in implementation of xt::diff #1727

  • CMakeLists.txt: bumped up xsimd required version to 7.2.6 #1728

  • Fixed reducers on empty arrays #1729

  • Implemented additional random distributions #1708

  • Fixed reducers: passing the same axis many times now throws #1730

  • Made xfixed_container optionally sharable #1733

  • step_simd template parameter is now the value type instead of the simd type #1736

  • Implemented OpenMP Parallelization. #1739

  • Readme improvements #1741

  • Vectorized xt::where #1738

  • Fix typos and wording in documentation #1745

  • Upgraded to xtl 0.6.6. and xsimd 7.4.0 #1747

  • Improve return value type for nanmean #1749

  • Allows (de)serialization of xexpressions in NumPy formatted strings and streams #1751

  • Enabled vectorization of boolean operations #1748

  • Added the list of contributors #1755

0.20.8

  • Added traversal order to argwhere and filter #1672

  • flatten now returns the new type xtensor_view #1671

  • Error case handling in concatenate #1669

  • Added assign operator from temporary_type in xiterator_adaptor #1668

  • Improved index_view examples #1667

  • Updated build option section of the documentation #1666

  • Made xsequence_view convertible to arbitrary sequence type providing iterators #1657

  • Added overload of is_linear for expressions without strides method #1655

  • Fixed reverse arange #1653

  • Add warnings for random number generation #1652

  • Added common pitfalls section in the documentation #1649

  • Added missing shape overload in xfunction #1650

  • Made xconst_accessible::shape(std::size_t) visible in xview #1645

  • Diff: added bounds-check on maximal recursion #1640

  • Add xframe to related projects #1635

  • Update indice.rst #1626

  • Remove unecessary arguments #1624

  • Replace auto with explicit return type in make_xshared #1621

  • Add z5 to related projects #1620

  • Fixed long double complex offset views #1614

  • Fixed xpad bugs #1607

  • Workaround for annoying bug in VS2017 #1602

0.20.7

  • Fix reshape view assignment and allow setting traversal order #1598

0.20.6

  • Added XTENSOR_DEFAULT_ALIGNMENT macro #1597

  • Added missing comparison operators for const_array #1596

  • Fixed reducer for expression with shape containing 0 #1595

  • Very minor spelling checks in comments #1591

  • tests can be built in debug mode #1589

  • strided views constructors forward shape argument #1587

  • Remove unused type alias #1585

  • Fixed reducers with empty list of axes #1582

  • Fix typo in builder docs #1581

  • Fixed return type of data in xstrided_view #1580

  • Fixed reducers on expression with shape containing 1 as first elements #1579

  • Fixed xview::element for range with more elements than view’s dimension #1578

  • Fixed broadcasting of shape containing 0-sized dimensions #1575

  • Fixed norm return type for complex #1574

  • Fixed iterator incremented or decremented by 0 #1572

  • Added complex exponential test #1571

  • Strided views refactoring #1569

  • Add clang-cl support #1559

0.20.5

  • Fixed conj #1556

  • Fixed real, imag, and functor_view #1554

  • Allows to include xsimd without defining XTENSOR_USE_XSIMD #1548

  • Fixed argsort in column major #1547

  • Fixed assign_to for arange on double #1541

  • Fix example code in container.rst #1544

  • Removed return value from step_leading #1536

  • Bugfix: amax #1533

  • Removed extra ; #1527

0.20.4

  • Buffer adaptor default constructor #1524

0.20.3

  • Fix xbuffer adaptor #1523

0.20.2

  • Fixed broadcast linear assign #1493

  • Fixed do_stirdes_match #1497

  • Removed unused capture #1499

  • Upgraded to xtl 0.6.2 #1502

  • Added missing methods in xshared_expression #1503

  • Fixed iterator types of xcontainer #1504

  • Typo correction in external-structure.rst #1505

  • Added extension base to adaptors #1507

  • Fixed shared expression iterator methods #1509

  • Strided view fixes #1512

  • Improved range documentation #1515

  • Fixed ravel and flatten implementation #1511

  • Fixed xfixed_adaptor temporary assign #1516

  • Changed struct -> class in xiterator_adaptor #1513

  • Fxed argmax for expressions with strides 0 #1519

  • Add has_linear_assign to sdynamic_view #1520

0.20.1

  • Add a test for mimetype rendering and fix forward declaration #1490

  • Fix special case of view iteration #1491

0.20.0

Breaking changes

  • Removed xmasked_value and promote_type_t #1389

  • Removed deprecated type slice_vector #1459

  • Upgraded to xtl 0.6.1 #1468

  • Added keep_dims option to reducers #1474

  • do_strides_match now accept an addition base stride value #1479

Other changes

  • Add partition, argpartition and median #991

  • Fix tets on avx512 #1410

  • Implemented xcommon_tensor_t with tests #1412

  • Code reorganization #1416

  • reshape now accepts initializer_list parameter #1417

  • Improved documentation #1419

  • Fixed noexcept specifier #1418

  • view now accepts lvalue slices #1420

  • Removed warnings #1422

  • Added reshape member to xgenerator to make arange more flexible #1421

  • Add std::decay_t to shape_type in strided view #1425

  • Generic reshape for xgenerator #1426

  • Fix out of bounds accessing in xview::compute_strides #1437

  • Added quick reference section to documentation #1438

  • Improved getting started CMakeLists.txt #1440

  • Added periodic indices #1430

  • Added build section to narrative documentation #1442

  • Fixed linspace corner case #1443

  • Fixed type-o in documentation #1446

  • Added xt::xpad #1441

  • Added warning in resize documentation #1447

  • Added in_bounds method #1444

  • xstrided_view_base is now a CRTP base class #1453

  • Turned xfunctor_applier_base into a CRTP base class #1455

  • Removed out of bound access in data_offset #1456

  • Added xaccessible base class #1451

  • Refactored operator[] #1460

  • Splitted xaccessible #1461

  • Refactored size #1462

  • Implemented nanvar and nanstd with tests #1424

  • Removed warnings #1463

  • Added periodic and in_bounds method to xoptional_assembly_base #1464

  • Updated documentation according to last changes #1465

  • Fixed flatten_sort_result_type #1470

  • Fixed unique with expressions not defining temporary_type #1472

  • Fixed xstrided_view_base constructor #1473

  • Avoid signed integer overflow in integer printer #1475

  • Fixed xview::inner_backstrides_type #1480

  • Fixed compiler warnings #1481

  • slice_implementation_getter now forwards its lice argument #1486

  • linspace can now be reshaped #1488

0.19.4

  • Add missing include #1391

  • Fixes in xfunctor_view #1393

  • Add tests for xfunctor_view #1395

  • Add empty method to fixed_shape #1396

  • Add accessors to slice members #1401

  • Allow adaptors on shared pointers #1218

  • Fix eye with negative index #1406

  • Add documentation for shared pointer adaptor #1407

  • Add nanmean function #1408

0.19.3

  • Fix arange #1361.

  • Adaptors for C stack-allocated arrays #1363.

  • Add support for optionals in conditional_ternary #1365.

  • Add tests for ternary operator on xoptionals #1368.

  • Enable ternary operation for a mix of xoptional<value> and value #1370.

  • reduce now accepts a single reduction function #1371.

  • Implemented share method #1372.

  • Documentation of shared improved #1373.

  • make_lambda_xfunction more generic #1374.

  • minimum/maximum for xoptional #1378.

  • Added missing methods in uvector and svector #1379.

  • Clip xoptional_assembly #1380.

  • Improve gtest cmake #1382.

  • Implement ternary operator for scalars #1385.

  • Added missing at method in uvector and svector #1386.

  • Fixup binder environment #1387.

  • Fixed resize and swap of svector #1388.

0.19.2

  • Enable CI for C++17 #1324.

  • Fix assignment of masked views #1328.

  • Set CMAKE_CXX_STANDARD instead of CMAKE_CXX_FLAGS #1330.

  • Allow specifying traversal order to argmin and argmax #1331.

  • Update section on differences with NumPy #1336.

  • Fix accumulators for shapes containing 1 #1337.

  • Decouple XTENSOR_DEFAULT_LAYOUT and XTENSOR_DEFAULT_TRAVERSAL #1339.

  • Prevent embiguity with xsimd::reduce #1343.

  • Require xtl 0.5.3 #1346.

  • Use concepts instead of SFINAE #1347.

  • Document good practice for xtensor-based API design #1348.

  • Fix rich display of tensor expressions #1353.

  • Fix xview on fixed tensor #1354.

  • Fix issue with keep_slice in case of dynamic_view on view #1355.

  • Prevent installation of gtest artifacts #1357.

0.19.1

  • Add string specialization to lexical_cast #1281.

  • Added HDF5 reference for xtensor-io #1284.

  • Fixed view index remap issue #1288.

  • Fixed gcc 8.2 deleted functions #1289.

  • Fixed reducer for 0d input #1292.

  • Fixed check_element_index #1295.

  • Added comparison functions #1297.

  • Add some tests to ensure chrono works with xexpressions #1272.

  • Refactor functor_view #1276.

  • Documentation improved #1302.

  • Implementation of shift operators #1304.

  • Make functor adaptor stepper work for proxy specializations #1305.

  • Replaced auto& with auto&& in assign_to #1306.

  • Fix namespace in xview_utils.hpp #1308.

  • Introducing flatten_indices and unravel_indices #1300.

  • Default layout parameter for ravel #1311.

  • Fixed xvie_stepper #1317.

  • Fixed assignment of view on view #1314.

  • Documented indices #1318.

  • Fixed shift operators return type #1319.

0.19.0

Breaking changes

  • Upgraded to xtl 0.5 #1275.

Other changes

  • Removed type-o in docs, minor code style consistency update #1255.

  • Removed most of the warnings #1261.

  • Optional bitwise fixed #1263.

  • Prevent macro expansion in std::max #1265.

  • Update numpy.rst #1267.

  • Update getting_started.rst #1268.

  • keep and drop step_size fixed #1270.

  • Fixed typo in xadapt #1277.

  • Fixed typo #1278.

0.18.3

  • Exporting optional dependencies #1253.

  • 0-D HTML rendering #1252.

  • Include nlohmann_json in xio for mime bundle repr #1251.

  • Fixup xview scalar assignment #1250.

  • Implemented from_indices #1240.

  • xtensor_forward.hpp cleanup #1243.

  • default layout-type for unravel_from_strides and unravel_index #1239.

  • xfunction iterator fix #1241.

  • xstepper fixes #1237.

  • print_options io manipulators #1231.

  • Add syntactic sugar for reducer on single axis #1228.

  • Added view vs. adapt benchmark #1229.

  • added precisions to the installation instructions #1226.

  • removed data interface from dynamic view #1225.

  • add xio docs #1223.

  • Fixup xview assignment #1216.

  • documentation updated to be consistent with last changes #1214.

  • prevents macro expansion of std::max #1213.

  • Fix minor typos #1212.

  • Added missing assign operator in xstrided_view #1210.

  • argmax on axis with single element fixed #1209.

0.18.2

  • expression tag system fixed #1207.

  • optional extension for generator #1206.

  • optional extension for xview #1205.

  • optional extension for xstrided_view #1204.

  • optional extension for reducer #1203.

  • optional extension for xindex_view #1202.

  • optional extension for xfunctor_view #1201.

  • optional extension for broadcast #1198.

  • extension API and code cleanup #1197.

  • xscalar optional refactoring #1196.

  • Extension mechanism #1192.

  • Many small fixes #1191.

  • Slight refactoring in step_size logic #1188.

  • Fixup call of const overload in assembly storage #1187.

0.18.1

  • Fixup xio forward declaration #1185.

0.18.0

Breaking changes

  • Assign and trivial_broadcast refactoring #1150.

  • Moved array manipulation functions (transpose, ravel, flatten, trim_zeros, squeeze, expand_dims, split, atleast_Nd, atleast_1d, atleast_2d, atleast_3d, flip) from xstrided_view.hpp to xmanipulation.hpp #1153.

  • iterator API improved #1155.

  • Fixed where and nonzero function behavior to mimic the behavior from NumPy #1157.

  • xsimd and functor refactoring #1173.

New features

  • Implement rot90 #1153.

  • Implement argwhere and flatnonzero #1157.

  • Implemented xexpression_holder #1164.

Other changes

  • Warnings removed #1159.

  • Added missing include #1162.

  • Removed unused type alias in xmath/average #1163.

  • Slices improved #1168.

  • Fixed xdrop_slice #1181.

0.17.4

  • perfect forwarding in xoptional_function constructor #1101.

  • fix issue with base_simd #1103.

  • XTENSOR_ASSERT fixed on Windows #1104.

  • Implement xmasked_value #1032.

  • Added setdiff1d using stl interface #1109.

  • Added test case for setdiff1d #1110.

  • Added missing reference to diff in From NumPy to xtensor section #1116.

  • Add amax and amin to the documentation #1121.

  • histogram and histogram_bin_edges implementation #1108.

  • Added NumPy comparison for interp #1111.

  • Allow multiple return type reducer functions #1113.

  • Fixes average bug + adds NumPy based tests #1118.

  • Static xfunction cache for fixed sizes #1105.

  • Add negative reshaping axis #1120.

  • Updated xmasked_view using xmasked_value #1074.

  • Clean documentation for views #1131.

  • Build with xsimd on Windows fixed #1127.

  • Implement mime_bundle_repr for xmasked_view #1132.

  • Modify shuffle to use identical algorithms for any number of dimensions #1135.

  • Warnings removal on windows #1139.

  • Add permutation function to random #1141.

  • xfunction_iterator permutation #933.

  • Add bincount to xhistogram #1140.

  • Add contiguous iterable base class and remove layout param from storage iterator #1057.

  • Add storage_iterator to view and strided view #1045.

  • Removes data_element from xoptional #1137.

  • xtensor default constructor and scalar assign fixed #1148.

  • Add resize / reshape to xfixed_container #1147.

  • Iterable refactoring #1149.

  • inner_strides_type imported in xstrided_view #1151.

0.17.3

  • xslice fix #1099.

  • added missing static_layout in xmasked_view #1100.

0.17.2

  • Add experimental TBB support for parallelized multicore assign #948.

  • Add inline statement to all functions in xnpy #1097.

  • Fix strided assign for certain assignments #1095.

  • CMake, remove gtest warnings #1085.

  • Add conversion operators to slices #1093.

  • Add optimization to unchecked accessors when contiguous layout is known #1060.

  • Speedup assign by computing any layout on vectors #1063.

  • Skip resizing for fixed shapes #1072.

  • Add xsimd apply to xcomplex functors (conj, norm, arg) #1086.

  • Propagate contiguous layout through views #1039.

  • Fix C++17 ambiguity for GCC 7 #1081.

  • Correct shape type in argmin, fix svector growth #1079.

  • Add interp function to xmath #1071.

  • Fix valgrind warnings + memory leak in xadapt #1078.

  • Remove more clang warnings & errors on OS X #1077.

  • Add move constructor from xtensor <-> xarray #1051.

  • Add global support for negative axes in reducers/accumulators allow multiple axes in average #1010.

  • Fix reference usage in xio #1076.

  • Remove occurences of std::size_t and double #1073.

  • Add missing parantheses around min/max for MSVC #1061.

0.17.1

  • Add std namespace to size_t everywhere, remove std::copysign for MSVC #1053.

  • Fix (wrong) bracket warnings for older clang versions (e.g. clang 5 on OS X) #1050.

  • Fix strided view on view by using std::addressof #1049.

  • Add more adapt functions and shorthands #1043.

  • Improve CRTP base class detection #1041.

  • Fix rebind container ambiguous template for C++17 / GCC 8 regression #1038.

  • Fix functor return value #1035.

0.17.0

Breaking changes

  • Changed strides to std::ptrdiff_t #925.

  • Renamed count_nonzeros in count_nonzero #974.

  • homogenize xfixed constructors #970.

  • Improve random::choice #1011.

New features

  • add signed char to npy deserialization format #1017.

  • simd assignment now requires convertible types instead of same type #1000.

  • shared expression and automatic xclosure detection #992.

  • average function #987.

  • added simd support for complex #985.

  • argsort function #977.

  • propagate fixed shape #922.

  • added xdrop_slice #972.

  • added doc for xmasked_view #971.

  • added xmasked_view #969.

  • added dynamic_view #966.

  • added ability to use negative indices in keep slice #964.

  • added an easy way to create lambda expressions, square and cube #961.

  • noalias on rvalue #965.

Other changes

  • xshared_expression fixed #1025.

  • fix make_xshared #1024.

  • add tests to evaluate shared expressions #1019.

  • fix where on xview #1012.

  • basic usage replaced with getting started #1004.

  • avoided installation failure in absence of nlohmann_json #1001.

  • code and documentation clean up #998.

  • removed g++ “pedantic” compiler warnings #997.

  • added missing header in basic_usage.rst #996.

  • warning pass #990.

  • added missing include in xview #989.

  • added missing <map> include #983.

  • xislice refactoring #962.

  • added missing operators to noalias #932.

  • cmake fix for Intel compiler on Windows #951.

  • fixed xsimd abs deduction #946.

  • added islice example to view doc #940.

0.16.4

  • removed usage of std::transfomr in assign #868.

  • add strided assignment #901.

  • simd activated for conditional ternary functor #903.

  • xstrided_view split #905.

  • assigning an expression to a view throws if it has more dimensions #910.

  • faster random #913.

  • xoptional_assembly_base storage type #915.

  • new tests and warning pass #916.

  • norm immediate reducer #924.

  • add reshape_view #927.

  • fix immediate reducers with 0 strides #935.

0.16.3

  • simd on mathematical functions fixed #886.

  • fill method added to containers #887.

  • access with more arguments than dimensions #889.

  • unchecked method implemented #890.

  • fill method implemented in view #893.

  • documentation fixed and warnings removed #894.

  • negative slices and new range syntax #895.

  • xview_stepper with implicit xt::all bug fix #899.

0.16.2

  • Add include of xview.hpp in example #884.

  • Remove FS identifier #885.

0.16.1

  • Workaround for Visual Studio Bug #858.

  • Fixup example notebook #861.

  • Prevent expansion of min and max macros on Windows #863.

  • Renamed m_data to m_storage #864.

  • Fix regression with respect to random access stepping with views #865.

  • Remove use of CS, DS and ES qualifiers for Solaris builds #866.

  • Removal of precision type #870.

  • Make json tests optional, bump xtl/xsimd versions #871.

  • Add more benchmarks #876.

  • Forbid simd fixed #877.

  • Add more asserts #879.

  • Add missing batch_bool typedef #881.

  • simd_return_type hack removed #882.

  • Removed test guard and fixed dimension check in xscalar #883.

0.16.0

Breaking changes

  • data renamed in storage, raw_data renamed in data #792.

  • Added layout template parameter to xstrided_view #796.

  • Remove equality operator from stepper #824.

  • dynamic_view renamed in strided_view #832.

  • xtensorf renamed in xtensor_fixed #846.

New features

  • Added strided view selector #765.

  • Added count_nonzeros #781.

  • Added implicit conversion to scalar in xview #788.

  • Added tracking allocators to xutils.hpp #789.

  • xindexslice and shuffle function #804.

  • Allow xadapt with dynamic layout #816.

  • Added xtensorf initialization from C array #819.

  • Added policy to allocation tracking for throw option #820.

  • Free function empty for construction from shape #827.

  • Support for JSON serialization and deserialization of xtensor expressions #830.

  • Add trapz function #837.

  • Add diff and trapz(y, x) functions #841.

Other changes

  • Added fast path for specific assigns #767.

  • Renamed internal macros to prevent collisions #772.

  • dynamic_view unwrapping #775.

  • xreducer_stepper copy semantic fixed #785.

  • xfunction copy constructor fixed #787.

  • warnings removed #791.

  • xscalar_stepper fixed #802.

  • Fixup xadapt on const pointers #809.

  • Fix in owning buffer adaptors #810.

  • Macros fixup #812.

  • More fixes in xadapt #813.

  • Mute unused variable warning #815.

  • Remove comparison of steppers in assign loop #823.

  • Fix reverse iterators #825.

  • gcc-8 fix for template method calls #833.

  • refactor benchmarks for upcoming release #842.

  • flip now returns a view #843.

  • initial warning pass #850.

  • Fix warning on diff function #851.

  • xsimd assignment fixed #852.

0.15.9

  • missing layout method in xfixed #777.

  • fixed uninitialized backstrides #774.

  • update xtensor-blas in binder #773.

0.15.8

  • comparison operators for slices #770.

  • use default-assignable layout for strided views. #769.

0.15.7

  • nan related functions #718.

  • return types fixed in dynamic view helper #722.

  • xview on constant expressions #723.

  • added decays to make const value_type compile #727.

  • iterator for constant strided_view fixed #729.

  • strided_view on xfunction fixed #732.

  • Fixes in xstrided_view #736.

  • View semantic (broadcast on assign) fixed #742.

  • Compilation prevented when using ellipsis with xview #743.

  • Index of xiterator set to shape when reaching the end #744.

  • xscalar fixed #748.

  • Updated README and related projects #749.

  • Perfect forwarding in xfunction and views #750.

  • Missing include in xassign.hpp #752.

  • More related projects in the README #754.

  • Fixed stride computation for xtensorf #755.

  • Added tests for backstrides #758.

  • Clean up has_raw_data ins strided view #759.

  • Switch to ptrdiff_t for slices #760.

  • Fixed xview strides computation #762.

  • Additional methods in slices, required for xframe #764.

0.15.6

  • zeros, ones, full and empty_like functions #686.

  • squeeze view #687.

  • bitwise shift left and shift right #688.

  • ellipsis, unique and trim functions #689.

  • xview iterator benchmark #696.

  • optimize stepper increment #697.

  • minmax reducers #698.

  • where fix with SIMD #704.

  • additional doc for scalars and views #705.

  • mixed arithmetic with SIMD #713.

  • broadcast fixed #717.

0.15.5

  • assign functions optimized #650.

  • transposed view fixed #652.

  • exceptions refactoring #654.

  • performances improved #655.

  • view data accessor fixed #660.

  • new dynamic view using variant #656.

  • alignment added to fixed xtensor #659.

  • code cleanup #664.

  • xtensorf and new dynamic view documentation #667.

  • qualify namespace for compute_size #665.

  • make xio use dynamic_view instead of view #662.

  • transposed view on any expression #671.

  • docs typos and grammar plus formatting #676.

  • index view test assertion fixed #680.

  • flatten view #678.

  • handle the case of pointers to const element in xadapt #679.

  • use quotes in #include statements for xtl #681.

  • additional constructors for svector #682.

  • removed test_xsemantics.hpp from test CMakeLists #684.

0.15.4

  • fix gcc-7 error w.r.t. the use of assert #648.

0.15.3

  • add missing headers to cmake installation and tests #647.

0.15.2

  • xshape implementation #572.

  • xfixed container #586.

  • protected xcontainer::derived_cast #627.

  • const reference fix #632.

  • xgenerator access operators fixed #643.

  • contiguous layout optiimzation #645.

0.15.1

  • xarray_adaptor fixed #618.

  • xtensor_adaptor fixed #620.

  • fix in xreducer steppers #622.

  • documentation improved #621. #623. #625.

  • warnings removed #624.

0.15.0

Breaking changes

  • change reshape to resize, and add throwing reshape #598.

  • moved to modern cmake #611.

New features

  • unravel function #589.

  • random access iterators #596.

Other changes

  • upgraded to google/benchmark version 1.3.0 #583.

  • XTENSOR_ASSERT renamed into XTENSOR_TRY, new XTENSOR_ASSERT #603.

  • adapt fixed #604.

  • VC14 warnings removed #608.

  • xfunctor_iterator is now a random access iterator #609.

  • removed old-style-cast warnings #610.

0.14.1

New features

  • sort, argmin and argmax #549.

  • xscalar_expression_tag #582.

Other changes

  • accumulator improvements #570.

  • benchmark cmake fixed #571.

  • allocator_type added to container interface #573.

  • allow conda-forge as fallback channel #575.

  • arithmetic mixing optional assemblies and scalars fixed #578.

  • arithmetic mixing optional assemblies and optionals fixed #579.

  • operator== restricted to xtensor and xoptional expressions #580.

0.14.0

Breaking changes

  • xadapt renamed into adapt #563.

  • Naming consistency #565.

New features

  • add random::choice #547.

  • evaluation strategy and accumulators. #550.

  • modulus operator #556.

  • adapt: default overload for 1D arrays #560.

  • Move semantic on adapt #564.

Other changes

  • optional fixes to avoid ambiguous calls #541.

  • narrative documentation about xt::adapt #544.

  • xfunction refactoring #545.

  • SIMD acceleration for AVX fixed #557.

  • allocator fixes #558. #559.

  • return type of view::strides() fixed #568.

0.13.2

  • Support for complex version of isclose #512.

  • Fixup static layout in xstrided_view #536.

  • xexpression::operator[] now take support any type of sequence #537.

  • Fixing xinfo issues for Visual Studio. #529.

  • Fix const-correctness in xstrided_view. #526.

0.13.1

  • More general floating point type #518.

  • Do not require functor to be passed via rvalue reference #519.

  • Documentation improved #520.

  • Fix in xreducer #521.

0.13.0

Breaking changes

  • The API for xbuffer_adaptor has changed. The template parameter is the type of the buffer, not just the value type #482.

  • Change edge_items print option to edgeitems for better NumPy consistency #489.

  • xtensor now depends on xtl version ~0.3.3 #508.

New features

  • Support for parsing the npy file format #465.

  • Creation of optional expressions from value and boolean expressions (optional assembly) #496.

  • Support for the explicit cast of expressions with different value types #491.

Other changes

  • Addition of broadcasting bitwise operators #459.

  • More efficient optional expression system #467.

  • Migration of benchmarks to the Google benchmark framework #473.

  • Container semantic and adaptor semantic merged #475.

  • Various fixes and improvements of the strided views #480. #481.

  • Assignment now performs basic type conversion #486.

  • Workaround for a compiler bug in Visual Studio 2017 #490.

  • MSVC 2017 workaround #492.

  • The size() method for containers now returns the total number of elements instead of the buffer size, which may differ when the smallest stride is greater than 1 #502.

  • The behavior of linspace with integral types has been made consistent with NumPy #510.

0.12.1

  • Fix issue with slicing when using heterogeneous integral types #451.

0.12.0

Breaking changes

  • xtensor now depends on xtl version 0.2.x #421.

New features

  • xtensor has an optional dependency on xsimd for enabling simd acceleration #426.

  • All expressions have an additional safe access function (at) #420.

  • norm functions #440.

  • closure_pointer used in iterators returning temporaries so their operator-> can be correctly defined #446.

  • expressions tags added so xtensor expression system can be extended #447.

Other changes

  • Preconditions and exceptions #409.

  • isclose is now symmetric #411.

  • concepts added #414.

  • narrowing cast for mixed arithmetic #432.

  • is_xexpression concept fixed #439.

  • void_t implementation fixed for compilers affected by C++14 defect CWG 1558 #448.

0.11.3

  • Fixed bug in length-1 statically dimensioned tensor construction #431.

0.11.2

  • Fixup compilation issue with latest clang compiler. (missing constexpr keyword) #407.

0.11.1

  • Fixes some warnings in julia and python bindings

0.11.0

Breaking changes

  • xbegin / xend, xcbegin / xcend, xrbegin / xrend and xcrbegin / xcrend methods replaced with classical begin / end, cbegin / cend, rbegin / rend and crbegin / crend methods. Old begin / end methods and their variants have been removed. #370.

  • xview now uses a const stepper when its underlying expression is const. #385.

Other changes

  • xview copy semantic and move semantic fixed. #377.

  • xoptional can be implicitly constructed from a scalar. #382.

  • build with Emscripten fixed. #388.

  • STL version detection improved. #396.

  • Implicit conversion between signed and unsigned integers fixed. #397.