提交 51276b41 authored 作者: Olivier Breuleux's avatar Olivier Breuleux

added scalar_opt.py for scalar optimizations

上级 ff9f0ea8
import unittest
from gof import Result, Op, Env, modes
import gof
from scalar import *
from scalar_opt import *
def inputs():
x = Scalar('float64', name = 'x')
y = Scalar('float64', name = 'y')
z = Scalar('float64', name = 'z')
return x, y, z
class _test_opts(unittest.TestCase):
def test_pow_to_sqr(self):
x, y, z = inputs()
e = x ** 2.0
g = Env([x], [e])
assert str(g) == "[Pow(x, 2.0)]"
gof.ConstantFinder().optimize(g)
opt2.optimize(g)
assert str(g) == "[Sqr(x)]"
if __name__ == '__main__':
unittest.main()
from scalar import *
from gof import PatternOptimizer
c2 = constant(2.0)
opt1 = PatternOptimizer((Mul, 'x', 'x'), (Sqr, 'x'))
opt2 = PatternOptimizer((Pow, 'x', c2), (Sqr, 'x'))
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论