<s> """<STR_LIT>""" <EOL> from sympy . polys . polyfuncs import ( <EOL> symmetrize , horner , interpolate , rational_interpolate , viete , <EOL> ) <EOL> from sympy . polys . polyerrors import ( <EOL> MultivariatePolynomialError , <EOL> ) <EOL> from sympy import symbols <EOL> from sympy . utilities . pytest import raises <EOL> from sympy . abc import a , b , c , d , e , x , y , z <EOL> def test_symmetrize ( ) : <EOL> assert symmetrize ( <NUM_LIT:0> , x , y , z ) == ( <NUM_LIT:0> , <NUM_LIT:0> ) <EOL> assert symmetrize ( <NUM_LIT:1> , x , y , z ) == ( <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> s1 = x + y + z <EOL> s2 = x * y + x * z + y * z <EOL> s3 = x * y * z <EOL> assert symmetrize ( <NUM_LIT:1> ) == ( <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> assert symmetrize ( <NUM_LIT:1> , formal = True ) == ( <NUM_LIT:1> , <NUM_LIT:0> , [ ] ) <EOL> assert symmetrize ( x ) == ( x , <NUM_LIT:0> ) <EOL> assert symmetrize ( x + <NUM_LIT:1> ) == ( x + <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> assert symmetrize ( x , x , y ) == ( x + y , - y ) <EOL> assert symmetrize ( x + <NUM_LIT:1> , x , y ) == ( x + y + <NUM_LIT:1> , - y ) <EOL> assert symmetrize ( x , x , y , z ) == ( s1 , - y - z ) <EOL> assert symmetrize ( x + <NUM_LIT:1> , x , y , z ) == ( s1 + <NUM_LIT:1> , - y - z ) <EOL> assert symmetrize ( x ** <NUM_LIT:2> , x , y , z ) == ( s1 ** <NUM_LIT:2> - <NUM_LIT:2> * s2 , - y ** <NUM_LIT:2> - z ** <NUM_LIT:2> ) <EOL> assert symmetrize ( x ** <NUM_LIT:2> + y ** <NUM_LIT:2> ) == ( - <NUM_LIT:2> * x * y + ( x + y ) ** <NUM_LIT:2> , <NUM_LIT:0> ) <EOL> assert symmetrize ( x ** <NUM_LIT:2> - y ** <NUM_LIT:2> ) == ( - <NUM_LIT:2> * x * y + ( x + y ) ** <NUM_LIT:2> , - <NUM_LIT:2> * y ** <NUM_LIT:2> ) <EOL> assert symmetrize ( x ** <NUM_LIT:3> + y ** <NUM_LIT:2> + a * x ** <NUM_LIT:2> + b * y ** <NUM_LIT:3> , x , y ) == ( - <NUM_LIT:3> * x * y * ( x + y ) - <NUM_LIT:2> * a * x * y + a * ( x + y ) ** <NUM_LIT:2> + ( x + y ) ** <NUM_LIT:3> , <EOL> y ** <NUM_LIT:2> * ( <NUM_LIT:1> - a ) + y ** <NUM_LIT:3> * ( b - <NUM_LIT:1> ) ) <EOL> U = [ u0 , u1 , u2 ] = symbols ( '<STR_LIT>' ) <EOL> assert symmetrize ( x + <NUM_LIT:1> , x , y , z , formal = True , symbols = U ) == ( u0 + <NUM_LIT:1> , - y - z , [ ( u0 , x + y + z ) , ( u1 , x * y + x * z + y * z ) , ( u2 , x * y * z ) ] ) <EOL> assert symmetrize ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) == [ ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:3> , <NUM_LIT:0> ) ] <EOL> assert symmetrize ( [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] , formal = True ) == ( [ ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:0> ) , ( <NUM_LIT:3> , <NUM_LIT:0> ) ] , [ ] ) <EOL> assert symmetrize ( [ x + y , x - y ] ) == [ ( x + y , <NUM_LIT:0> ) , ( x + y , - <NUM_LIT:2> * y ) ] <EOL> def test_horner ( ) : <EOL> assert horner ( <NUM_LIT:0> ) == <NUM_LIT:0> <EOL> assert horner ( <NUM_LIT:1> ) == <NUM_LIT:1> <EOL> assert horner ( x ) == x <EOL> assert horner ( x + <NUM_LIT:1> ) == x + <NUM_LIT:1> <EOL> assert horner ( x ** <NUM_LIT:2> + <NUM_LIT:1> ) == x ** <NUM_LIT:2> + <NUM_LIT:1> <EOL> assert horner ( x ** <NUM_LIT:2> + x ) == ( x + <NUM_LIT:1> ) * x <EOL> assert horner ( x ** <NUM_LIT:2> + x + <NUM_LIT:1> ) == ( x + <NUM_LIT:1> ) * x + <NUM_LIT:1> <EOL> assert horner ( <EOL> <NUM_LIT:9> * x ** <NUM_LIT:4> + <NUM_LIT:8> * x ** <NUM_LIT:3> + <NUM_LIT:7> * x ** <NUM_LIT:2> + <NUM_LIT:6> * x + <NUM_LIT:5> ) == ( ( ( <NUM_LIT:9> * x + <NUM_LIT:8> ) * x + <NUM_LIT:7> ) * x + <NUM_LIT:6> ) * x + <NUM_LIT:5> <EOL> assert horner ( <EOL> a * x ** <NUM_LIT:4> + b * x ** <NUM_LIT:3> + c * x ** <NUM_LIT:2> + d * x + e ) == ( ( ( a * x + b ) * x + c ) * x + d ) * x + e <EOL> assert horner ( <NUM_LIT:4> * x ** <NUM_LIT:2> * y ** <NUM_LIT:2> + <NUM_LIT:2> * x ** <NUM_LIT:2> * y + <NUM_LIT:2> * x * y ** <NUM_LIT:2> + x * y , wrt = x ) == ( ( <EOL> <NUM_LIT:4> * y + <NUM_LIT:2> ) * x * y + ( <NUM_LIT:2> * y + <NUM_LIT:1> ) * y ) * x <EOL> assert horner ( <NUM_LIT:4> * x ** <NUM_LIT:2> * y ** <NUM_LIT:2> + <NUM_LIT:2> * x ** <NUM_LIT:2> * y + <NUM_LIT:2> * x * y ** <NUM_LIT:2> + x * y , wrt = y ) == ( ( <EOL> <NUM_LIT:4> * x + <NUM_LIT:2> ) * y * x + ( <NUM_LIT:2> * x + <NUM_LIT:1> ) * x ) * y <EOL> def test_interpolate ( ) : <EOL> assert interpolate ( [ <NUM_LIT:1> , <NUM_LIT:4> , <NUM_LIT:9> , <NUM_LIT:16> ] , x ) == x ** <NUM_LIT:2> <EOL> assert interpolate ( [ ( <NUM_LIT:1> , <NUM_LIT:1> ) , ( <NUM_LIT:2> , <NUM_LIT:4> ) , ( <NUM_LIT:3> , <NUM_LIT:9> ) ] , x ) == x ** <NUM_LIT:2> <EOL> assert interpolate ( [ ( <NUM_LIT:1> , <NUM_LIT:2> ) , ( <NUM_LIT:2> , <NUM_LIT:5> ) , ( <NUM_LIT:3> , <NUM_LIT:10> ) ] , x ) == <NUM_LIT:1> + x ** <NUM_LIT:2> <EOL> assert interpolate ( { <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:5> , <NUM_LIT:3> : <NUM_LIT:10> } , x ) == <NUM_LIT:1> + x ** <NUM_LIT:2> <EOL> def test_rational_interpolate ( ) : <EOL> x , y = symbols ( '<STR_LIT>' ) <EOL> xdata = [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> ] <EOL> ydata1 = [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:200> , <NUM_LIT:255> , <NUM_LIT> , <NUM_LIT> ] <EOL> ydata2 = [ - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] <EOL> assert rational_interpolate ( list ( zip ( xdata , ydata1 ) ) , <NUM_LIT:2> ) == ( <EOL> ( <NUM_LIT> * x ** <NUM_LIT:2> + <NUM_LIT> ) / x ) <EOL> assert rational_interpolate ( list ( zip ( xdata , ydata1 ) ) , <NUM_LIT:3> ) == ( <EOL> ( <NUM_LIT> * x ** <NUM_LIT:2> + <NUM_LIT> ) / x ) <EOL> assert rational_interpolate ( list ( zip ( xdata , ydata2 ) ) , <NUM_LIT:2> , X = y ) == ( <EOL> ( <NUM_LIT> * y ** <NUM_LIT:2> - <NUM_LIT> ) / ( y + <NUM_LIT:1> ) ) <EOL> xdata = list ( range ( <NUM_LIT:1> , <NUM_LIT:11> ) ) <EOL> ydata = [ - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <EOL> - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <EOL> - <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <EOL> - <NUM_LIT> ] <EOL> assert rational_interpolate ( list ( zip ( xdata , ydata ) ) , <NUM_LIT:5> ) == ( <EOL> ( - <NUM_LIT> * x ** <NUM_LIT:4> + <EOL> <NUM_LIT> * x ** <NUM_LIT:3> - <NUM_LIT> * x ** <NUM_LIT:2> + <NUM_LIT> * x <EOL> - <NUM_LIT> ) / ( x ** <NUM_LIT:3> + <NUM_LIT:9> * x ** <NUM_LIT:2> - <NUM_LIT:3> * x + <NUM_LIT:11> ) ) <EOL> def test_viete ( ) : <EOL> r1 , r2 = symbols ( '<STR_LIT>' ) <EOL> assert viete ( <EOL> a * x ** <NUM_LIT:2> + b * x + c , [ r1 , r2 ] , x ) == [ ( r1 + r2 , - b / a ) , ( r1 * r2 , c / a ) ] <EOL> raises ( ValueError , lambda : viete ( <NUM_LIT:1> , [ ] , x ) ) <EOL> raises ( ValueError , lambda : viete ( x ** <NUM_LIT:2> + <NUM_LIT:1> , [ r1 ] ) ) <EOL> raises ( MultivariatePolynomialError , lambda : viete ( x + y , [ r1 ] ) ) </s>
