egison 3.7.5 → 3.7.6
raw patch · 3 files changed
+28/−29 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- egison.cabal +1/−1
- lib/math/normalize.egi +26/−26
- sample/graph.egi +1/−2
egison.cabal view
@@ -1,5 +1,5 @@ Name: egison-Version: 3.7.5+Version: 3.7.6 Synopsis: Programming language with non-linear pattern-matching against non-free data Description: An interpreter for Egison, a **pattern-matching-oriented**, purely functional programming language.
lib/math/normalize.egi view
@@ -147,47 +147,47 @@ (define $rewrite-rule-for-cos-and-sin-expr (lambda [$expr] (match [expr expr] [math-expr math-expr]- {[[<div (+ (* $a (,cos $慮) $mr)+ {[[<div (+ (* $a (,cos $x) $mr) $pr1) $pr2>- (| <div (+ (* _ (| (,cos ,(/ 慮 2)) (,sin ,(/ 慮 2))) _) _) _>- <div _ (+ (* _ (| (,cos ,(/ 慮 2)) (,sin ,(/ 慮 2))) _) _)>)]- (rewrite-rule-for-cos-and-sin-expr (/' (+' (*' a (-' (cos (/ 慮 2))^2 (sin (/ 慮 2))^2) mr) pr1) pr2))]- [[<div (+ (* $a (,sin $慮) $mr)+ (| <div (+ (* _ (| (,cos ,(/ x 2)) (,sin ,(/ x 2))) _) _) _>+ <div _ (+ (* _ (| (,cos ,(/ x 2)) (,sin ,(/ x 2))) _) _)>)]+ (rewrite-rule-for-cos-and-sin-expr (/' (+' (*' a (-' (cos (/ x 2))^2 (sin (/ x 2))^2) mr) pr1) pr2))]+ [[<div (+ (* $a (,sin $x) $mr) $pr1) $pr2>- (| <div (+ (* _ (| (,cos ,(/ 慮 2)) (,sin ,(/ 慮 2))) _) _) _>- <div _ (+ (* _ (| (,cos ,(/ 慮 2)) (,sin ,(/ 慮 2))) _) _)>)]- (rewrite-rule-for-cos-and-sin-expr (/' (+' (*' (*' a 2) (*' (cos (/ 慮 2)) (sin (/ 慮 2))) mr) pr1) pr2))]+ (| <div (+ (* _ (| (,cos ,(/ x 2)) (,sin ,(/ x 2))) _) _) _>+ <div _ (+ (* _ (| (,cos ,(/ x 2)) (,sin ,(/ x 2))) _) _)>)]+ (rewrite-rule-for-cos-and-sin-expr (/' (+' (*' (*' a 2) (*' (cos (/ x 2)) (sin (/ x 2))) mr) pr1) pr2))] [[<div $pr2- (+ (* $a (,cos $慮) $mr)+ (+ (* $a (,cos $x) $mr) $pr1)>- (| <div (+ (* _ (| (,cos ,(/ 慮 2)) (,sin ,(/ 慮 2))) _) _) _>- <div _ (+ (* _ (| (,cos ,(/ 慮 2)) (,sin ,(/ 慮 2))) _) _)>)]- (rewrite-rule-for-cos-and-sin-expr (/' pr2 (+' (*' a (-' (cos (/ 慮 2))^2 (sin (/ 慮 2))^2) mr) pr1)))]+ (| <div (+ (* _ (| (,cos ,(/ x 2)) (,sin ,(/ x 2))) _) _) _>+ <div _ (+ (* _ (| (,cos ,(/ x 2)) (,sin ,(/ x 2))) _) _)>)]+ (rewrite-rule-for-cos-and-sin-expr (/' pr2 (+' (*' a (-' (cos (/ x 2))^2 (sin (/ x 2))^2) mr) pr1)))] [[<div $pr2- (+ (* $a (,sin $慮) $mr)+ (+ (* $a (,sin $x) $mr) $pr1)>- (| <div (+ (* _ (| (,cos ,(/ 慮 2)) (,sin ,(/ 慮 2))) _) _) _>- <div _ (+ (* _ (| (,cos ,(/ 慮 2)) (,sin ,(/ 慮 2))) _) _)>)]- (rewrite-rule-for-cos-and-sin-expr (/' pr2 (+' (*' (*' a 2) (*' (cos (/ 慮 2)) (sin (/ 慮 2))) mr) pr1)))]+ (| <div (+ (* _ (| (,cos ,(/ x 2)) (,sin ,(/ x 2))) _) _) _>+ <div _ (+ (* _ (| (,cos ,(/ x 2)) (,sin ,(/ x 2))) _) _)>)]+ (rewrite-rule-for-cos-and-sin-expr (/' pr2 (+' (*' (*' a 2) (*' (cos (/ x 2)) (sin (/ x 2))) mr) pr1)))] [_ expr]}))) (define $rewrite-rule-for-cos-and-sin-poly (lambda [$poly] (match poly math-expr- {[(+ (* $a (,cos $慮)^,2 $mr)- (* ,a (,sin ,慮)^,2 ,mr)+ {[(+ (* $a (,cos $x)^,2 $mr)+ (* ,a (,sin ,x)^,2 ,mr) $pr) (rewrite-rule-for-cos-and-sin-poly (+' pr (*' a mr)))] [(+ (* $a $mr)- (* ,(* -1 a) (,sin $慮)^,2 ,mr)+ (* ,(* -1 a) (,sin $x)^,2 ,mr) $pr)- (rewrite-rule-for-cos-and-sin-poly (+' pr (*' a (cos 慮)^2 mr)))]+ (rewrite-rule-for-cos-and-sin-poly (+' pr (*' a (cos x)^2 mr)))] [(+ (* $a $mr)- (* ,(* -1 a) (,cos $慮)^,2 ,mr)+ (* ,(* -1 a) (,cos $x)^,2 ,mr) $pr)- (rewrite-rule-for-cos-and-sin-poly (+' pr (*' a (sin 慮)^2 mr)))]+ (rewrite-rule-for-cos-and-sin-poly (+' pr (*' a (sin x)^2 mr)))] [_ poly]}))) (define $rewrite-rule-for-cos-to-sin 1#(map-terms rewrite-rule-for-cos-to-sin-term' %1))@@ -195,8 +195,8 @@ (define $rewrite-rule-for-cos-to-sin-term' (lambda [$term] (match term math-expr- {[(* $a (,cos $θ)^,2 $mr)- (*' a (-' 1 (sin θ)^2) (rewrite-rule-for-cos-to-sin-term' mr))]+ {[(* $a (,cos $x)^,2 $mr)+ (*' a (-' 1 (sin x)^2) (rewrite-rule-for-cos-to-sin-term' mr))] [_ term]}))) ;;@@ -231,8 +231,8 @@ (define $rewrite-rule-for-cos-to-sin-term' (lambda [$term] (match term math-expr- {[(* $a (,cos $θ)^,2 $mr)- (*' a (-' 1 (sin θ)^2) (rewrite-rule-for-cos-to-sin-term' mr))]+ {[(* $a (,cos $x)^,2 $mr)+ (*' a (-' 1 (sin x)^2) (rewrite-rule-for-cos-to-sin-term' mr))] [_ term]}))) ;;
sample/graph.egi view
@@ -80,7 +80,6 @@ <cons <edge ,x_1 $x_i> (loop $j [2 (- i 1)] <cons <edge ,x_j ,x_i> ...>- ...)- _>+ ...)> _)> x])))