diff --git a/nifty4/operators/chain_operator.py b/nifty4/operators/chain_operator.py index 965dbb156fff49aababa205d2dd286645cf014a2..15d71ea0d2571f24f6925a708ba32a3dc931c4ee 100644 --- a/nifty4/operators/chain_operator.py +++ b/nifty4/operators/chain_operator.py @@ -64,7 +64,7 @@ class ChainOperator(LinearOperator): opsnew[i] = opsnew[i]._scale(fct) fct = 1. break - if fct != 1: + if fct != 1 or len(opsnew) == 0: # have to add the scaling operator at the end opsnew.append(ScalingOperator(fct, lastdom)) ops = opsnew @@ -83,6 +83,8 @@ class ChainOperator(LinearOperator): @staticmethod def make(ops): ops = tuple(ops) + if len(ops) == 0: + raise ValueError("ops is empty") ops = ChainOperator.simplify(ops) if len(ops) == 1: return ops[0] diff --git a/nifty4/operators/sum_operator.py b/nifty4/operators/sum_operator.py index 2680bc4384a55310055d8ce37b9fe72e824b533d..6755e52942e3267dac9da278d0faad73b48a018f 100644 --- a/nifty4/operators/sum_operator.py +++ b/nifty4/operators/sum_operator.py @@ -108,6 +108,8 @@ class SumOperator(LinearOperator): def make(ops, neg): ops = tuple(ops) neg = tuple(neg) + if len(ops) == 0: + raise ValueError("ops is empty") if len(ops) != len(neg): raise ValueError("length mismatch between ops and neg") ops, neg = SumOperator.simplify(ops, neg)