All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Exposed macros for the implementation of the
DualNum
trait publicly. #83
- Expose the inner type of a generalized (hyper) dual number in the
DualNum
trait. #82
- Updated
nalgebra
dependency to 0.33. #75 - Updated
simba
dependency to 0.9. #75 - Updated
pyo3
andnumpy
dependencies to 0.22. #80 - Updated
ndarray
dependency to 0.16. #80 - Increased minimum supported Rust version to 1.81. #77
- Due to limitations in the
numpy
dependency, Python wheels for 32-bit Windows are no longer supported. #80
- Added
serde
feature that enables serialization and deserialization of all scalar dual numbers. #74
- Updated
pyo3
andnumpy
dependencies to 0.21 and adapted to the newBound
API.
- Un-deprecated the
linalg
module.
- Updated
pyo3
andnumpy
dependencies to 0.20.
- Added dedicated implementations for scalar dual numbers (
Dual
,Dual2
,HyperDual
) to avoid a performance regression introduced in0.7.0
. #68
- Added new
HyerHyperDual
number for the calculation of third partial derivatives. #51 - Added new functions
first_derivative
,gradient
,jacobian
,second_derivative
,hessian
,third_derivative
,second_partial_derivative
,partial_hessian
,third_partial_derivative
andthird_partial_derivative_vec
that provide a convenient interface for the calculation of derivatives. #52 - Added new functions
try_first_derivative
,try_gradient
,try_jacobian
,try_second_derivative
,try_hessian
,try_third_derivative
,try_second_partial_derivative
,try_partial_hessian
,try_third_partial_derivative
andtry_third_partial_derivative_vec
that provide the same functionalities for fallible functions. #52 - Implemented the
RealField
andComplexField
traits fromnalgebra
forDualVec
. #59 - Added the
python_macro
feature that provides theimpl_dual_num
macro. #63
- Renamed
derive*
methods toderivative*
. #52 - Generalized the implementation of vector dual numbers to use both statically and dynamically sized arrays internally. #58
- Removed
Copy
,Send
andSync
as supertraits ofDualNum
. The individual dual number data types still implement the traits if they are statically allocated. #58 - Renamed type aliases from, e.g.,
DualVec
toDualSVec
andDualDVec
for statically and dynamically allocated dual numbers, respectively. #58
- Removed the
StaticMat
struct in favor of the analogous implementations fromnalgebra
. #52 - Removed the
derive*
methods for vector types due to the change tonalgebra
. #52 - Removed the
derive*
functions in Python in favor of the aforementioned new functions. #52 - Removed the
build_wheel
workspace crate. The main crate is now also used to build the Python package. #63
- Publicly exposed all Python classes that are being generated. #47
- Exported the
impl_dual_num
macro that implements the arithmetic operators for dual numbers in Python. #47
- Updated
pyo3
andnumpy
dependencies to 0.18. #49
- Implemented
ScalarOperand
for non-scalar dual numbers. #46
- Added method
is_derivative_zero
to check whether all non-real parts of a generalized dual number are zero. #43
- Removed unused features and added missing
linalg
feature. #41
- Updated
pyo3
dependency to 0.16. #39
- Removed ndarray-linalg feature. #38
- Added 0th, 1st and 2nd order Bessel functions of the first kind (
bessel_j0
,bessel_j1
,bessel_j2
) for double precision dual numbers. #36
- Implementations for LU decomposition and eigendecomposition of symmetric matrices that do not depend on external libraries (BLAS, LAPACK). #34
- Updated
pyo3
dependency to 0.15.