Protected
intervalProtected
paramProtected
Optional
seedThe interval to be fuzzed.
-t days since the last review
-Optional
enable_fuzz: booleanThis adds a small random delay to the new interval time to prevent cards from sticking together and always being reviewed on the same day.
+Protected
intervalProtected
paramProtected
Optional
seedGet the parameters of the algorithm.
+Set the parameters of the algorithm.
+Partial
If fuzzing is disabled or ivl is less than 2.5, it returns the original interval.
+The interval to be fuzzed.
+t days since the last review
+Optional
enable_fuzz: booleanThis adds a small random delay to the new interval time to prevent cards from sticking together and always being reviewed on the same day.
Ref: https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm#fsrs-45 -The formula used is: I(r,s) = (r^(1/DECAY) - 1) * s / FACTOR
-0<request_retention<=1,Requested retention rate
-Card to be processed
-Current time or scheduled time
-Should the review count information(reps,lapses) be reset. (Optional)
-Optional
afterHandler: ((recordLogItem) => R)Convert the result to another type. (Optional)
-const now = new Date();
const f = fsrs();
const emptyCard = createEmptyCard(now);
const scheduling_cards = f.repeat(emptyCard, now);
const { card, log } = scheduling_cards[Rating.Hard];
const forgetCard = f.forget(card, new Date(), true);
+calculate_ interval_ modifier
- calculate_
interval_ modifier(request_retention): number Parameters
- request_retention: number
0<request_retention<=1,Requested retention rate
+
Returns number
See
https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm#fsrs-45
+The formula used is: $$I(r,s) = (r^{\frac{1}{DECAY}} - 1) / FACTOR \times s$$
+Throws
Requested retention rate should be in the range (0,1]
+
constrain_ difficulty
forget
- forget<R>(card, now, reset_count?, afterHandler?): R
Type Parameters
- R = RecordLogItem
Parameters
- card: Card | CardInput
Card to be processed
+ - now: DateInput
Current time or scheduled time
+ - reset_count: boolean = false
Should the review count information(reps,lapses) be reset. (Optional)
+ Optional
afterHandler: ((recordLogItem) => R)Convert the result to another type. (Optional)
+- (recordLogItem): R
Parameters
- recordLogItem: RecordLogItem
Returns R
Returns R
Example
const now = new Date();
const f = fsrs();
const emptyCard = createEmptyCard(now);
const scheduling_cards = f.repeat(emptyCard, now);
const { card, log } = scheduling_cards[Rating.Hard];
const forgetCard = f.forget(card, new Date(), true);
Example
interface RepeatRecordLog {
card: CardUnChecked; //see method: createEmptyCard
log: RevLogUnchecked; //see method: fsrs.repeat()
}
function forgetAfterHandler(recordLogItem: RecordLogItem): RepeatRecordLog {
return {
card: {
...(recordLogItem.card as Card & { cid: string }),
due: recordLogItem.card.due.getTime(),
state: State[recordLogItem.card.state] as StateType,
last_review: recordLogItem.card.last_review
? recordLogItem.card.last_review!.getTime()
: null,
},
log: {
...recordLogItem.log,
cid: (recordLogItem.card as Card & { cid: string }).cid,
due: recordLogItem.log.due.getTime(),
review: recordLogItem.log.review.getTime(),
state: State[recordLogItem.log.state] as StateType,
rating: Rating[recordLogItem.log.rating] as RatingType,
},
};
}
const now = new Date();
const f = fsrs();
const emptyCardFormAfterHandler = createEmptyCard(now, cardAfterHandler); //see method: createEmptyCard
const repeatFormAfterHandler = f.repeat(emptyCardFormAfterHandler, now, repeatAfterHandler); //see method: fsrs.repeat()
const { card } = repeatFormAfterHandler[Rating.Hard];
const forgetFromAfterHandler = f.forget(card, date_scheduler(now, 1, true), false, forgetAfterHandler);
-
forgetting_ curve
- forgetting_
curve(elapsed_days, stability): number The formula used is :
-$$R(t,S) = (1 + FACTOR \times \frac{t}{9 \cdot S})^{DECAY},$$
-Parameters
elapsed_days: number
t days since the last review
-stability: number
Stability (interval when R=90%)
+
forgetting_ curve
- forgetting_
curve(elapsed_days, stability): number The formula used is :
+$$R(t,S) = (1 + \text{FACTOR} \times \frac{t}{9 \cdot S})^{\text{DECAY}}$$
+Parameters
- elapsed_days: number
t days since the last review
+ - stability: number
Stability (interval when R=90%)
Returns number
r Retrievability (probability of recall)
-
get_ retrievability
init_ difficulty
- init_
difficulty(g): number The formula used is :
-$$D_0(G) = w_4 - (G-3) \cdot w_5$$
-$$\min {\max {D_0(G),1},10}$$
-where the D_0(3)=w_4 when the first rating is good.
-Parameters
g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
-
Returns number
Difficulty D \in [1,10]
-
init_ ds
init_ stability
- init_
stability(g): number The formula used is :
-S_0(G) = w_{G-1}
-\max {S_0,0.1}
-Parameters
g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
+get_ retrievability
init_ difficulty
- init_
difficulty(g): number The formula used is :
+$$D_0(G) = w_4 - (G-3) \cdot w_5 $$
+$$D_0 = \min \lbrace \max \lbrace D_0(G),1 \rbrace,10 \rbrace$$
+where the $$D_0(3)=w_4$$ when the first rating is good.
+Parameters
- g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
+
Returns number
Difficulty $$D \in [1,10]$$
+
init_ ds
init_ stability
- init_
stability(g): number The formula used is :
+$$ S_0(G) = w_{G-1}$$
+$$S_0 = \max \lbrace S_0,0.1\rbrace $$
+Parameters
- g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
Returns number
Stability (interval when R=90%)
-
mean_ reversion
- mean_
reversion(init, current): number The formula used is :
-$$w_7 \cdot init +(1 - w_7) \cdot current$$
-Parameters
init: number
$$w_2 : D_0(3) = w_2 + (R-2) \cdot w_3= w_2$$
-current: number
$$D - w_6 \cdot (R - 2)$$
+mean_ reversion
next_ difficulty
- next_
difficulty(d, g): number The formula used is :
-$$next_d = D - w_6 \cdot (R - 2)$$
-$$D^\prime(D,R) = w_5 \cdot D_0(2) +(1 - w_5) \cdot next_d$$
-Parameters
d: number
Difficulty D \in [1,10]
-g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
-
Returns number
next_D
-
next_ ds
- next_
ds(s, last_d, last_s, retrievability): void Updates the difficulty and stability values of the scheduling card based on the last difficulty,
+
next_ difficulty
- next_
difficulty(d, g): number The formula used is :
+$$\text{next}_d = D - w_6 \cdot (R - 2)$$
+$$D^\prime(D,R) = w_5 \cdot D_0(2) +(1 - w_5) \cdot \text{next}_d$$
+Parameters
- d: number
Difficulty $$D \in [1,10]$$
+ - g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
+
Returns number
$$\text{next}_D$$
+
next_ ds
- next_
ds(s, last_d, last_s, retrievability): void Updates the difficulty and stability values of the scheduling card based on the last difficulty,
last stability, and the current retrievability.
-Parameters
s: SchedulingCard
scheduling Card
-last_d: number
Difficulty
-last_s: number
Stability
-retrievability: number
Retrievability
-
Returns void
next_ forget_ stability
- next_
forget_ stability(d, s, r): number The formula used is :
-$$S^\prime_f(D,S,R) = w_11\cdot D^{-w_{12}}\cdot ((S+1)^{w_{13}}-1) \cdot e^{w_{14}\cdot(1-R)}.$$
-Parameters
d: number
Difficulty D \in [1,10]
-s: number
Stability (interval when R=90%)
-r: number
Retrievability (probability of recall)
+Parameters
- s: SchedulingCard
scheduling Card
+ - last_d: number
Difficulty
+ - last_s: number
Stability
+ - retrievability: number
Retrievability
+
Returns void
next_ forget_ stability
- next_
forget_ stability(d, s, r): number The formula used is :
+$$S^\prime_f(D,S,R) = w_{11}\cdot D^{-w_{12}}\cdot ((S+1)^{w_{13}}-1) \cdot e^{w_{14}\cdot(1-R)}$$
+Parameters
- d: number
Difficulty D \in [1,10]
+ - s: number
Stability (interval when R=90%)
+ - r: number
Retrievability (probability of recall)
Returns number
S^\prime_f new stability after forgetting
-
next_ interval
- next_
interval(s, elapsed_days, enable_fuzz?): int Ref:
- constructor(param: Partial)
- this.intervalModifier = 9 * (1 / this.param.request_retention - 1);
-Parameters
s: number
Stability (interval when R=90%)
-elapsed_days: number
t days since the last review
-enable_fuzz: boolean = ...
This adds a small random delay to the new interval time to prevent cards from sticking together and always being reviewed on the same day.
-
Returns int
next_ recall_ stability
- next_
recall_ stability(d, s, r, g): number The formula used is :
-$$S^\prime_r(D,S,R,G) = S\cdot(e^{w_8}\cdot (11-D)\cdot S^{-w_9}\cdot(e^{w_10\cdot(1-R)}-1)\cdot w_15(if G=2) \cdot w_16(if G=4)+1)$$
-Parameters
d: number
Difficulty D \in [1,10]
-s: number
Stability (interval when R=90%)
-r: number
Retrievability (probability of recall)
-g: Grade
Grade (Rating[0.again,1.hard,2.good,3.easy])
+next_ interval
- next_
interval(s, elapsed_days, enable_fuzz?): int Parameters
- s: number
Stability (interval when R=90%)
+ - elapsed_days: number
t days since the last review
+ - enable_fuzz: boolean = ...
This adds a small random delay to the new interval time to prevent cards from sticking together and always being reviewed on the same day.
+
Returns int
See
The formula used is : FSRSAlgorithm.calculate_interval_modifier
+
next_ recall_ stability
- next_
recall_ stability(d, s, r, g): number The formula used is :
+$$S^\prime_r(D,S,R,G) = S\cdot(e^{w_8}\cdot (11-D)\cdot S^{-w_9}\cdot(e^{w_{10}\cdot(1-R)}-1)\cdot w_{15}(\text{if} G=2) \cdot w_{16}(\text{if} G=4)+1)$$
+Parameters
- d: number
Difficulty D \in [1,10]
+ - s: number
Stability (interval when R=90%)
+ - r: number
Retrievability (probability of recall)
+ - g: Grade
Grade (Rating[0.again,1.hard,2.good,3.easy])
Returns number
S^\prime_r new stability after recall
-
Private
pre Process Card
Private
pre Process Date
- pre
Process Date(_date): Date Parameters
_date: DateInput
Returns Date
Private
pre Process Log
- pre
Process Log(_log): ReviewLog Parameters
_log: ReviewLog | ReviewLogInput
Returns ReviewLog
repeat
- repeat<R>(card, now, afterHandler?): R
Type Parameters
R = RecordLog
Parameters
Returns R
Example
const card: Card = createEmptyCard(new Date());
const f = fsrs();
const recordLog = f.repeat(card, new Date());
+Private
pre Process Card
Private
pre Process Date
- pre
Process Date(_date): Date Parameters
- _date: DateInput
Returns Date
Private
pre Process Log
- pre
Process Log(_log): ReviewLog Parameters
- _log: ReviewLog | ReviewLogInput
Returns ReviewLog
repeat
- repeat<R>(card, now, afterHandler?): R
Type Parameters
- R = RecordLog
Parameters
Returns R
Example
const card: Card = createEmptyCard(new Date());
const f = fsrs();
const recordLog = f.repeat(card, new Date());
Example
interface RevLogUnchecked
extends Omit<ReviewLog, "due" | "review" | "state" | "rating"> {
cid: string;
due: Date | number;
state: StateType;
review: Date | number;
rating: RatingType;
}
interface RepeatRecordLog {
card: CardUnChecked; //see method: createEmptyCard
log: RevLogUnchecked;
}
function repeatAfterHandler(recordLog: RecordLog) {
const record: { [key in Grade]: RepeatRecordLog } = {} as {
[key in Grade]: RepeatRecordLog;
};
for (const grade of Grades) {
record[grade] = {
card: {
...(recordLog[grade].card as Card & { cid: string }),
due: recordLog[grade].card.due.getTime(),
state: State[recordLog[grade].card.state] as StateType,
last_review: recordLog[grade].card.last_review
? recordLog[grade].card.last_review!.getTime()
: null,
},
log: {
...recordLog[grade].log,
cid: (recordLog[grade].card as Card & { cid: string }).cid,
due: recordLog[grade].log.due.getTime(),
review: recordLog[grade].log.review.getTime(),
state: State[recordLog[grade].log.state] as StateType,
rating: Rating[recordLog[grade].log.rating] as RatingType,
},
};
}
return record;
}
const card: Card = createEmptyCard(new Date(), cardAfterHandler); //see method: createEmptyCard
const f = fsrs();
const recordLog = f.repeat(card, new Date(), repeatAfterHandler);
-
reschedule
- reschedule<T>(cards, options?): T[]
Type Parameters
Parameters
cards: T[]
scheduled card collection
-options: RescheduleOptions = {}
Reschedule options,fuzz is enabled by default.If the type of due is not Date, please implement dataHandler.
-
Returns T[]
Example
type CardType = Card & {
cid: number;
};
const reviewCard: CardType = {
cid: 1,
due: new Date("2024-03-17 04:43:02"),
stability: 48.26139059062234,
difficulty: 5.67,
elapsed_days: 18,
scheduled_days: 51,
reps: 8,
lapses: 1,
state: State.Review,
last_review: new Date("2024-01-26 04:43:02"),
};
const f = fsrs();
const reschedule_cards = f.reschedule([reviewCard]);
+
reschedule
- reschedule<T>(cards, options?): T[]
Type Parameters
Parameters
- cards: T[]
scheduled card collection
+ - options: RescheduleOptions = {}
Reschedule options,fuzz is enabled by default.If the type of due is not Date, please implement dataHandler.
+
Returns T[]
Example
type CardType = Card & {
cid: number;
};
const reviewCard: CardType = {
cid: 1,
due: new Date("2024-03-17 04:43:02"),
stability: 48.26139059062234,
difficulty: 5.67,
elapsed_days: 18,
scheduled_days: 51,
reps: 8,
lapses: 1,
state: State.Review,
last_review: new Date("2024-01-26 04:43:02"),
};
const f = fsrs();
const reschedule_cards = f.reschedule([reviewCard]);
-
rollback
- rollback<R>(card, log, afterHandler?): R
Type Parameters
R = Card
Parameters
card: Card | CardInput
Card to be processed
-log: ReviewLogInput
last review log
-Optional
afterHandler: ((prevCard) => R)
Convert the result to another type. (Optional)
-- (prevCard): R
Parameters
prevCard: Card
Returns R
Returns R
Example
const now = new Date();
const f = fsrs();
const emptyCardFormAfterHandler = createEmptyCard(now);
const repeatFormAfterHandler = f.repeat(emptyCardFormAfterHandler, now);
const { card, log } = repeatFormAfterHandler[Rating.Hard];
const rollbackFromAfterHandler = f.rollback(card, log);
+
rollback
- rollback<R>(card, log, afterHandler?): R
Type Parameters
- R = Card
Parameters
Returns R
Example
const now = new Date();
const f = fsrs();
const emptyCardFormAfterHandler = createEmptyCard(now);
const repeatFormAfterHandler = f.repeat(emptyCardFormAfterHandler, now);
const { card, log } = repeatFormAfterHandler[Rating.Hard];
const rollbackFromAfterHandler = f.rollback(card, log);
Example
const now = new Date();
const f = fsrs();
const emptyCardFormAfterHandler = createEmptyCard(now, cardAfterHandler); //see method: createEmptyCard
const repeatFormAfterHandler = f.repeat(emptyCardFormAfterHandler, now, repeatAfterHandler); //see method: fsrs.repeat()
const { card, log } = repeatFormAfterHandler[Rating.Hard];
const rollbackFromAfterHandler = f.rollback(card, log, cardAfterHandler);
-
Generated using TypeDoc
\ No newline at end of file
+
\ No newline at end of file
diff --git a/classes/FSRSAlgorithm.html b/classes/FSRSAlgorithm.html
index 11492fc..57126a8 100644
--- a/classes/FSRSAlgorithm.html
+++ b/classes/FSRSAlgorithm.html
@@ -1,87 +1,93 @@
-FSRSAlgorithm | ts-fsrs Class FSRSAlgorithm
Hierarchy
- FSRSAlgorithm
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
- new FSRSAlgorithm(params): FSRSAlgorithm
Parameters
params: Partial<FSRSParameters>
Returns FSRSAlgorithm
Properties
Protected
interval Modifier
interval Modifier: numberProtected
param
Protected
Optional
seed
seed?: stringAccessors
interval_ modifier
- get interval_modifier(): number
Returns number
parameters
- get parameters(): FSRSParameters
Returns FSRSParameters
- set parameters(params): void
Parameters
params: Partial<FSRSParameters>
Returns void
Methods
apply_ fuzz
- apply_
fuzz(ivl, elapsed_days, enable_fuzz?): int If fuzzing is disabled or ivl is less than 2.5, it returns the original interval.
-Parameters
ivl: number
The interval to be fuzzed.
-elapsed_days: number
t days since the last review
-Optional
enable_fuzz: boolean
This adds a small random delay to the new interval time to prevent cards from sticking together and always being reviewed on the same day.
+FSRSAlgorithm | TS-FSRS Class FSRSAlgorithm
Hierarchy (view full)
- FSRSAlgorithm
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
- new FSRSAlgorithm(params): FSRSAlgorithm
Parameters
- params: Partial<FSRSParameters>
Returns FSRSAlgorithm
Properties
Protected
interval Modifier
interval Modifier: numberProtected
param
Protected
Optional
seed
seed?: stringAccessors
interval_ modifier
- get interval_modifier(): number
Returns number
parameters
- get parameters(): FSRSParameters
Get the parameters of the algorithm.
+Returns FSRSParameters
- set parameters(params): void
Set the parameters of the algorithm.
+Parameters
- params: Partial<FSRSParameters>
Partial
+
Returns void
Methods
apply_ fuzz
- apply_
fuzz(ivl, elapsed_days, enable_fuzz?): int If fuzzing is disabled or ivl is less than 2.5, it returns the original interval.
+Parameters
- ivl: number
The interval to be fuzzed.
+ - elapsed_days: number
t days since the last review
+ Optional
enable_fuzz: booleanThis adds a small random delay to the new interval time to prevent cards from sticking together and always being reviewed on the same day.
Returns int
- The fuzzed interval.
-
calculate_ interval_ modifier
- calculate_
interval_ modifier(request_retention): number Ref: https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm#fsrs-45
-The formula used is: I(r,s) = (r^(1/DECAY) - 1) * s / FACTOR
-Parameters
request_retention: number
0<request_retention<=1,Requested retention rate
-
Returns number
constrain_ difficulty
forgetting_ curve
- forgetting_
curve(elapsed_days, stability): number The formula used is :
-$$R(t,S) = (1 + FACTOR \times \frac{t}{9 \cdot S})^{DECAY},$$
-Parameters
elapsed_days: number
t days since the last review
-stability: number
Stability (interval when R=90%)
+calculate_ interval_ modifier
- calculate_
interval_ modifier(request_retention): number Parameters
- request_retention: number
0<request_retention<=1,Requested retention rate
+
Returns number
See
https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm#fsrs-45
+The formula used is: $$I(r,s) = (r^{\frac{1}{DECAY}} - 1) / FACTOR \times s$$
+Throws
Requested retention rate should be in the range (0,1]
+
constrain_ difficulty
forgetting_ curve
- forgetting_
curve(elapsed_days, stability): number The formula used is :
+$$R(t,S) = (1 + \text{FACTOR} \times \frac{t}{9 \cdot S})^{\text{DECAY}}$$
+Parameters
- elapsed_days: number
t days since the last review
+ - stability: number
Stability (interval when R=90%)
Returns number
r Retrievability (probability of recall)
-
init_ difficulty
- init_
difficulty(g): number The formula used is :
-$$D_0(G) = w_4 - (G-3) \cdot w_5$$
-$$\min {\max {D_0(G),1},10}$$
-where the D_0(3)=w_4 when the first rating is good.
-Parameters
g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
-
Returns number
Difficulty D \in [1,10]
-
init_ ds
init_ stability
- init_
stability(g): number The formula used is :
-S_0(G) = w_{G-1}
-\max {S_0,0.1}
-Parameters
g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
+init_ difficulty
- init_
difficulty(g): number The formula used is :
+$$D_0(G) = w_4 - (G-3) \cdot w_5 $$
+$$D_0 = \min \lbrace \max \lbrace D_0(G),1 \rbrace,10 \rbrace$$
+where the $$D_0(3)=w_4$$ when the first rating is good.
+Parameters
- g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
+
Returns number
Difficulty $$D \in [1,10]$$
+
init_ ds
init_ stability
- init_
stability(g): number The formula used is :
+$$ S_0(G) = w_{G-1}$$
+$$S_0 = \max \lbrace S_0,0.1\rbrace $$
+Parameters
- g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
Returns number
Stability (interval when R=90%)
-
mean_ reversion
- mean_
reversion(init, current): number The formula used is :
-$$w_7 \cdot init +(1 - w_7) \cdot current$$
-Parameters
init: number
$$w_2 : D_0(3) = w_2 + (R-2) \cdot w_3= w_2$$
-current: number
$$D - w_6 \cdot (R - 2)$$
+mean_ reversion
next_ difficulty
- next_
difficulty(d, g): number The formula used is :
-$$next_d = D - w_6 \cdot (R - 2)$$
-$$D^\prime(D,R) = w_5 \cdot D_0(2) +(1 - w_5) \cdot next_d$$
-Parameters
d: number
Difficulty D \in [1,10]
-g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
-
Returns number
next_D
-
next_ ds
- next_
ds(s, last_d, last_s, retrievability): void Updates the difficulty and stability values of the scheduling card based on the last difficulty,
+
next_ difficulty
- next_
difficulty(d, g): number The formula used is :
+$$\text{next}_d = D - w_6 \cdot (R - 2)$$
+$$D^\prime(D,R) = w_5 \cdot D_0(2) +(1 - w_5) \cdot \text{next}_d$$
+Parameters
- d: number
Difficulty $$D \in [1,10]$$
+ - g: Grade
Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
+
Returns number
$$\text{next}_D$$
+
next_ ds
- next_
ds(s, last_d, last_s, retrievability): void Updates the difficulty and stability values of the scheduling card based on the last difficulty,
last stability, and the current retrievability.
-Parameters
s: SchedulingCard
scheduling Card
-last_d: number
Difficulty
-last_s: number
Stability
-retrievability: number
Retrievability
-
Returns void
next_ forget_ stability
- next_
forget_ stability(d, s, r): number The formula used is :
-$$S^\prime_f(D,S,R) = w_11\cdot D^{-w_{12}}\cdot ((S+1)^{w_{13}}-1) \cdot e^{w_{14}\cdot(1-R)}.$$
-Parameters
d: number
Difficulty D \in [1,10]
-s: number
Stability (interval when R=90%)
-r: number
Retrievability (probability of recall)
+Parameters
- s: SchedulingCard
scheduling Card
+ - last_d: number
Difficulty
+ - last_s: number
Stability
+ - retrievability: number
Retrievability
+
Returns void
next_ forget_ stability
- next_
forget_ stability(d, s, r): number The formula used is :
+$$S^\prime_f(D,S,R) = w_{11}\cdot D^{-w_{12}}\cdot ((S+1)^{w_{13}}-1) \cdot e^{w_{14}\cdot(1-R)}$$
+Parameters
- d: number
Difficulty D \in [1,10]
+ - s: number
Stability (interval when R=90%)
+ - r: number
Retrievability (probability of recall)
Returns number
S^\prime_f new stability after forgetting
-
next_ interval
- next_
interval(s, elapsed_days, enable_fuzz?): int Ref:
- constructor(param: Partial)
- this.intervalModifier = 9 * (1 / this.param.request_retention - 1);
-Parameters
s: number
Stability (interval when R=90%)
-elapsed_days: number
t days since the last review
-enable_fuzz: boolean = ...
This adds a small random delay to the new interval time to prevent cards from sticking together and always being reviewed on the same day.
-
Returns int
next_ recall_ stability
- next_
recall_ stability(d, s, r, g): number The formula used is :
-$$S^\prime_r(D,S,R,G) = S\cdot(e^{w_8}\cdot (11-D)\cdot S^{-w_9}\cdot(e^{w_10\cdot(1-R)}-1)\cdot w_15(if G=2) \cdot w_16(if G=4)+1)$$
-Parameters
d: number
Difficulty D \in [1,10]
-s: number
Stability (interval when R=90%)
-r: number
Retrievability (probability of recall)
-g: Grade
Grade (Rating[0.again,1.hard,2.good,3.easy])
+next_ interval
- next_
interval(s, elapsed_days, enable_fuzz?): int Parameters
- s: number
Stability (interval when R=90%)
+ - elapsed_days: number
t days since the last review
+ - enable_fuzz: boolean = ...
This adds a small random delay to the new interval time to prevent cards from sticking together and always being reviewed on the same day.
+
Returns int
See
The formula used is : FSRSAlgorithm.calculate_interval_modifier
+
next_ recall_ stability
- next_
recall_ stability(d, s, r, g): number The formula used is :
+$$S^\prime_r(D,S,R,G) = S\cdot(e^{w_8}\cdot (11-D)\cdot S^{-w_9}\cdot(e^{w_{10}\cdot(1-R)}-1)\cdot w_{15}(\text{if} G=2) \cdot w_{16}(\text{if} G=4)+1)$$
+Parameters
- d: number
Difficulty D \in [1,10]
+ - s: number
Stability (interval when R=90%)
+ - r: number
Retrievability (probability of recall)
+ - g: Grade
Grade (Rating[0.again,1.hard,2.good,3.easy])
Returns number
S^\prime_r new stability after recall
-
Private
params_ handler_ proxy
- params_
handler_ proxy(): ProxyHandler<FSRSParameters> Returns ProxyHandler<FSRSParameters>
Private
update_ parameters
- update_
parameters(params): void Parameters
params: Partial<FSRSParameters>
Returns void
Generated using TypeDoc
\ No newline at end of file
+
Private
params_ handler_ proxy
- params_
handler_ proxy(): ProxyHandler<FSRSParameters> Returns ProxyHandler<FSRSParameters>
Private
update_ parameters
- update_
parameters(params): void Parameters
- params: Partial<FSRSParameters>
Returns void
\ No newline at end of file
diff --git a/classes/SchedulingCard.html b/classes/SchedulingCard.html
index fd8104e..4fed4fa 100644
--- a/classes/SchedulingCard.html
+++ b/classes/SchedulingCard.html
@@ -1,12 +1,15 @@
-SchedulingCard | ts-fsrs Class SchedulingCard
Index
Constructors
Properties
Methods
Constructors
constructor
- new
Scheduling Card(card, now): SchedulingCard Parameters
card: Card
now: Date
Returns SchedulingCard
Properties
again
easy
good
hard
last_ elapsed_ days
last_ elapsed_ days: numberlast_ review
last_ review: DateMethods
Private
copy
record_ log
schedule
- schedule(now, hard_interval, good_interval, easy_interval): SchedulingCard
Parameters
now: Date
hard_interval: number
good_interval: number
easy_interval: number
Returns SchedulingCard
update_ state
- update_
state(state): SchedulingCard Parameters
state: State
Returns SchedulingCard
Generated using TypeDoc
\ No newline at end of file
+SchedulingCard | TS-FSRS Class SchedulingCard
Index
Constructors
Properties
Methods
Constructors
constructor
- new
Scheduling Card(card, now): SchedulingCard Parameters
- card: Card
- now: Date
Returns SchedulingCard
Properties
again
easy
good
hard
last_ elapsed_ days
last_ elapsed_ days: numberlast_ review
last_ review: DateMethods
Private
copy
record_ log
schedule
- schedule(now, hard_interval, good_interval, easy_interval): SchedulingCard
Parameters
- now: Date
- hard_interval: number
- good_interval: number
- easy_interval: number
Returns SchedulingCard
update_ state
- update_
state(state): SchedulingCard Parameters
- state: State
Returns SchedulingCard
\ No newline at end of file
diff --git a/enums/Rating.html b/enums/Rating.html
index 5a69276..3d83ebc 100644
--- a/enums/Rating.html
+++ b/enums/Rating.html
@@ -1,6 +1,9 @@
-Rating | ts-fsrs Generated using TypeDoc
\ No newline at end of file
+Rating | TS-FSRS
\ No newline at end of file
diff --git a/enums/State.html b/enums/State.html
index be9297f..798d183 100644
--- a/enums/State.html
+++ b/enums/State.html
@@ -1,5 +1,8 @@
-State | ts-fsrs Generated using TypeDoc
\ No newline at end of file
+State | TS-FSRS
\ No newline at end of file
diff --git a/functions/createEmptyCard.html b/functions/createEmptyCard.html
index cec7db7..cd9e41d 100644
--- a/functions/createEmptyCard.html
+++ b/functions/createEmptyCard.html
@@ -1,8 +1,11 @@
-createEmptyCard | ts-fsrs Function createEmptyCard
- create
Empty Card<R>(now?, afterHandler?): R Create an empty card
-Type Parameters
R = Card
Parameters
Returns R
Example
const card: Card = createEmptyCard(new Date());
+createEmptyCard | TS-FSRS Function createEmptyCard
- create
Empty Card<R>(now?, afterHandler?): R Create an empty card
+Type Parameters
- R = Card
Parameters
Returns R
Example
const card: Card = createEmptyCard(new Date());
Example
interface CardUnChecked
extends Omit<Card, "due" | "last_review" | "state"> {
cid: string;
due: Date | number;
last_review: Date | null | number;
state: StateType;
}
function cardAfterHandler(card: Card) {
return {
...card,
cid: "test001",
state: State[card.state],
last_review: card.last_review ?? null,
} as CardUnChecked;
}
const card: CardUnChecked = createEmptyCard(new Date(), cardAfterHandler);
-
Generated using TypeDoc
\ No newline at end of file
+
\ No newline at end of file
diff --git a/functions/date_diff.html b/functions/date_diff.html
index 2816059..cd00c64 100644
--- a/functions/date_diff.html
+++ b/functions/date_diff.html
@@ -1 +1,4 @@
-date_diff | ts-fsrs Generated using TypeDoc
\ No newline at end of file
+date_diff | TS-FSRS
\ No newline at end of file
diff --git a/functions/date_scheduler.html b/functions/date_scheduler.html
index 782882d..064d809 100644
--- a/functions/date_scheduler.html
+++ b/functions/date_scheduler.html
@@ -1,6 +1,9 @@
-date_scheduler | ts-fsrs Function date_scheduler
- date_
scheduler(now, t, isDay?): Date 计算日期和时间的偏移,并返回一个新的日期对象。
-Parameters
now: DateInput
当前日期和时间
-t: number
时间偏移量,当 isDay 为 true 时表示天数,为 false 时表示分钟
-Optional
isDay: boolean
(可选)是否按天数单位进行偏移,默认为 false,表示按分钟单位计算偏移
-
Returns Date
偏移后的日期和时间对象
-
Generated using TypeDoc
\ No newline at end of file
+date_scheduler | TS-FSRS Function date_scheduler
- date_
scheduler(now, t, isDay?): Date 计算日期和时间的偏移,并返回一个新的日期对象。
+Parameters
- now: DateInput
当前日期和时间
+ - t: number
时间偏移量,当 isDay 为 true 时表示天数,为 false 时表示分钟
+ Optional
isDay: boolean(可选)是否按天数单位进行偏移,默认为 false,表示按分钟单位计算偏移
+
Returns Date
偏移后的日期和时间对象
+
\ No newline at end of file
diff --git a/functions/fixDate.html b/functions/fixDate.html
index 36d6600..69aa456 100644
--- a/functions/fixDate.html
+++ b/functions/fixDate.html
@@ -1 +1,4 @@
-fixDate | ts-fsrs Generated using TypeDoc
\ No newline at end of file
+fixDate | TS-FSRS
\ No newline at end of file
diff --git a/functions/fixRating.html b/functions/fixRating.html
index 30b6c58..905e5a5 100644
--- a/functions/fixRating.html
+++ b/functions/fixRating.html
@@ -1 +1,4 @@
-fixRating | ts-fsrs Generated using TypeDoc
\ No newline at end of file
+fixRating | TS-FSRS
\ No newline at end of file
diff --git a/functions/fixState.html b/functions/fixState.html
index 458dfa4..de46beb 100644
--- a/functions/fixState.html
+++ b/functions/fixState.html
@@ -1 +1,4 @@
-fixState | ts-fsrs Generated using TypeDoc
\ No newline at end of file
+fixState | TS-FSRS
\ No newline at end of file
diff --git a/functions/formatDate.html b/functions/formatDate.html
index 1e1cc6f..e83ab46 100644
--- a/functions/formatDate.html
+++ b/functions/formatDate.html
@@ -1 +1,4 @@
-formatDate | ts-fsrs Function formatDate
- format
Date(dateInput): string Parameters
dateInput: DateInput
Returns string
Generated using TypeDoc
\ No newline at end of file
+formatDate | TS-FSRS Function formatDate
- format
Date(dateInput): string Parameters
- dateInput: DateInput
Returns string
\ No newline at end of file
diff --git a/functions/fsrs-1.html b/functions/fsrs-1.html
index 6fff9ec..950c858 100644
--- a/functions/fsrs-1.html
+++ b/functions/fsrs-1.html
@@ -1,9 +1,12 @@
-fsrs | ts-fsrs Function fsrs
- fsrs(params?): FSRS
Create a new instance of TS-FSRS
-Parameters
Optional
params: Partial<FSRSParameters>
FSRSParameters
+fsrs | TS-FSRS Function fsrs
- fsrs(params?): FSRS
Create a new instance of TS-FSRS
+Parameters
Optional
params: Partial<FSRSParameters>FSRSParameters
Returns FSRS
Example
const f = fsrs();
Example
const params: FSRSParameters = generatorParameters({ maximum_interval: 1000 });
const f = fsrs(params);
Example
const f = fsrs({ maximum_interval: 1000 });
-
Generated using TypeDoc
\ No newline at end of file
+
\ No newline at end of file
diff --git a/functions/generatorParameters.html b/functions/generatorParameters.html
index c3490e1..bd6e7b2 100644
--- a/functions/generatorParameters.html
+++ b/functions/generatorParameters.html
@@ -1 +1,4 @@
-generatorParameters | ts-fsrs Function generatorParameters
- generator
Parameters(props?): FSRSParameters Parameters
Optional
props: Partial<FSRSParameters>
Returns FSRSParameters
Generated using TypeDoc
\ No newline at end of file
+generatorParameters | TS-FSRS Function generatorParameters
- generator
Parameters(props?): FSRSParameters Parameters
Optional
props: Partial<FSRSParameters>
Returns FSRSParameters
\ No newline at end of file
diff --git a/functions/get_fuzz_range.html b/functions/get_fuzz_range.html
index 2b14227..1c146a6 100644
--- a/functions/get_fuzz_range.html
+++ b/functions/get_fuzz_range.html
@@ -1 +1,4 @@
-get_fuzz_range | ts-fsrs Generated using TypeDoc
\ No newline at end of file
+get_fuzz_range | TS-FSRS
\ No newline at end of file
diff --git a/functions/show_diff_message.html b/functions/show_diff_message.html
index ecb0392..9b3e9d0 100644
--- a/functions/show_diff_message.html
+++ b/functions/show_diff_message.html
@@ -1 +1,4 @@
-show_diff_message | ts-fsrs Generated using TypeDoc
\ No newline at end of file
+show_diff_message | TS-FSRS
\ No newline at end of file
diff --git a/hierarchy.html b/hierarchy.html
new file mode 100644
index 0000000..9fcaf5a
--- /dev/null
+++ b/hierarchy.html
@@ -0,0 +1,4 @@
+TS-FSRS
\ No newline at end of file
diff --git a/index.html b/index.html
index 6afbff3..e1c88ff 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,7 @@
-ts-fsrs ts-fsrs
Introduction | 简体中文 |はじめに
+TS-FSRS TS-FSRS
Introduction | 简体中文 |はじめに
About The
6. Understanding Log Attributes:
Each ReviewLog
object contains various attributes that determine the review record information associated with the card, used for analysis, undoing the review, and optimization (WIP).
type ReviewLog = {
rating: Rating; // Rating of the review (Again, Hard, Good, Easy)
state: State; // State of the review (New, Learning, Review, Relearning)
due: Date; // Date of the last scheduling
stability: number; // Stability of the card before the review
difficulty: number; // Difficulty of the card before the review
elapsed_days: number; // Number of days elapsed since the last review
last_elapsed_days: number; // Number of days between the last two reviews
scheduled_days: number; // Number of days until the next review
review: Date; // Date of the review
}
-Generated using TypeDoc
\ No newline at end of file
+
\ No newline at end of file
diff --git a/interfaces/Card.html b/interfaces/Card.html
index 7609e70..95d63de 100644
--- a/interfaces/Card.html
+++ b/interfaces/Card.html
@@ -1,10 +1,13 @@
-Card | ts-fsrs Interface Card
interface Card {
difficulty: number;
due: Date;
elapsed_days: number;
lapses: number;
last_review?: Date;
reps: number;
scheduled_days: number;
stability: number;
state: State;
} Index
Properties
Properties
difficulty
difficulty: numberdue
due: Dateelapsed_ days
elapsed_ days: numberlapses
lapses: numberOptional
last_ review
last_ review?: Datereps
reps: numberscheduled_ days
scheduled_ days: numberstability
stability: numberstate
Generated using TypeDoc
\ No newline at end of file
+Card | TS-FSRS Interface Card
interface Card {
difficulty: number;
due: Date;
elapsed_days: number;
lapses: number;
last_review?: Date;
reps: number;
scheduled_days: number;
stability: number;
state: State;
} Index
Properties
Properties
difficulty
difficulty: numberdue
due: Dateelapsed_ days
elapsed_ days: numberlapses
lapses: numberOptional
last_ review
last_ review?: Datereps
reps: numberscheduled_ days
scheduled_ days: numberstability
stability: numberstate
\ No newline at end of file
diff --git a/interfaces/CardInput.html b/interfaces/CardInput.html
index b9ddeaf..3892de6 100644
--- a/interfaces/CardInput.html
+++ b/interfaces/CardInput.html
@@ -1,10 +1,13 @@
-CardInput | ts-fsrs Interface CardInput
interface CardInput {
difficulty: number;
due: DateInput;
elapsed_days: number;
lapses: number;
last_review?: null | DateInput;
reps: number;
scheduled_days: number;
stability: number;
state: StateType | State;
}Hierarchy
- Omit<Card, "state" | "due" | "last_review">
- CardInput
Index
Properties
Properties
difficulty
difficulty: numberdue
elapsed_ days
elapsed_ days: numberlapses
lapses: numberOptional
last_ review
reps
reps: numberscheduled_ days
scheduled_ days: numberstability
stability: numberstate
Generated using TypeDoc
\ No newline at end of file
+CardInput | TS-FSRS Interface CardInput
interface CardInput {
difficulty: number;
due: DateInput;
elapsed_days: number;
lapses: number;
last_review?: null | DateInput;
reps: number;
scheduled_days: number;
stability: number;
state: StateType | State;
}Hierarchy
- Omit<Card, "state" | "due" | "last_review">
- CardInput
Index
Properties
Properties
difficulty
difficulty: numberdue
elapsed_ days
elapsed_ days: numberlapses
lapses: numberOptional
last_ review
reps
reps: numberscheduled_ days
scheduled_ days: numberstability
stability: numberstate
\ No newline at end of file
diff --git a/interfaces/FSRSParameters.html b/interfaces/FSRSParameters.html
index a82317e..12c20f4 100644
--- a/interfaces/FSRSParameters.html
+++ b/interfaces/FSRSParameters.html
@@ -1,5 +1,8 @@
-FSRSParameters | ts-fsrs Interface FSRSParameters
interface FSRSParameters {
enable_fuzz: boolean;
maximum_interval: number;
request_retention: number;
w: number[];
} Index
Properties
Properties
enable_ fuzz
enable_ fuzz: booleanmaximum_ interval
maximum_ interval: numberrequest_ retention
request_ retention: numberw
w: number[]Generated using TypeDoc
\ No newline at end of file
+FSRSParameters | TS-FSRS Interface FSRSParameters
interface FSRSParameters {
enable_fuzz: boolean;
maximum_interval: number;
request_retention: number;
w: number[];
} Index
Properties
Properties
enable_ fuzz
enable_ fuzz: booleanmaximum_ interval
maximum_ interval: numberrequest_ retention
request_ retention: numberw
w: number[]
\ No newline at end of file
diff --git a/interfaces/ReviewLog.html b/interfaces/ReviewLog.html
index 706b84b..2e80b38 100644
--- a/interfaces/ReviewLog.html
+++ b/interfaces/ReviewLog.html
@@ -1,10 +1,13 @@
-ReviewLog | ts-fsrs Interface ReviewLog
interface ReviewLog {
difficulty: number;
due: Date;
elapsed_days: number;
last_elapsed_days: number;
rating: Rating;
review: Date;
scheduled_days: number;
stability: number;
state: State;
} Index
Properties
Properties
difficulty
difficulty: numberdue
due: Dateelapsed_ days
elapsed_ days: numberlast_ elapsed_ days
last_ elapsed_ days: numberrating
review
review: Datescheduled_ days
scheduled_ days: numberstability
stability: numberstate
Generated using TypeDoc
\ No newline at end of file
+ReviewLog | TS-FSRS Interface ReviewLog
interface ReviewLog {
difficulty: number;
due: Date;
elapsed_days: number;
last_elapsed_days: number;
rating: Rating;
review: Date;
scheduled_days: number;
stability: number;
state: State;
} Index
Properties
Properties
difficulty
difficulty: numberdue
due: Dateelapsed_ days
elapsed_ days: numberlast_ elapsed_ days
last_ elapsed_ days: numberrating
review
review: Datescheduled_ days
scheduled_ days: numberstability
stability: numberstate
\ No newline at end of file
diff --git a/interfaces/ReviewLogInput.html b/interfaces/ReviewLogInput.html
index 561f5a2..0e3c5ad 100644
--- a/interfaces/ReviewLogInput.html
+++ b/interfaces/ReviewLogInput.html
@@ -1,10 +1,13 @@
-ReviewLogInput | ts-fsrs Interface ReviewLogInput
interface ReviewLogInput {
difficulty: number;
due: DateInput;
elapsed_days: number;
last_elapsed_days: number;
rating: RatingType | Rating;
review: DateInput;
scheduled_days: number;
stability: number;
state: StateType | State;
}Hierarchy
- Omit<ReviewLog, "rating" | "state" | "due" | "review">
- ReviewLogInput
Index
Properties
Properties
difficulty
difficulty: numberdue
elapsed_ days
elapsed_ days: numberlast_ elapsed_ days
last_ elapsed_ days: numberrating
review
scheduled_ days
scheduled_ days: numberstability
stability: numberstate
Generated using TypeDoc
\ No newline at end of file
+ReviewLogInput | TS-FSRS Interface ReviewLogInput
interface ReviewLogInput {
difficulty: number;
due: DateInput;
elapsed_days: number;
last_elapsed_days: number;
rating: RatingType | Rating;
review: DateInput;
scheduled_days: number;
stability: number;
state: StateType | State;
}Hierarchy
- Omit<ReviewLog, "rating" | "state" | "due" | "review">
- ReviewLogInput
Index
Properties
Properties
difficulty
difficulty: numberdue
elapsed_ days
elapsed_ days: numberlast_ elapsed_ days
last_ elapsed_ days: numberrating
review
scheduled_ days
scheduled_ days: numberstability
stability: numberstate
\ No newline at end of file
diff --git a/modules.html b/modules.html
index e084603..6045230 100644
--- a/modules.html
+++ b/modules.html
@@ -1,39 +1,42 @@
-ts-fsrs ts-fsrs
Index
Enumerations
Classes
Interfaces
Type Aliases
Variables
Functions
Generated using TypeDoc
\ No newline at end of file
+TS-FSRS TS-FSRS
Index
Enumerations
Classes
Interfaces
Type Aliases
Variables
Functions
\ No newline at end of file
diff --git a/types/DateInput.html b/types/DateInput.html
index 0f34bf3..04c281b 100644
--- a/types/DateInput.html
+++ b/types/DateInput.html
@@ -1 +1,4 @@
-DateInput | ts-fsrs Type alias DateInput
Date Input: Date | number | stringGenerated using TypeDoc
\ No newline at end of file
+DateInput | TS-FSRS Type alias DateInput
Date Input: Date | number | string
\ No newline at end of file
diff --git a/types/Grade.html b/types/Grade.html
index 55758d4..ff8cbb7 100644
--- a/types/Grade.html
+++ b/types/Grade.html
@@ -1 +1,4 @@
-Grade | ts-fsrs Type alias Grade
Generated using TypeDoc
\ No newline at end of file
+Grade | TS-FSRS Type alias Grade
\ No newline at end of file
diff --git a/types/RatingType.html b/types/RatingType.html
index f458972..d5b7753 100644
--- a/types/RatingType.html
+++ b/types/RatingType.html
@@ -1 +1,4 @@
-RatingType | ts-fsrs Type alias RatingType
Rating Type: "Manual" | "Again" | "Hard" | "Good" | "Easy"Generated using TypeDoc
\ No newline at end of file
+RatingType | TS-FSRS Type alias RatingType
Rating Type: "Manual" | "Again" | "Hard" | "Good" | "Easy"
\ No newline at end of file
diff --git a/types/RecordLog.html b/types/RecordLog.html
index 172200b..f4b2823 100644
--- a/types/RecordLog.html
+++ b/types/RecordLog.html
@@ -1 +1,4 @@
-RecordLog | ts-fsrs Type alias RecordLog
Generated using TypeDoc
\ No newline at end of file
+RecordLog | TS-FSRS Type alias RecordLog
\ No newline at end of file
diff --git a/types/RecordLogItem.html b/types/RecordLogItem.html
index 3708943..aa87060 100644
--- a/types/RecordLogItem.html
+++ b/types/RecordLogItem.html
@@ -1 +1,4 @@
-RecordLogItem | ts-fsrs Generated using TypeDoc
\ No newline at end of file
+RecordLogItem | TS-FSRS
\ No newline at end of file
diff --git a/types/StateType.html b/types/StateType.html
index de00cbd..f4c38d1 100644
--- a/types/StateType.html
+++ b/types/StateType.html
@@ -1 +1,4 @@
-StateType | ts-fsrs Type alias StateType
State Type: "New" | "Learning" | "Review" | "Relearning"Generated using TypeDoc
\ No newline at end of file
+StateType | TS-FSRS Type alias StateType
State Type: "New" | "Learning" | "Review" | "Relearning"
\ No newline at end of file
diff --git a/types/double.html b/types/double.html
index f659b43..2d80604 100644
--- a/types/double.html
+++ b/types/double.html
@@ -1 +1,4 @@
-double | ts-fsrs Type alias double
double: number & {
__double__: void;
}Type declaration
__double__: void
Generated using TypeDoc
\ No newline at end of file
+double | TS-FSRS Type alias double
double: number & {
__double__: void;
}Type declaration
__double__: void
\ No newline at end of file
diff --git a/types/int.html b/types/int.html
index af9c9ef..c09fb5f 100644
--- a/types/int.html
+++ b/types/int.html
@@ -1 +1,4 @@
-int | ts-fsrs Type alias int
int: number & {
__int__: void;
}Type declaration
__int__: void
Generated using TypeDoc
\ No newline at end of file
+int | TS-FSRS Type alias int
int: number & {
__int__: void;
}Type declaration
__int__: void
\ No newline at end of file
diff --git a/types/unit.html b/types/unit.html
index 2622eb4..a664bc5 100644
--- a/types/unit.html
+++ b/types/unit.html
@@ -1 +1,4 @@
-unit | ts-fsrs Type alias unit
unit: "days" | "minutes"Generated using TypeDoc
\ No newline at end of file
+unit | TS-FSRS Type alias unit
unit: "days" | "minutes"
\ No newline at end of file
diff --git a/variables/DECAY.html b/variables/DECAY.html
index fe531b0..27813b4 100644
--- a/variables/DECAY.html
+++ b/variables/DECAY.html
@@ -1 +1,6 @@
-DECAY | ts-fsrs Variable DECAYConst
DECAY: number = -0.5Generated using TypeDoc
\ No newline at end of file
+DECAY | TS-FSRS Variable DECAYConst
DECAY: number = -0.5Default
DECAY = -0.5
+
+
\ No newline at end of file
diff --git a/variables/FACTOR.html b/variables/FACTOR.html
index 08a02ed..ebb8010 100644
--- a/variables/FACTOR.html
+++ b/variables/FACTOR.html
@@ -1 +1,8 @@
-FACTOR | ts-fsrs Variable FACTORConst
FACTOR: number = ...Generated using TypeDoc
\ No newline at end of file
+FACTOR | TS-FSRS Variable FACTORConst
FACTOR: number = ...FACTOR = Math.pow(0.9, 1 / DECAY) - 1= 19 / 81
+$$\text{FACTOR} = \frac{19}{81}$$
+Default
FACTOR = 19 / 81
+
+
\ No newline at end of file
diff --git a/variables/FSRSVersion.html b/variables/FSRSVersion.html
index 443ec15..c964ee8 100644
--- a/variables/FSRSVersion.html
+++ b/variables/FSRSVersion.html
@@ -1 +1,4 @@
-FSRSVersion | ts-fsrs Variable FSRSVersionConst
FSRSVersion: string = "3.5.4"Generated using TypeDoc
\ No newline at end of file
+FSRSVersion | TS-FSRS Variable FSRSVersionConst
FSRSVersion: string = "3.5.4"
\ No newline at end of file
diff --git a/variables/Grades.html b/variables/Grades.html
index 3a16a79..73ff7e8 100644
--- a/variables/Grades.html
+++ b/variables/Grades.html
@@ -1 +1,4 @@
-Grades | ts-fsrs Variable GradesConst
Generated using TypeDoc
\ No newline at end of file
+Grades | TS-FSRS Variable GradesConst
\ No newline at end of file
diff --git a/variables/default_enable_fuzz.html b/variables/default_enable_fuzz.html
index 49d2f04..ac46e2d 100644
--- a/variables/default_enable_fuzz.html
+++ b/variables/default_enable_fuzz.html
@@ -1 +1,4 @@
-default_enable_fuzz | ts-fsrs Variable default_enable_fuzzConst
default_ enable_ fuzz: false = falseGenerated using TypeDoc
\ No newline at end of file
+default_enable_fuzz | TS-FSRS Variable default_enable_fuzzConst
default_ enable_ fuzz: false = false
\ No newline at end of file
diff --git a/variables/default_maximum_interval.html b/variables/default_maximum_interval.html
index aeb5e4b..ed5a5cc 100644
--- a/variables/default_maximum_interval.html
+++ b/variables/default_maximum_interval.html
@@ -1 +1,4 @@
-default_maximum_interval | ts-fsrs Variable default_maximum_intervalConst
default_ maximum_ interval: 36500 = 36500Generated using TypeDoc
\ No newline at end of file
+default_maximum_interval | TS-FSRS Variable default_maximum_intervalConst
default_ maximum_ interval: 36500 = 36500
\ No newline at end of file
diff --git a/variables/default_request_retention.html b/variables/default_request_retention.html
index 8b36930..7184d56 100644
--- a/variables/default_request_retention.html
+++ b/variables/default_request_retention.html
@@ -1 +1,4 @@
-default_request_retention | ts-fsrs Variable default_request_retentionConst
default_ request_ retention: 0.9 = 0.9Generated using TypeDoc
\ No newline at end of file
+default_request_retention | TS-FSRS Variable default_request_retentionConst
default_ request_ retention: 0.9 = 0.9
\ No newline at end of file
diff --git a/variables/default_w.html b/variables/default_w.html
index ab0bc2f..bdcf1a1 100644
--- a/variables/default_w.html
+++ b/variables/default_w.html
@@ -1 +1,4 @@
-default_w | ts-fsrs Variable default_wConst
default_ w: number[] = ...Generated using TypeDoc
\ No newline at end of file
+default_w | TS-FSRS Variable default_wConst
default_ w: number[] = ...
\ No newline at end of file
If fuzzing is disabled or ivl is less than 2.5, it returns the original interval.
-