public override Exp Simplify() { Exp _A_Simp = _A.Simplify(); if (_A_Simp.IsConst()) { if (_A_Simp.IsNull()) { return(new Cst(float.NegativeInfinity)); } if (_A_Simp.ToValue().ToFloat() == 1.0f) { return(0.0f); } if (_A_Simp.ToValue().ToString() == "℮") { return(1.0f); } if (_A_Simp.ToValue().ToFloat() > 0.0f) { return((float)Math.Log(_A_Simp.ToValue().ToFloat(), Math.E)); } } return(new Ln(_A_Simp)); }
public override Exp Simplify() { Exp _A_Simp = _A.Simplify(); Exp _B_Simp = _B.Simplify(); if (_A_Simp.IsConst()) { if (_A_Simp.IsNull()) { return(0); } if (_B_Simp.IsConst()) { if (_B_Simp.IsNull()) { return(new Value(float.NaN)); } return(_A_Simp.ToValue().ToFloat() / _B_Simp.ToValue().ToFloat()); } return(_A_Simp / _B_Simp); } if (_B_Simp.IsConst()) { if (_B_Simp.IsNull()) { return(new Value(float.NaN)); } if (_B_Simp.ToValue().ToFloat() == 1.0f) { return(_A_Simp); } return(_A_Simp / _B_Simp); } return(_A_Simp / _B_Simp); }
public override Exp Simplify() { Exp _A_Simp = _A.Simplify(); Exp _B_Simp = _B.Simplify(); return((_A_Simp.IsConst()) ? (_B_Simp.IsConst()) ? new Cst(_A.ToValue().ToFloat() - _B.ToValue().ToFloat()) : _A_Simp - _B_Simp : (_B_Simp.IsConst()) ? _A_Simp - _A_Simp : _A_Simp - _B_Simp); }
public override Value ToValue() { Exp _A_Simp = _A.Simplify(); Exp _B_Simp = _B.Simplify(); return(new Value((float)System.Math.Pow(_A_Simp.ToValue().ToFloat(), _B_Simp.ToValue().ToFloat()))); }
public override Exp Simplify() { Exp _A_Simp = _A.Simplify(); Exp _B_Simp = _B.Simplify(); if (_A_Simp.IsConst()) { if (_B_Simp.IsConst()) { return(_A_Simp.ToValue().ToFloat() + _B_Simp.ToValue().ToFloat()); } if (_A_Simp.IsNull()) { return(_B_Simp); } return(_A_Simp + _B_Simp); } if (_B_Simp.IsConst()) { if (_B_Simp.IsNull()) { return(_A_Simp); } return(_A_Simp + _B_Simp); } return(_A_Simp + _B_Simp); }
public override Exp Simplify() { Exp _A_Simp = _A.Simplify(); Exp _B_Simp = _B.Simplify(); if (_A_Simp.IsConst()) { if (_A_Simp.IsNull()) { return(0); } if (_B_Simp.IsConst()) { if (_B_Simp.IsNull()) { return(1); } return((float)System.Math.Pow(_A_Simp.ToValue().ToFloat(), _B_Simp.ToValue().ToFloat())); } if (_A_Simp.ToValue().ToFloat() == 1.0f) { return(1.0f); } return(new Pow(_A_Simp, _B_Simp)); } if (_B_Simp.IsConst()) { if (_B_Simp.IsNull()) { return(1); } if (_B_Simp.ToValue().ToFloat() == 1.0f) { return(_A_Simp); } return(new Pow(_A_Simp, _B_Simp)); } return(new Pow(_A_Simp, _B_Simp)); }
public override Value ToValue() { return(new Value(_A.ToValue().ToFloat() * _B.ToValue().ToFloat())); }
public override bool IsNull() { Exp _A_Simp = _A.Simplify(); return(_A_Simp.IsConst() && _A_Simp.ToValue().ToFloat() == 1.0f); }