diff --git a/src/arithmetic_container.py b/src/arithmetic_container.py index 1e962f1c5e0cf6788e532cff92601b286bcb8bd6..debe81e284905740eadc70c59b8afc3d1f80535f 100644 --- a/src/arithmetic_container.py +++ b/src/arithmetic_container.py @@ -5,7 +5,7 @@ import operator -class ArithmeticList(list): +class PythonArithmeticList(list): """A list with elementwise arithmetic operations.""" def assert_same_length(self, other): @@ -162,10 +162,19 @@ class ArithmeticList(list): +# use fast native implementation, if available +try: + from pylinear.array import ArithmeticList +except ImportError: + ArithmeticList = PythonArithmeticList + + + + def join_fields(*fields): result = ArithmeticList() for f in fields: - if isinstance(f, list): + if isinstance(f, (ArithmeticList, list)): result.extend(f) else: result.append(f)