Beispiel #1
0
func ExprGen(egp *prob.TreeParams, srules SimpRules, rng *rand.Rand) Expr {
	var ret Expr
	good := false
	cnt := 0

	for !good {
		egp.ResetCurr()
		egp.ResetTemp()

		//     eqn := ExprGenStats( &egp, rng )
		eqn := exprGrow(-1, ExprGenDepth, egp, rng)
		eqn.CalcExprStats(0)

		//     fmt.Printf( "%v\n", eqn)

		ret = eqn.Simplify(srules)
		ret.CalcExprStats(0)

		//     fmt.Printf( "%v\n\n", ret)

		// check eqn after simp
		good = egp.CheckExpr(ret)
		cnt++
	}
	return ret
}