Skip to content

Commit

Permalink
Allow negative real and imag values in complex
Browse files Browse the repository at this point in the history
  • Loading branch information
namannimmo10 committed Jan 23, 2022
1 parent c81b0ae commit 9abb854
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 6 deletions.
1 change: 1 addition & 0 deletions tests/complex1.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ def test_complex():
c1 = complex(3, 4)
c2 = complex(2, 4.5)
c3 = complex(3., 4.)
c3 = complex(-3., 4.)
b = c1 != c2
b = c1 == c3

Expand Down
4 changes: 2 additions & 2 deletions tests/reference/asr-complex1-f26c460.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
"basename": "asr-complex1-f26c460",
"cmd": "lpython --show-asr --no-color {infile} -o {outfile}",
"infile": "tests/complex1.py",
"infile_hash": "675b6441d21e32ad7819fe67b9985efec7e09e7ef083869c6890ed53",
"infile_hash": "0d7b7bff7f6b747262657cba9599938f2e1d2167113b7a213da2290c",
"outfile": null,
"outfile_hash": null,
"stdout": "asr-complex1-f26c460.stdout",
"stdout_hash": "bdc5918344ff9092380b33d0179517dee9a35228206090dc8b774b6d",
"stdout_hash": "30c919ca8b52bfab480dbfd493f096e632e6937cd53bb055fe13f85b",
"stderr": null,
"stderr_hash": null,
"returncode": 0
Expand Down
2 changes: 1 addition & 1 deletion tests/reference/asr-complex1-f26c460.stdout
Original file line number Diff line number Diff line change
@@ -1 +1 @@
(TranslationUnit (SymbolTable 1 {test_complex: (Subroutine (SymbolTable 2 {b: (Variable 2 b Local () () Default (Logical 1 []) Source Public Required .false.), c: (Variable 2 c Local () () Default (Complex 8 []) Source Public Required .false.), c1: (Variable 2 c1 Local () () Default (Complex 8 []) Source Public Required .false.), c2: (Variable 2 c2 Local () () Default (Complex 8 []) Source Public Required .false.), c3: (Variable 2 c3 Local () () Default (Complex 8 []) Source Public Required .false.)}) test_complex [] [(= (Var 2 c) (ConstantComplex 0.000000 0.000000 (Complex 8 [])) ()) (= (Var 2 c) (ConstantComplex 3.400000 0.000000 (Complex 8 [])) ()) (= (Var 2 c) (ConstantComplex 5.000000 4.300000 (Complex 8 [])) ()) (= (Var 2 c) (ConstantComplex 1.000000 0.000000 (Complex 8 [])) ()) (= (Var 2 c1) (ConstantComplex 3.000000 4.000000 (Complex 8 [])) ()) (= (Var 2 c2) (ConstantComplex 2.000000 4.500000 (Complex 8 [])) ()) (= (Var 2 c3) (ConstantComplex 3.000000 4.000000 (Complex 8 [])) ()) (= (Var 2 b) (Compare (Var 2 c1) NotEq (Var 2 c2) (Logical 4 []) () ()) ()) (= (Var 2 b) (Compare (Var 2 c1) Eq (Var 2 c3) (Logical 4 []) () ()) ()) (= (Var 2 c) (BinOp (Var 2 c1) Add (Var 2 c2) (Complex 8 []) () ()) ()) (= (Var 2 c) (BinOp (Var 2 c2) Sub (Var 2 c1) (Complex 8 []) () ()) ()) (= (Var 2 c) (BinOp (Var 2 c1) Mul (Var 2 c2) (Complex 8 []) () ()) ()) (= (Var 2 c) (BinOp (ConstantComplex 1.000000 2.000000 (Complex 8 [])) Pow (ConstantComplex 3.345340 4.867868 (Complex 8 [])) (Complex 8 []) (ConstantComplex 0.015553 0.065561 (Complex 8 [])) ()) ()) (= (Var 2 c) (BinOp (ConstantComplex 1.000000 2.000000 (Complex 8 [])) Mul (ConstantComplex 3.000000 4.000000 (Complex 8 [])) (Complex 8 []) (ConstantComplex -5.000000 10.000000 (Complex 8 [])) ()) ()) (= (Var 2 c) (BinOp (ConstantComplex 4.000000 5.000000 (Complex 8 [])) Sub (ConstantComplex 3.000000 4.000000 (Complex 8 [])) (Complex 8 []) (ConstantComplex 1.000000 1.000000 (Complex 8 [])) ()) ())] Source Public Implementation () .false. .false.)}) [])
(TranslationUnit (SymbolTable 1 {test_complex: (Subroutine (SymbolTable 2 {b: (Variable 2 b Local () () Default (Logical 1 []) Source Public Required .false.), c: (Variable 2 c Local () () Default (Complex 8 []) Source Public Required .false.), c1: (Variable 2 c1 Local () () Default (Complex 8 []) Source Public Required .false.), c2: (Variable 2 c2 Local () () Default (Complex 8 []) Source Public Required .false.), c3: (Variable 2 c3 Local () () Default (Complex 8 []) Source Public Required .false.)}) test_complex [] [(= (Var 2 c) (ConstantComplex 0.000000 0.000000 (Complex 8 [])) ()) (= (Var 2 c) (ConstantComplex 3.400000 0.000000 (Complex 8 [])) ()) (= (Var 2 c) (ConstantComplex 5.000000 4.300000 (Complex 8 [])) ()) (= (Var 2 c) (ConstantComplex 1.000000 0.000000 (Complex 8 [])) ()) (= (Var 2 c1) (ConstantComplex 3.000000 4.000000 (Complex 8 [])) ()) (= (Var 2 c2) (ConstantComplex 2.000000 4.500000 (Complex 8 [])) ()) (= (Var 2 c3) (ConstantComplex 3.000000 4.000000 (Complex 8 [])) ()) (= (Var 2 c3) (ConstantComplex -3.000000 4.000000 (Complex 8 [])) ()) (= (Var 2 b) (Compare (Var 2 c1) NotEq (Var 2 c2) (Logical 4 []) () ()) ()) (= (Var 2 b) (Compare (Var 2 c1) Eq (Var 2 c3) (Logical 4 []) () ()) ()) (= (Var 2 c) (BinOp (Var 2 c1) Add (Var 2 c2) (Complex 8 []) () ()) ()) (= (Var 2 c) (BinOp (Var 2 c2) Sub (Var 2 c1) (Complex 8 []) () ()) ()) (= (Var 2 c) (BinOp (Var 2 c1) Mul (Var 2 c2) (Complex 8 []) () ()) ()) (= (Var 2 c) (BinOp (ConstantComplex 1.000000 2.000000 (Complex 8 [])) Pow (ConstantComplex 3.345340 4.867868 (Complex 8 [])) (Complex 8 []) (ConstantComplex 0.015553 0.065561 (Complex 8 [])) ()) ()) (= (Var 2 c) (BinOp (ConstantComplex 1.000000 2.000000 (Complex 8 [])) Mul (ConstantComplex 3.000000 4.000000 (Complex 8 [])) (Complex 8 []) (ConstantComplex -5.000000 10.000000 (Complex 8 [])) ()) ()) (= (Var 2 c) (BinOp (ConstantComplex 4.000000 5.000000 (Complex 8 [])) Sub (ConstantComplex 3.000000 4.000000 (Complex 8 [])) (Complex 8 []) (ConstantComplex 1.000000 1.000000 (Complex 8 [])) ()) ())] Source Public Implementation () .false. .false.)}) [])
4 changes: 2 additions & 2 deletions tests/reference/ast-complex1-800b4bb.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
"basename": "ast-complex1-800b4bb",
"cmd": "lpython --show-ast --no-color {infile} -o {outfile}",
"infile": "tests/complex1.py",
"infile_hash": "675b6441d21e32ad7819fe67b9985efec7e09e7ef083869c6890ed53",
"infile_hash": "0d7b7bff7f6b747262657cba9599938f2e1d2167113b7a213da2290c",
"outfile": null,
"outfile_hash": null,
"stdout": "ast-complex1-800b4bb.stdout",
"stdout_hash": "e29d418825d97179f821c342aeef7a7de21d41bfb2ef31d912045f23",
"stdout_hash": "e2c2a404d13b51bbbdc801ecddce49393d050ae36747e5641e6f998a",
"stderr": null,
"stderr_hash": null,
"returncode": 0
Expand Down
2 changes: 1 addition & 1 deletion tests/reference/ast-complex1-800b4bb.stdout
Original file line number Diff line number Diff line change
@@ -1 +1 @@
(Module [(FunctionDef test_complex ([] [] [] [] [] [] []) [(AnnAssign (Name c Store) (Name c128 Load) () 1) (AnnAssign (Name c1 Store) (Name c128 Load) () 1) (AnnAssign (Name c2 Store) (Name c128 Load) () 1) (AnnAssign (Name c3 Store) (Name c128 Load) () 1) (AnnAssign (Name b Store) (Name bool Load) () 1) (Assign [(Name c Store)] (Call (Name complex Load) [] []) ()) (Assign [(Name c Store)] (Call (Name complex Load) [(ConstantFloat 3.400000 ())] []) ()) (Assign [(Name c Store)] (Call (Name complex Load) [(ConstantFloat 5.000000 ()) (ConstantFloat 4.300000 ())] []) ()) (Assign [(Name c Store)] (Call (Name complex Load) [(ConstantInt 1 ())] []) ()) (Assign [(Name c1 Store)] (Call (Name complex Load) [(ConstantInt 3 ()) (ConstantInt 4 ())] []) ()) (Assign [(Name c2 Store)] (Call (Name complex Load) [(ConstantInt 2 ()) (ConstantFloat 4.500000 ())] []) ()) (Assign [(Name c3 Store)] (Call (Name complex Load) [(ConstantFloat 3.000000 ()) (ConstantFloat 4.000000 ())] []) ()) (Assign [(Name b Store)] (Compare (Name c1 Load) NotEq [(Name c2 Load)]) ()) (Assign [(Name b Store)] (Compare (Name c1 Load) Eq [(Name c3 Load)]) ()) (Assign [(Name c Store)] (BinOp (Name c1 Load) Add (Name c2 Load)) ()) (Assign [(Name c Store)] (BinOp (Name c2 Load) Sub (Name c1 Load)) ()) (Assign [(Name c Store)] (BinOp (Name c1 Load) Mult (Name c2 Load)) ()) (Assign [(Name c Store)] (BinOp (Call (Name complex Load) [(ConstantInt 1 ()) (ConstantInt 2 ())] []) Pow (Call (Name complex Load) [(ConstantFloat 3.345340 ()) (ConstantFloat 4.867868 ())] [])) ()) (Assign [(Name c Store)] (BinOp (Call (Name complex Load) [(ConstantInt 1 ()) (ConstantInt 2 ())] []) Mult (Call (Name complex Load) [(ConstantInt 3 ()) (ConstantInt 4 ())] [])) ()) (Assign [(Name c Store)] (BinOp (Call (Name complex Load) [(ConstantInt 4 ()) (ConstantInt 5 ())] []) Sub (Call (Name complex Load) [(ConstantInt 3 ()) (ConstantInt 4 ())] [])) ())] [] () ())] [])
(Module [(FunctionDef test_complex ([] [] [] [] [] [] []) [(AnnAssign (Name c Store) (Name c128 Load) () 1) (AnnAssign (Name c1 Store) (Name c128 Load) () 1) (AnnAssign (Name c2 Store) (Name c128 Load) () 1) (AnnAssign (Name c3 Store) (Name c128 Load) () 1) (AnnAssign (Name b Store) (Name bool Load) () 1) (Assign [(Name c Store)] (Call (Name complex Load) [] []) ()) (Assign [(Name c Store)] (Call (Name complex Load) [(ConstantFloat 3.400000 ())] []) ()) (Assign [(Name c Store)] (Call (Name complex Load) [(ConstantFloat 5.000000 ()) (ConstantFloat 4.300000 ())] []) ()) (Assign [(Name c Store)] (Call (Name complex Load) [(ConstantInt 1 ())] []) ()) (Assign [(Name c1 Store)] (Call (Name complex Load) [(ConstantInt 3 ()) (ConstantInt 4 ())] []) ()) (Assign [(Name c2 Store)] (Call (Name complex Load) [(ConstantInt 2 ()) (ConstantFloat 4.500000 ())] []) ()) (Assign [(Name c3 Store)] (Call (Name complex Load) [(ConstantFloat 3.000000 ()) (ConstantFloat 4.000000 ())] []) ()) (Assign [(Name c3 Store)] (Call (Name complex Load) [(UnaryOp USub (ConstantFloat 3.000000 ())) (ConstantFloat 4.000000 ())] []) ()) (Assign [(Name b Store)] (Compare (Name c1 Load) NotEq [(Name c2 Load)]) ()) (Assign [(Name b Store)] (Compare (Name c1 Load) Eq [(Name c3 Load)]) ()) (Assign [(Name c Store)] (BinOp (Name c1 Load) Add (Name c2 Load)) ()) (Assign [(Name c Store)] (BinOp (Name c2 Load) Sub (Name c1 Load)) ()) (Assign [(Name c Store)] (BinOp (Name c1 Load) Mult (Name c2 Load)) ()) (Assign [(Name c Store)] (BinOp (Call (Name complex Load) [(ConstantInt 1 ()) (ConstantInt 2 ())] []) Pow (Call (Name complex Load) [(ConstantFloat 3.345340 ()) (ConstantFloat 4.867868 ())] [])) ()) (Assign [(Name c Store)] (BinOp (Call (Name complex Load) [(ConstantInt 1 ()) (ConstantInt 2 ())] []) Mult (Call (Name complex Load) [(ConstantInt 3 ()) (ConstantInt 4 ())] [])) ()) (Assign [(Name c Store)] (BinOp (Call (Name complex Load) [(ConstantInt 4 ()) (ConstantInt 5 ())] []) Sub (Call (Name complex Load) [(ConstantInt 3 ()) (ConstantInt 4 ())] [])) ())] [] () ())] [])

0 comments on commit 9abb854

Please sign in to comment.