Skip to content

Latest commit

 

History

History
83 lines (66 loc) · 4.45 KB

CHANGELOG.md

File metadata and controls

83 lines (66 loc) · 4.45 KB

Change Log

v2.2.6

  • Minor refactoring.
  • Tweaked dsga.natvis for better debugging experience.
  • Changed usage of std::array::operator [] to std::array::at() for bounds checking.
  • Overhauled dsga::mix() to use a faster algorithm than std::lerp().

v2.2.5

  • Extracted dsga::invoke() to its own example header, and modified it to work on a wide range of inputs.
  • Made all lambda captures specific.

v2.2.4

  • Added dsga::compXor() to perform xor operations on boolean values (as opposed to bitwise xor ^)
  • Added dsga::invoke() which returns a vector created by invoking an operation element-wise to a variable number of vectors (there must be at least 1) that are all the same size, but might be of different types
  • Upgraded to cxcm v1.2.0

v2.2.3

  • Upgraded to cxcm v1.1.10

v2.2.1

  • Replaced home-brew asserts with exceptions. Attempting to make safer through bounds checking and other input checking, enforced by throwing exceptions.
  • Upgraded to cxcm v1.1.8

v2.2.0

  • Reverted major changes between v2.0.5 and v2.1.4, so we no longer have the view structs that wrap a pointer. Wrapping a pointer turned the data structures from owning to non-owning for the view structs, but we want the vector and matrix structs to be owning. The point of the view experiment was built on lack of insight on the nature of owning vs. non-owning and what this library was trying to achieve.

Ancillary Changes

  • Updated/refacatored some examples.
  • Minor README refactoring.

v2.0.5

  • Fixed wrong matrix type (reversed dimensions) being returned from outerProduct().

v2.0.4

  • Added bool return types for a few lambdas.
  • Renamed logicalNot() to compNot(). Deprecated logicalNot().
  • Added compAnd() and compOr() functions to complement compNot().
  • Added missing scalar versions of non-geometric vector functions.
  • Added some asserts.

v2.0.3

  • Tolerance checking functions moved to examples/tolerance.hxx.

v2.0.2

  • Upgraded to cxcm v1.1.4.
  • Updated example iostream formatters for boolalpha output when appropriate.
  • Added Intel's icx/icpx compiler (for Windows) as one of the test compilers.
  • Potentially breaking change: removed an implicit dsga::basic_matrix constructor, now requiring the use of a constructor that is explicit.
  • Minor doc and repo maintenance.

v2.0.1

  • Added query() function (not in GLSL nor std::valarray) to vector_base. It works like apply(), but expects a boolean predicate, and returns a vector of boolean values instead of element type T.
  • Upgraded to cxcm v1.1.3.
  • Minor refactoring.

Ancillary Changes

  • Updated example iostream and std::format output to look like the c++23 std::format style for ranges.
  • Updated the MSVC debugger visualizer (dsga.natvis) to look like the c++23 std::format style for ranges.
  • Minor refactoring of some examples.

v2.0.0

  • Large Breaking Change - minimized how vectors of length == 1 behave as vectors. Most dsga operations and functions treat length == 1 vectors as scalars, returning scalar results (mostly through refactoring the underlying execution machinery). Use of the non-GLSL types iscal, uscal, bscal, scal, fscal, dscal, etc., is generally discouraged.
  • Small Breaking Change - reverted/removed std::initializer_list constructors added in v1.5.0.
  • Moved vector relational functions above the other vector functions (for use in assertions).
  • Added within_tolerance() comparison functions, that fit well with within_distance() and within_box().
  • Upgraded to cxcm v1.1.2.
  • Minor type constraint (concepts) refactoring.
  • Other minor refactoring.
  • Added changelog.

v1.5.0

  • Small Breaking Change - added std::initializer_list constructors to basic_vector and basic_matrix - if not enough components, then fill rest with zeros - if too many components, just use the components necessary to fill the vector or matrix.
  • Fixed indexed_vector iterator classes to use signed types for indexing into storage (fixes iterator subtraction and reverse_iterator usage, as the iterators are random-access).

v1.4.1

  • Minor refactoring.
  • Comment removal and/or updating.
  • Removed Microsoft VS2019 support (latest version of VS2019 does not compile dsga).

v1.4.0

  • Minor type constraint (concepts) refactoring.
  • Updating copyright dates.