Comments (7)
Minimum working example.
pw85_mwe.zip
from pw85.
The module is being completely rewritten. The function f
is no longer computed as a rational function (where all coefficients are precomputed). We test an alternative implementation using the Cholesky decomposition, hoping for a better accuracy
from pw85.
Cholesky decomposition indeed leads to better accuracy. However, Newton iterations seem to exhibit slow convergence. Implement brent algorithm (based on netlib's Golden Odlies implementation, see fmin.f).
from pw85.
In fact, we will use the GSL implementation of the Brent algorithm. This probably requires a change f license (the GSL is released under the GPL license).
from pw85.
The new implementation (+ tests) is fully functional (as of rev 54adca3). However, some tests still exhibit pour accuracy. In particular, the recalculation of μ² is quite inaccurate (relative tolerance 1e-4
). This should be investigated more closely, in particular with respect to the aspect ratio of the ellipsoids that are involved (does accuracy fall when dealing with spheres?).
from pw85.
As of rev ec3d1a4, the Brent optimization is complemented with a few final Newton steps. This slightly increases accuracy, but there are still some bad cases.
from pw85.
As of rev fcc8cd4, the accuracy issue has been solved. There was an error in the implementation of the Newton-Raphson refinement. The relative accuracy is now about 1.e-10
, which is satisfactory.
from pw85.
Related Issues (19)
- Sphinx: make.bat html
- Change signature of function pw85_f HOT 1
- Signal convergence errors in `pw85_contact_function`
- pw85_contact_function should return error codes
- pw85.h.in → pw85.h generation problem HOT 1
- [cmake branch] Installation of python bindings is broken HOT 2
- [branch cmake] Rename wrappers/python-ctypes → python HOT 1
- [Sphinx] Use Doxygen + Breathe for the C library HOT 1
- [Python] Replace ctypes with pybind11 HOT 1
- DllExport? HOT 1
- Disable auto-formatting of comments
- Sphinx: make html
- Refactor python module initialization HOT 1
- Provide an error message to python module initialization HOT 1
- Rename function ``pw85__det_sym`` → ``pw85__det`` HOT 1
- Make CMake files more generic HOT 1
- Rename function pw85_f
- Change license to GPL? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pw85.