mirror of
https://github.com/DanilaFe/abacus
synced 2024-11-04 18:08:31 -08:00
Modify precision of NaiveNumber. Fix factorial to work with 0./a.exe Add function to get nth term of the exp Maclaurin series.
This commit is contained in:
parent
ac153521d4
commit
356084ef61
|
@ -29,7 +29,7 @@ public class NaiveNumber implements NumberInterface {
|
|||
|
||||
@Override
|
||||
public int precision() {
|
||||
return 4;
|
||||
return 10;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
15
src/org/nwapw/abacus/plugin/StandardPlugin.java
Normal file → Executable file
15
src/org/nwapw/abacus/plugin/StandardPlugin.java
Normal file → Executable file
|
@ -80,6 +80,9 @@ public class StandardPlugin extends Plugin {
|
|||
|
||||
@Override
|
||||
protected NumberInterface applyInternal(NumberInterface[] params) {
|
||||
if(params[0].signum() == 0){
|
||||
return (new NaiveNumber(1)).promoteTo(params[0].getClass());
|
||||
}
|
||||
NumberInterface factorial = params[0];
|
||||
NumberInterface multiplier = params[0];
|
||||
//It is necessary to later prevent calls of factorial on anything but non-negative integers.
|
||||
|
@ -89,6 +92,18 @@ public class StandardPlugin extends Plugin {
|
|||
return factorial;
|
||||
}
|
||||
});
|
||||
|
||||
System.out.println(getExpSeriesTerm(4, new NaiveNumber(3)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the nth term of the Taylor series (centered at 0) of e^x
|
||||
* @param n the term required (n >= 0).
|
||||
* @param x the real number at which the series is evaluated.
|
||||
* @return
|
||||
*/
|
||||
private NumberInterface getExpSeriesTerm(int n, NumberInterface x){
|
||||
return x.intPow(n).divide(this.getFunction("!").apply((new NaiveNumber(n)).promoteTo(x.getClass())));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user