Expand description

This is a small library that defines a SM2 inspired spaced repetition algorithm. It tries to assume as little as possible about your items. It also tries to include some self adjusting behaviour such that we model the forgetting curve as well as possible. We also include some randomness such that we decouple items that were created together and allow their review events to spread out in time.

Structs

Struct containing item specific data related to it’s scheduling.

struct containing various parameters used to update the scheduling data of an item

Enums

User evaluation of review event. Did it feel too hard, just difficult enough or too easy?

Functions

computes the number of days between the current review event and the next given a wanted recall probability. Expects a positive forgetting rate. Is not used directly can but is exposed anyway.

main scheduling function. Takes the scheduling data of an item, result of the review, update constants, and the wanted rentention probability event and computes the next interval + changes to the item parameters.

Computes how the ratio between review intervals should be scaled to more accurately align with the true forgetting curve. Computed as explained here