ceres-solver
polars
Our great sponsors
ceres-solver | polars | |
---|---|---|
8 | 144 | |
3,601 | 26,218 | |
2.6% | 6.7% | |
8.1 | 10.0 | |
7 days ago | 1 day ago | |
C++ | Rust | |
3-Clause BSD License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ceres-solver
-
The Elements of Differentiable Programming
I can't reply to the guy saying julia is the only one. But there are others.
Ceres uses dual numbers
https://github.com/ceres-solver/ceres-solver/blob/master/inc...
This library from google is used everywhere in robotics, so it's hardly some backwater little side project.
So does c++ autodiff
- A large scale non-linear optimization library
-
Photometric Bundle Adjustment library?
http://ceres-solver.org (if you want to implement it manually, see tutorials & openCV sfm module)
-
Gradients Without Backpropagation
http://ceres-solver.org/ works well, in my experience.
-
Is there a library for non-linear optimization in Rust?
Hey, people! I was wondering if there is a library for non-linear optimization, equivalent to that for Ceres Solver that you have in C++?
-
What libraries do you miss from other languages?
I've not yet seen anything comparable to http://ceres-solver.org/
-
Non-linear equation solver for microcontrollers
Disclaimer: I'm one of the authors of Ceres Solver which is widely used for solving computational geometry problems in computer vision. I also wrote TinySolver. And nowadays, I focus on Pigweed; a collection of embedded libraries targeting high-volume consumer electronics products. It's fun to see an overlap of these two areas expertise!
polars
-
Why Python's Integer Division Floors (2010)
This is because 0.1 is in actuality the floating point value value 0.1000000000000000055511151231257827021181583404541015625, and thus 1 divided by it is ever so slightly smaller than 10. Nevertheless, fpround(1 / fpround(1 / 10)) = 10 exactly.
I found out about this recently because in Polars I defined a // b for floats to be (a / b).floor(), which does return 10 for this computation. Since Python's correctly-rounded division is rather expensive, I chose to stick to this (more context: https://github.com/pola-rs/polars/issues/14596#issuecomment-...).
-
Polars
https://github.com/pola-rs/polars/releases/tag/py-0.19.0
-
Stuff I Learned during Hanukkah of Data 2023
That turned out to be related to pola-rs/polars#11912, and this linked comment provided a deceptively simple solution - use PARSE_DECLTYPES when creating the connection:
- Polars 0.20 Released
- Segunda linguagem
- Polars: Dataframes powered by a multithreaded query engine, written in Rust
- Summing columns in remote Parquet files using DuckDB
- Polars 0.34 is released. (A query engine focussing on DataFrame front ends)
What are some alternatives?
Eigen
vaex - Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second 🚀
casadi - CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.
modin - Modin: Scale your Pandas workflows by changing a single line of code
GLM - OpenGL Mathematics (GLM)
datafusion - Apache DataFusion SQL Query Engine
OpenBLAS - OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
DataFrames.jl - In-memory tabular data in Julia
QuantLib - The QuantLib C++ library
datatable - A Python package for manipulating 2-dimensional tabular data structures
CGal - The public CGAL repository, see the README below
Apache Arrow - Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing