While using compile-time builder generator crates, I realized that I had run into a niche problem that required lot more flexibility with generic structs and functions than I was getting. If you like, follow me down a rabbit hole and explore the builder pattern from a very generic-centric perspective.| Geo’s Notepad
In this article, I explore how to efficiently calculate the covariance matrix of the best fit parameters for global fitting problems that use the variable projection (VarPro) algorithm. It’s a very niche topic, but I do need it for my open source library so I might as well write it down. It might be helpful for people looking to gain a deeper understanding of the math behind VarPro.| Geo’s Notepad
In this article, we’ll derive from scratch the well known formulas –and some not so well known ones– for nonlinear least squares fitting from a Bayesian perspective. We’ll be using only elementary linear algebra and elementary calculus. It turns out, that this is a valuable exercise, because it allows us to clearly state our assumptions about the problem and assign unambigous meaning to all components of the least squares fitting process.| Geo’s Notepad
When using Rust, it’s easy to forget about segfaults, buffer overflows, and related memory safety bugs. Recently, I had a problem when I linked a C++ library to my Rust executable and said library was producing segfaults (among other things). The way I decided to tackle the problem, was to use Address Sanitizer (ASan). I’ll summarize the procedure here in case anyone else runs into the same problem and they might find this useful.| Geo’s Notepad
What do you do if you want to code using an (almost) fully featured IDE setup, but you’re up 40,000 feet in the air, without internet? And you don’t want to pay for business class1? I’ll show you what I did and I’m definitely interested in feedback and other solutions to this problem. Let’s just pretend that I don’t want to pay for business class, not that I can’t… ↩| Geo’s Notepad
About three years ago, I announced in my previous article on variable projection, that I would write a follow up about VarPro with multiple right hand sides. This is it. Global fitting with multiple right hand sides is an application where VarPro shines because it can bring significant computational savings. Let’s dive right in.| Geo’s Notepad
Announcing a major update of my article on the variable projection algorithm, which you can find on this blog by following this link. The article now contains all the information you need to implement your own VarPro library in a language of your choice.| Geo’s Notepad
Inspired by Jack Wrenn’s post on Undroppable Types in Rust, I set out to see if it’s possible to create types that must be used exactly once. From my understanding, those things are called linear types, but don’t quote me on that1. Unless you are quoting the title of this article which explicitly says linear types… I feel stupid now. ↩| geo-ant.github.io