File tree 2 files changed +18
-5
lines changed
sympy/functions/elementary
2 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -50,8 +50,13 @@ def test_sin():
50
50
assert sin (5 * pi / 2 ) == 1
51
51
assert sin (7 * pi / 2 ) == - 1
52
52
53
- n = symbols ('n' , integer = True )
54
- assert sin (pi * n / 2 ) == (- 1 )** (n / 2 - S .Half )
53
+ ne = symbols ('ne' , integer = True , even = False )
54
+ e = symbols ('e' , even = True )
55
+ assert sin (pi * ne / 2 ) == (- 1 )** (ne / 2 - S .Half )
56
+ assert sin (pi * k / 2 ).func == sin
57
+ assert sin (pi * e / 2 ) == 0
58
+ assert sin (pi * k ) == 0
59
+ assert sin (pi * k ).subs (k , 3 ) == sin (pi * k / 2 ).subs (k , 6 ) # issue 8298
55
60
56
61
assert sin (pi / 3 ) == S .Half * sqrt (3 )
57
62
assert sin (- 2 * pi / 3 ) == - S .Half * sqrt (3 )
@@ -223,8 +228,10 @@ def test_cos():
223
228
assert cos ((- 3 * 10 ** 73 + 1 )* pi / 2 ) == 0
224
229
assert cos ((7 * 10 ** 103 + 1 )* pi / 2 ) == 0
225
230
226
- n = symbols ('n' , integer = True )
231
+ n = symbols ('n' , integer = True , even = False )
232
+ e = symbols ('e' , even = True )
227
233
assert cos (pi * n / 2 ) == 0
234
+ assert cos (pi * e / 2 ) == (- 1 )** (e / 2 )
228
235
229
236
assert cos (pi ) == - 1
230
237
assert cos (- pi ) == - 1
Original file line number Diff line number Diff line change @@ -231,7 +231,10 @@ def eval(cls, arg):
231
231
return S .Zero
232
232
233
233
if (2 * pi_coeff ).is_integer :
234
- return S .NegativeOne ** (pi_coeff - S .Half )
234
+ if pi_coeff .is_even :
235
+ return S .Zero
236
+ elif pi_coeff .is_even is False :
237
+ return S .NegativeOne ** (pi_coeff - S .Half )
235
238
236
239
if not pi_coeff .is_Rational :
237
240
narg = pi_coeff * S .Pi
@@ -463,7 +466,10 @@ def eval(cls, arg):
463
466
return (S .NegativeOne )** pi_coeff
464
467
465
468
if (2 * pi_coeff ).is_integer :
466
- return S .Zero
469
+ if pi_coeff .is_even :
470
+ return (S .NegativeOne )** (pi_coeff / 2 )
471
+ elif pi_coeff .is_even is False :
472
+ return S .Zero
467
473
468
474
if not pi_coeff .is_Rational :
469
475
narg = pi_coeff * S .Pi
You can’t perform that action at this time.
0 commit comments