package language; public class MyInt extends MyNumber { public MyNumber neg() { return new MyInt(-val); } public boolean ne(MyNumber y) { int nt=y.ntype; /* if(y.getClass().getName().equals("MyInt")){ */ if(nt==2){ return val!=((MyInt)y).val; } /* if(y.getClass().getName().equals("MyDouble")){ */ if(nt==3){ return (double)val!=((MyDouble)y).val; } return false; } public MyNumber mod(MyNumber y) { int nt=y.ntype; /* if(y.getClass().getName().equals("MyInt")){ */ if(nt==2){ return new MyInt(val%((MyInt)y).val); } /* if(y.getClass().getName().equals("MyDouble")){ */ if(nt==3){ return new MyDouble(val%((MyDouble)y).val); } return null; } public MyNumber tan() { return new MyDouble(Math.tan((double)val)); } public MyNumber sqrt() { return new MyDouble(Math.sqrt((double)val)); } public MyNumber sin() { return new MyDouble(Math.sin((double)val)); } public MyNumber log() { return new MyDouble(Math.log((double)val)); } public MyNumber exp() { return new MyDouble(Math.exp((double)val)); } public MyNumber cos() { return new MyDouble(Math.cos((double)val)); } public MyNumber atan() { return new MyDouble(Math.atan((double)val)); } public int getInt() { return val; } public boolean ge(MyNumber y) { int nt=y.ntype; /* if(y.getClass().getName().equals("MyInt")){ */ if(nt==2){// MyInt return val>=((MyInt)y).val; } /* if(y.getClass().getName().equals("MyDouble")){ */ if(nt==3){// MyDouble return (double)val>=((MyDouble)y).val; } return false; } public boolean le(MyNumber y) { int nt=y.ntype; /* if(y.getClass().getName().equals("MyInt")){ */ if(nt==2){ return val<=((MyInt)y).val; } /* if(y.getClass().getName().equals("MyDouble")){ */ if(nt==3){ return (double)val<=((MyDouble)y).val; } return false; } public boolean eq(MyNumber y) { int nt=y.ntype; /* if(y.getClass().getName().equals("MyInt")){ */ if(nt==2){// MyInt return val==((MyInt)y).val; } /* if(y.getClass().getName().equals("MyDouble")){ */ if(nt==3){// MyDouble return (double)val==((MyDouble)y).val; } return false; } public boolean gt(MyNumber y) { int nt=y.ntype; /* if(y.getClass().getName().equals("MyInt")){ */ if(nt==2){ //MyInt return val>((MyInt)y).val; } /* if(y.getClass().getName().equals("MyDouble")){ */ if(nt==3){ //MyDouble return (double)val>((MyDouble)y).val; } return false; } public boolean lt(MyNumber y) { int nt=y.ntype; /* if(y.getClass().getName().equals("MyInt")){ */ if(nt==2){ return val<((MyInt)y).val; } /* if(y.getClass().getName().equals("MyDouble")){ */ if(nt==3){ return (double)val<((MyDouble)y).val; } return false; } public double exp(double x, double y) { return Math.exp(y*(Math.log(x))); } public MyNumber exp(MyNumber y) { int i; int xi; int nt=y.ntype; double xd,yd; /* if(y.getClass().getName().equals("MyInt")){ */ if(nt==2){ // MyInt int yy=((MyInt)y).val; if(yy==0) return new MyInt(1); if(yy>0){ xi=1; for(i=0;i