No, the Java version is using the 2.0 version of the Ebisu API while the Python version is to 2.1, which just added some new features: see changelog.
As far as I know there isn't a Rust version but I would be very happy to help write one. @ttencate's Dart port cites the Java version as the main reference. You'll need a Rust implementation of gammaln and a 1D optimization function (for mathematical optimization, i.e., function minimization, like golden search).
I'd like to share that a major overhaul of Ebisu is coming in the next few weeks—I've been working on it every day 😅 (in this repo).
It addresses #43 and I'm hoping to write a request for comment (RFC) issue in a few days describing the new API, but in a nutshell,
Ebisu v3 will have a much faster and simpler predictRecall, which will just be an algebraic expression, (-(currentTime - lastSeenTime) / halflife), and you can do this in SQL.
predictRecall will also be more accurate because it will explicitly boost the memory's strength after each quiz (Anki calls this the "ease factor").
The model will be a lot bigger: instead of three numbers, it'll be a bigger JSON object.
If you're writing a new quiz app, Ebisu 2.0 and 2.1 are totally fine to use: we've detailed their flaws in #43 but if your quiz app doesn't need numerically-precise predictRecall, and just needs cards ranked from lowest to highest recall, then Ebisu 2.x will be fine. If you want to wait for v3, again, I'm hoping to publish it in a few weeks.
Good questions!
No, the Java version is using the 2.0 version of the Ebisu API while the Python version is to 2.1, which just added some new features: see changelog.
As far as I know there isn't a Rust version but I would be very happy to help write one. @ttencate's Dart port cites the Java version as the main reference. You'll need a Rust implementation of
gammaln
and a 1D optimization function (for mathematical optimization, i.e., function minimization, like golden search).I'd like to share that a major overhaul of Ebisu is coming in the next few weeks—I've been working on it every day 😅 (in this repo).
It addresses #43 and I'm hoping to write a request for comment (RFC) issue in a few days describing the new API, but in a nutshell,
predictRecall
, which will just be an algebraic expression,(-(currentTime - lastSeenTime) / halflife)
, and you can do this in SQL.predictRecall
will also be more accurate because it will explicitly boost the memory's strength after each quiz (Anki calls this the "ease factor").If you're writing a new quiz app, Ebisu 2.0 and 2.1 are totally fine to use: we've detailed their flaws in #43 but if your quiz app doesn't need numerically-precise
predictRecall
, and just needs cards ranked from lowest to highest recall, then Ebisu 2.x will be fine. If you want to wait for v3, again, I'm hoping to publish it in a few weeks.Happy to answer further questions!