Nonhomogeneous example does not run on Ubuntu
When running the example as per readme
python etc2pta.py nonlinear examples/nl_nonhomogeneous.txt --output_file=nonhom.json
it gets stuck for a long time without printing anything on the screen. After a while, I receive an error, probably related to sympy:
Traceback (most recent call last):
File "etc2pta.py", line 72, in <module>
traffic = construct_nonlinearETC_traffic_from_file(input_file)
File "/home/ggleizer/sentient/sentient/util/construct_from_file_nonlinearETC.py", line 258, in construct_nonlinearETC_traffic_from_file
traffic.create_abstraction()
File "/home/ggleizer/sentient/sentient/Abstractions/NonlinearETC/TrafficModelNonlinearETC.py", line 241, in create_abstraction
r = self.regions
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/functools.py", line 967, in __get__
val = self.func(instance)
File "/home/ggleizer/sentient/sentient/Abstractions/NonlinearETC/TrafficModelNonlinearETC.py", line 251, in regions
self._build_regions()
File "/home/ggleizer/sentient/sentient/Abstractions/NonlinearETC/TrafficModelNonlinearETC.py", line 309, in _build_regions
ret = self.create_regions_manifold(self.Manifolds_Times, self.nr_cones_small_angles,
File "/home/ggleizer/sentient/sentient/Abstractions/NonlinearETC/TrafficModelNonlinearETC.py", line 863, in create_regions_manifold
self.mu = self.compute_mu()
File "/home/ggleizer/sentient/sentient/Abstractions/NonlinearETC/TrafficModelNonlinearETC.py", line 1068, in compute_mu
exponential = sympy.exp(
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/core/function.py", line 465, in __new__
result = super().__new__(cls, *args, **options)
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/core/function.py", line 280, in __new__
evaluated = cls.eval(*args)
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/functions/elementary/exponential.py", line 323, in eval
return arg.exp()
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/matrices.py", line 1622, in exp
P, J = self.jordan_form()
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/matrices.py", line 407, in jordan_form
return _jordan_form(self, calc_transform=calc_transform, **kwargs)
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/eigen.py", line 965, in _jordan_form
jordan_basis = [eig_mat(eig, 1).nullspace()[0]
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/eigen.py", line 965, in <listcomp>
jordan_basis = [eig_mat(eig, 1).nullspace()[0]
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/matrices.py", line 342, in nullspace
return _nullspace(self, simplify=simplify, iszerofunc=iszerofunc)
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/subspaces.py", line 66, in _nullspace
reduced, pivots = M.rref(iszerofunc=iszerofunc, simplify=simplify)
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/matrices.py", line 163, in rref
return _rref(self, iszerofunc=iszerofunc, simplify=simplify,
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/reductions.py", line 305, in _rref
mat, pivot_cols, _ = _row_reduce(M, iszerofunc, simpfunc,
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/reductions.py", line 127, in _row_reduce
mat, pivot_cols, swaps = _row_reduce_list(list(M), M.rows, M.cols, M.one,
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/reductions.py", line 68, in _row_reduce_list
assumed_nonzero, newly_determined = _find_reasonable_pivot(
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/matrices/determinant.py", line 101, in _find_reasonable_pivot
if x.equals(S.Zero):
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/core/expr.py", line 763, in equals
constant = diff.is_constant(simplify=False, failing_number=True)
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/core/expr.py", line 689, in is_constant
if b is not None and b is not S.NaN and b.equals(a) is False:
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/core/expr.py", line 815, in equals
if all(si.is_Integer for si in sol):
File "/home/ggleizer/miniconda3/envs/sentient/lib/python3.8/site-packages/sympy/core/expr.py", line 815, in <genexpr>
if all(si.is_Integer for si in sol):
AttributeError: 'dict' object has no attribute 'is_Integer'
My sympy is version 1.6.2.