@@ -109,22 +109,28 @@ trigs_rules = [@rule tan(~x) => sin(~x) / cos(~x)
109109 @rule sec (~ x) => one (~ x) / cos (~ x)
110110 @rule csc (~ x) => one (~ x) / sin (~ x)
111111 @rule cot (~ x) => cos (~ x) / sin (~ x)
112- @rule sin (~ n:: is_int_gt_one * ~ x) => sin ((~ n - 1 ) * ~ x) * cos (~ x) +
113- cos ((~ n - 1 ) * ~ x) * sin (~ x)
114- @rule cos (~ n:: is_int_gt_one * ~ x) => cos ((~ n - 1 ) * ~ x) * cos (~ x) -
115- sin ((~ n - 1 ) * ~ x) * sin (~ x)
116- @rule tan (~ n:: is_int_gt_one * ~ x) => (tan ((~ n - 1 ) * ~ x) + tan (~ x)) /
117- (1 - tan ((~ n - 1 ) * ~ x) * tan (~ x))
118- @rule csc (~ n:: is_int_gt_one * ~ x) => sec ((~ n - 1 ) * ~ x) * sec (~ x) *
119- csc ((~ n - 1 ) * ~ x) * csc (~ x) /
120- (sec ((~ n - 1 ) * ~ x) * csc (~ x) +
121- csc ((~ n - 1 ) * ~ x) * sec (~ x))
122- @rule sec (~ n:: is_int_gt_one * ~ x) => sec ((~ n - 1 ) * ~ x) * sec (~ x) *
123- csc ((~ n - 1 ) * ~ x) * csc (~ x) /
124- (csc ((~ n - 1 ) * ~ x) * csc (~ x) -
125- sec ((~ n - 1 ) * ~ x) * sec (~ x))
126- @rule cot (~ n:: is_int_gt_one * ~ x) => (cot ((~ n - 1 ) * ~ x) * cot (~ x) - 1 ) /
127- (cot ((~ n - 1 ) * ~ x) + cot (~ x))
112+ @rule sin (~ n:: is_int_gt_one *
113+ ~ x) => sin ((~ n - 1 ) * ~ x) * cos (~ x) +
114+ cos ((~ n - 1 ) * ~ x) * sin (~ x)
115+ @rule cos (~ n:: is_int_gt_one *
116+ ~ x) => cos ((~ n - 1 ) * ~ x) * cos (~ x) -
117+ sin ((~ n - 1 ) * ~ x) * sin (~ x)
118+ @rule tan (~ n:: is_int_gt_one *
119+ ~ x) => (tan ((~ n - 1 ) * ~ x) + tan (~ x)) /
120+ (1 - tan ((~ n - 1 ) * ~ x) * tan (~ x))
121+ @rule csc (~ n:: is_int_gt_one *
122+ ~ x) => sec ((~ n - 1 ) * ~ x) * sec (~ x) *
123+ csc ((~ n - 1 ) * ~ x) * csc (~ x) /
124+ (sec ((~ n - 1 ) * ~ x) * csc (~ x) +
125+ csc ((~ n - 1 ) * ~ x) * sec (~ x))
126+ @rule sec (~ n:: is_int_gt_one *
127+ ~ x) => sec ((~ n - 1 ) * ~ x) * sec (~ x) *
128+ csc ((~ n - 1 ) * ~ x) * csc (~ x) /
129+ (csc ((~ n - 1 ) * ~ x) * csc (~ x) -
130+ sec ((~ n - 1 ) * ~ x) * sec (~ x))
131+ @rule cot (~ n:: is_int_gt_one *
132+ ~ x) => (cot ((~ n - 1 ) * ~ x) * cot (~ x) - 1 ) /
133+ (cot ((~ n - 1 ) * ~ x) + cot (~ x))
128134 @rule 1 / sin (~ x) => csc (~ x)
129135 @rule 1 / cos (~ x) => sec (~ x)
130136 @rule 1 / tan (~ x) => cot (~ x)
@@ -140,18 +146,22 @@ trigs_rules = [@rule tan(~x) => sin(~x) / cos(~x)
140146 @rule sin (~ x + ~ y) => sin (~ x) * cos (~ y) + cos (~ x) * sin (~ y)
141147 @rule cos (~ x + ~ y) => cos (~ x) * cos (~ y) - sin (~ x) * sin (~ y)
142148 @rule tan (~ x + ~ y) => (tan (~ x) + tan (~ y)) / (1 - tan (~ x) * tan (~ y))
143- @rule csc (~ x + ~ y) => sec (~ x) * sec (~ y) * csc (~ x) * csc (~ y) /
144- (sec (~ x) * csc (~ y) + csc (~ x) * sec (~ y))
145- @rule sec (~ x + ~ y) => sec (~ x) * sec (~ y) * csc (~ x) * csc (~ y) /
146- (csc (~ x) * csc (~ y) - sec (~ x) * sec (~ y))
149+ @rule csc (~ x +
150+ ~ y) => sec (~ x) * sec (~ y) * csc (~ x) * csc (~ y) /
151+ (sec (~ x) * csc (~ y) + csc (~ x) * sec (~ y))
152+ @rule sec (~ x +
153+ ~ y) => sec (~ x) * sec (~ y) * csc (~ x) * csc (~ y) /
154+ (csc (~ x) * csc (~ y) - sec (~ x) * sec (~ y))
147155 @rule cot (~ x + ~ y) => (cot (~ x) * cot (~ y) - 1 ) / (cot (~ x) + cot (~ y))
148156 @rule sin (~ x - ~ y) => sin (~ x) * cos (~ y) - cos (~ x) * sin (~ y)
149157 @rule cos (~ x - ~ y) => cos (~ x) * cos (~ y) + sin (~ x) * sin (~ y)
150158 @rule tan (~ x - ~ y) => (tan (~ x) - tan (~ y)) / (1 + tan (~ x) * tan (~ y))
151- @rule csc (~ x - ~ y) => sec (~ x) * sec (~ y) * csc (~ x) * csc (~ y) /
152- (sec (~ x) * csc (~ y) - csc (~ x) * sec (~ y))
153- @rule sec (~ x - ~ y) => sec (~ x) * sec (~ y) * csc (~ x) * csc (~ y) /
154- (csc (~ x) * csc (~ y) + sec (~ x) * sec (~ y))
159+ @rule csc (~ x -
160+ ~ y) => sec (~ x) * sec (~ y) * csc (~ x) * csc (~ y) /
161+ (sec (~ x) * csc (~ y) - csc (~ x) * sec (~ y))
162+ @rule sec (~ x -
163+ ~ y) => sec (~ x) * sec (~ y) * csc (~ x) * csc (~ y) /
164+ (csc (~ x) * csc (~ y) + sec (~ x) * sec (~ y))
155165 @rule cot (~ x - ~ y) => (cot (~ x) * cot (~ y) + 1 ) / (cot (~ x) - cot (~ y))
156166
157167 # @rule sin(2*~x) => 2*sin(~x)*cos(~x)
@@ -239,8 +249,9 @@ rational_rules = [@rule Ω(+(~~xs)) => sum(map(Ω, ~~xs))
239249 @rule Ω (^ (~ x:: is_poly , ~ k:: is_neg_int )) => expand (^ (
240250 decompose_rational (~ x),
241251 - ~ k))
242- @rule Ω (~ x / ^ (~ y:: is_poly , ~ k:: is_pos_int )) => expand (~ x *
243- ^ (
252+ @rule Ω (~ x /
253+ ^ (~ y:: is_poly , ~ k:: is_pos_int )) => expand (~ x *
254+ ^ (
244255 decompose_rational (~ y),
245256 ~ k))
246257 @rule Ω (~ x / ~ y:: is_poly ) => expand (~ x * decompose_rational (~ y))
0 commit comments