Releases: dss-extensions/klusolve
KLUSolveX 1.0.0a1 (preview)
DSS-Extensions: KLUSolveX
This is a fork of KLUSolve used by DSS C-API. See the original at SourceForge. As explicit in LICENSE
, this work uses the same license, LGPL 2.1 or later.
Changes include:
- Uses a CMake building script.
- Uses either system SuiteSparse libraries (when compatible) or downloads upstream SuiteSparse source-code. The SuiteSparse source code is not included in the KLUSolveX repository anymore.
- Adds a dependency on Eigen, dropping the customized CZSparse.
- Introduces some dense matrix functions (e.g.
mvmult
) to be used in the DSS C-API, an alternative OpenDSS library, for better performance. - Introduces reuse of the symbolic and numeric factorization steps from KLU when the sparse matrix is unchanged.
- Changes calling convention to CDECL on Windows -- so far this is the only change that breaks compatibility with KLUSolve.
For binary distributions, basic descriptions of the dependencies and licensing information is reproduced below. When building from source, be sure to check the licenses of the components.
This is a preview release to be used by the preview release of DSS C-API 0.11.0.
EDIT: added ARM64 (built on manylinux_wheel_fpc322_aarch64 ) and ARM32 (armv7l, "Raspbian GNU/Linux 10 (buster)") binaries on 2021-10-12.
EDIT: added ARM64 mac M1 binary, untested, on 2022-03-08.
EDIT: added new ARM64 mac binary. The previous one was working correctly, but had issues threading with recent Julia versions. The old binary is kept as klusolvex_1.0.0a1_darwin_arm64-previous.tar.gz
. The new binary is built with GCC 12 from Homebrew, adding -static-libgcc -static-libstdc++
to the linker flags.
Legacy DSS-Extensions KLUSolve 1.1.0a2
Fixes output path on Linux.
Update on 2019-11: This version was released before the major refactor and library rename. Check newer releases for updated versions
Legacy DSS-Extensions KLUSolve 1.1.0a1
Update on 2019-11: This version was released before the major refactor and library rename. Check newer releases for updated versions
This is a pre-release for testing and finishing the integration with the DSS extensions.
The original KLUSolve was tagged 1.0. Besides the building system changes (uses CMake and the upstream KLU/SuiteSparse) we already had in place, this version introduces a version of the MVMult
function using the Eigen C++ library.
MVMult
represents the b=prod(A, x)
, which is used extensively in OpenDSS. The original version from OpenDSS is a Pascal function, which was not optimized. The version built here can bring a nice performance increase, without any other change.