Changelog

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.