All Downloads are FREE. Search and download functionalities are using the official Maven repository.

expr.Log.scala Maven / Gradle / Ivy

The newest version!
// logarithmic functions, exp etc.
package galileo.expr

import galileo.constants.ConstantE
import galileo.environment.Environment

case class LogF1( e:Expr ) extends FunF1{
	override def toString() = "log(" + e.toString() + ")"
	def info(env:Option[Environment]=None):String = "LogF1(" + e + ")"
	override def visit( env:Option[Environment]=None):Expr = e.visit( env ) match {
		case ConstantE() => Number( 1 )
		case Power( ConstantE(), e:Expr ) => e
		case Power( a:Expr, b:Expr ) => Product( b, LogF1( a ) ).visit()
		case Number( n ) => Number( math.log( n ) )
		case f:Expr => LogF1( f )
	}
}

case class ExpF1( e:Expr ) extends FunF1 {
	override def toString() = "exp(" + e.toString() + ")"
	def info(env:Option[Environment]=None):String = "ExpF1(" + e + ")"
	override def visit( env:Option[Environment]=None):Expr = e.visit( env ) match {
		case Number( n ) => Number( math.exp( n ) )
		case f:Expr => ExpF1( f )
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy