1
0
mirror of https://github.com/DanilaFe/abacus synced 2024-12-24 08:12:39 -08:00

Implement sin function and helper functions such as getSmallAngle and floor.

This commit is contained in:
Arthur Drobot 2017-08-01 15:36:54 -07:00
parent c7136f903a
commit 661bc170fc
4 changed files with 98 additions and 0 deletions

View File

@ -98,6 +98,11 @@ public class NaiveNumber implements NumberInterface {
return (int) Math.ceil(value); return (int) Math.ceil(value);
} }
@Override
public int floor() {
return (int) Math.floor(value);
}
@Override @Override
public NumberInterface promoteTo(Class<? extends NumberInterface> toClass) { public NumberInterface promoteTo(Class<? extends NumberInterface> toClass) {
if (toClass == this.getClass()) return this; if (toClass == this.getClass()) return this;

View File

@ -85,6 +85,12 @@ public interface NumberInterface {
*/ */
int ceiling(); int ceiling();
/**
* Return the greatest integer less than or equal to the number.
* @return the greatest int >= the number, if int can hold the value.
*/
int floor();
/** /**
* Promotes this class to another number class. * Promotes this class to another number class.
* *

View File

@ -100,6 +100,11 @@ public class PreciseNumber implements NumberInterface {
return (int) Math.ceil(value.doubleValue()); return (int) Math.ceil(value.doubleValue());
} }
@Override
public int floor() {
return (int) Math.floor(value.doubleValue());
}
@Override @Override
public NumberInterface negate() { public NumberInterface negate() {
return new PreciseNumber(value.negate()); return new PreciseNumber(value.negate());

File diff suppressed because one or more lines are too long