mirror of
https://github.com/DanilaFe/abacus
synced 2024-12-23 07:50:09 -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
ce2373be8e
commit
42cedf7c43
|
@ -29,7 +29,7 @@ public class NaiveNumber implements NumberInterface {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int precision() {
|
public int precision() {
|
||||||
return 4;
|
return 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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
|
@Override
|
||||||
protected NumberInterface applyInternal(NumberInterface[] params) {
|
protected NumberInterface applyInternal(NumberInterface[] params) {
|
||||||
|
if(params[0].signum() == 0){
|
||||||
|
return (new NaiveNumber(1)).promoteTo(params[0].getClass());
|
||||||
|
}
|
||||||
NumberInterface factorial = params[0];
|
NumberInterface factorial = params[0];
|
||||||
NumberInterface multiplier = params[0];
|
NumberInterface multiplier = params[0];
|
||||||
//It is necessary to later prevent calls of factorial on anything but non-negative integers.
|
//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;
|
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