zasdfgbnm 发表于 2010-4-3 09:14:35

关于if else的进一步优化

突破了两条分支只能给同一个变量赋值的局限性,可以同时给三个变量赋值if(condition){
    x = exp1;
}else{
    y = exp2;
}
可以用
Rec(Pol(exp1*condition+x*(not(condition)),exp2*condition+y*not(condition)),Y)if(condition){
    x = exp1;
    y = exp2;
    a = exp5;
}else{
    x = exp3;
    y = exp4;
    a = exp6;
}
可以用
Rec(Pol(exp1*condition+exp3*(not(condition)),exp2*condition+exp4*not(condition)),Y)*0+exp5*condition+exp6*not(condition) → A
此方法实质上是rec、pol组合赋值和乘零法的应用

Nero 发表于 2010-4-3 09:23:34

很好,但是很耗(空间)

zasdfgbnm 发表于 2010-4-3 09:55:20

很耗是因为代码本身很复杂,而不是在转换为es代码过程中变复杂的,这中复杂的代码占用代码空间是不可避免的
页: [1]
查看完整版本: 关于if else的进一步优化