A Rust port of the Ebisu v3 flashcard quiz scheduling library. This library uses rust-GSL which are Rust bindings for GSL. In order to use this library the GSL library needs to be installed.
Usage example
// Initialize the model with the first argument representing the half-life of the recall.
// It is 10 units of time (minutes, hours, days, etc.), meaning after 10 units of time have
// passed the probability of recall is 0.5. The second argument specifies how much boost to
// apply after a successful update.
let mut model = from_priors?;
// Updates the recall with a quiz that took place 2 units of time after the creaton of the
// model where the user had 2 correct responses out of 3.
model.update_recall;
// Updates the recall with a quiz that took place 1 unit of time after the last update where the
// user had 1 correct response out of 1.
model.update_recall;
// Updates the recall with a quiz that took place 1 unit of time after the last update where the
// user responded correctly 70% of the time.
model.update_recall;
// Updates the recall to be more accurate. This can be called as often as needed, even after
// every quiz update, but it is a more expensive operation.
model.update_recall_history;
let recall_probability = model.predict_recall_ln.exp;