1
0
espelhamento de https://github.com/DanilaFe/abacus sincronizado 2025-11-12 06:24:48 -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.

Esse commit está contido em:
Arthur Drobot 2017-07-26 11:05:12 -07:00
commit 42cedf7c43
2 arquivos alterados com 16 adições e 1 exclusões

Ver arquivo

@ -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 Arquivo normal → Arquivo executável
Ver arquivo

@ -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())));
}
}