You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.LinkedHashMap.newNode(LinkedHashMap.java:256)
at java.util.HashMap.putVal(HashMap.java:630)
at java.util.HashMap.putMapEntries(HashMap.java:514)
at java.util.HashMap.putAll(HashMap.java:784)
at natlab.tame.valueanalysis.ValueFlowMap.(ValueFlowMap.java:58)
at natlab.tame.valueanalysis.ValueFlowMap.copy(ValueFlowMap.java:111)
at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.assign(IntraproceduralValueAnalysis.java:745)
at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.assign(IntraproceduralValueAnalysis.java:729)
at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.caseTIRAssignLiteralStmt(IntraproceduralValueAnalysis.java:378)
at natlab.tame.tir.TIRAssignLiteralStmt.tirAnalyze(TIRAssignLiteralStmt.java:49)
at natlab.tame.tir.analysis.TIRNodeForwarder.caseAssignStmt(TIRNodeForwarder.java:94)
at analysis.natlab.NatlabAnalysisHelper.caseAssignStmt(NatlabAnalysisHelper.java:244)
at ast.AssignStmt.analyze(AssignStmt.java:68)
at analysis.natlab.NatlabAbstractStructuralAnalysis.analyze(NatlabAbstractStructuralAnalysis.java:128)
at analysis.natlab.NatlabAbstractStructuralForwardAnalysis.caseASTNode(NatlabAbstractStructuralForwardAnalysis.java:58)
at nodecases.natlab.NatlabAbstractNodeCaseHandler.caseList(NatlabAbstractNodeCaseHandler.java:124)
at natlab.tame.tir.analysis.TIRParentForwardingNodeCasehandler.caseTIRStatementList(TIRParentForwardingNodeCasehandler.java:196)
at natlab.tame.tir.analysis.TIRAbstractSimpleStructuralForwardAnalysis.caseTIRStatementList(TIRAbstractSimpleStructuralForwardAnalysis.java:172)
at natlab.tame.tir.TIRStatementList.tirAnalyze(TIRStatementList.java:53)
at natlab.tame.tir.analysis.TIRNodeForwarder.caseList(TIRNodeForwarder.java:74)
at analysis.natlab.NatlabAnalysisHelper.caseList(NatlabAnalysisHelper.java:174)
at ast.List.analyze(List.java:58)
at analysis.natlab.NatlabAbstractStructuralAnalysis.analyze(NatlabAbstractStructuralAnalysis.java:128)
at analysis.natlab.NatlabAbstractStructuralForwardAnalysis.caseASTNode(NatlabAbstractStructuralForwardAnalysis.java:58)
at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.caseFunction(IntraproceduralValueAnalysis.java:152)
at natlab.tame.tir.analysis.TIRParentForwardingNodeCasehandler.caseTIRFunction(TIRParentForwardingNodeCasehandler.java:186)
at natlab.tame.tir.analysis.TIRAbstractSimpleStructuralForwardAnalysis.caseTIRFunction(TIRAbstractSimpleStructuralForwardAnalysis.java:164)
at natlab.tame.tir.TIRFunction.tirAnalyze(TIRFunction.java:51)
at natlab.tame.tir.analysis.TIRNodeForwarder.caseFunction(TIRNodeForwarder.java:83)
at analysis.natlab.NatlabAnalysisHelper.caseFunction(NatlabAnalysisHelper.java:489)
at ast.Function.analyze(Function.java:72)
at analysis.natlab.NatlabAbstractStructuralAnalysis.analyze(NatlabAbstractStructuralAnalysis.java:128)
For the purpose of automatically generating tests (https://github.com/Sable/matlab-tests), I avoided the limitation by splitting the different cases in groups of 10, each within their own function. As suggested by Laurie, it probably worked because the huge amount of temps generated by tamer are not propagated in the valueanalysis through the entire 500 lines of code. I keep the issue open if someone else wants to dig into making the analyses of Tamer more memory efficient.
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.LinkedHashMap.newNode(LinkedHashMap.java:256)
at java.util.HashMap.putVal(HashMap.java:630)
at java.util.HashMap.putMapEntries(HashMap.java:514)
at java.util.HashMap.putAll(HashMap.java:784)
at natlab.tame.valueanalysis.ValueFlowMap.(ValueFlowMap.java:58)
at natlab.tame.valueanalysis.ValueFlowMap.copy(ValueFlowMap.java:111)
at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.assign(IntraproceduralValueAnalysis.java:745)
at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.assign(IntraproceduralValueAnalysis.java:729)
at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.caseTIRAssignLiteralStmt(IntraproceduralValueAnalysis.java:378)
at natlab.tame.tir.TIRAssignLiteralStmt.tirAnalyze(TIRAssignLiteralStmt.java:49)
at natlab.tame.tir.analysis.TIRNodeForwarder.caseAssignStmt(TIRNodeForwarder.java:94)
at analysis.natlab.NatlabAnalysisHelper.caseAssignStmt(NatlabAnalysisHelper.java:244)
at ast.AssignStmt.analyze(AssignStmt.java:68)
at analysis.natlab.NatlabAbstractStructuralAnalysis.analyze(NatlabAbstractStructuralAnalysis.java:128)
at analysis.natlab.NatlabAbstractStructuralForwardAnalysis.caseASTNode(NatlabAbstractStructuralForwardAnalysis.java:58)
at nodecases.natlab.NatlabAbstractNodeCaseHandler.caseList(NatlabAbstractNodeCaseHandler.java:124)
at natlab.tame.tir.analysis.TIRParentForwardingNodeCasehandler.caseTIRStatementList(TIRParentForwardingNodeCasehandler.java:196)
at natlab.tame.tir.analysis.TIRAbstractSimpleStructuralForwardAnalysis.caseTIRStatementList(TIRAbstractSimpleStructuralForwardAnalysis.java:172)
at natlab.tame.tir.TIRStatementList.tirAnalyze(TIRStatementList.java:53)
at natlab.tame.tir.analysis.TIRNodeForwarder.caseList(TIRNodeForwarder.java:74)
at analysis.natlab.NatlabAnalysisHelper.caseList(NatlabAnalysisHelper.java:174)
at ast.List.analyze(List.java:58)
at analysis.natlab.NatlabAbstractStructuralAnalysis.analyze(NatlabAbstractStructuralAnalysis.java:128)
at analysis.natlab.NatlabAbstractStructuralForwardAnalysis.caseASTNode(NatlabAbstractStructuralForwardAnalysis.java:58)
at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.caseFunction(IntraproceduralValueAnalysis.java:152)
at natlab.tame.tir.analysis.TIRParentForwardingNodeCasehandler.caseTIRFunction(TIRParentForwardingNodeCasehandler.java:186)
at natlab.tame.tir.analysis.TIRAbstractSimpleStructuralForwardAnalysis.caseTIRFunction(TIRAbstractSimpleStructuralForwardAnalysis.java:164)
at natlab.tame.tir.TIRFunction.tirAnalyze(TIRFunction.java:51)
at natlab.tame.tir.analysis.TIRNodeForwarder.caseFunction(TIRNodeForwarder.java:83)
at analysis.natlab.NatlabAnalysisHelper.caseFunction(NatlabAnalysisHelper.java:489)
at ast.Function.analyze(Function.java:72)
at analysis.natlab.NatlabAbstractStructuralAnalysis.analyze(NatlabAbstractStructuralAnalysis.java:128)
Code in 'minus_test.m':
function minus_test(x)
assert(isequal(minus(2,2),0));
assert(isequal(minus(2,-7),9));
assert(isequal(minus(2,7),-5));
assert(isequal(minus(2,0),2));
assert(isequal(minus(2,1),1));
assert(isequal(minus(2,-1),3));
assert(isequal(minus(2,[[-9];[-8];[-9]]),[[11];[10];[11]]));
assert(isequal(minus(2,[[-7];[7];[-6]]),[[9];[-5];[8]]));
assert(isequal(minus(2,[[10];[7];[8]]),[[-8];[-5];[-6]]));
assert(isequal(minus(2,[[1 -2 2]]),[1 4 0]));
assert(isequal(minus(2,[[8 9 -1]]),[-6 -7 3]));
assert(isequal(minus(2,[[5 -7 3]]),[-3 9 -1]));
assert(isequal(minus(2,[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[5 11 5 -2];[0 -3 8 2];[0 1 9 -2]]));
assert(isequal(minus(2,[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-5 4 8 -4];[-1 4 9 3];[-2 6 12 0]]));
assert(isequal(minus(2,[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-1 6 -7 1];[-4 -6 8 6];[3 5 -1 9]]));
assert(isequal(minus(1,2),-1));
assert(isequal(minus(1,-7),8));
assert(isequal(minus(1,7),-6));
assert(isequal(minus(1,0),1));
assert(isequal(minus(1,1),0));
assert(isequal(minus(1,-1),2));
assert(isequal(minus(1,[[-9];[-8];[-9]]),[[10];[9];[10]]));
assert(isequal(minus(1,[[-7];[7];[-6]]),[[8];[-6];[7]]));
assert(isequal(minus(1,[[10];[7];[8]]),[[-9];[-6];[-7]]));
assert(isequal(minus(1,[[1 -2 2]]),[0 3 -1]));
assert(isequal(minus(1,[[8 9 -1]]),[-7 -8 2]));
assert(isequal(minus(1,[[5 -7 3]]),[-4 8 -2]));
assert(isequal(minus(1,[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[4 10 4 -3];[-1 -4 7 1];[-1 0 8 -3]]));
assert(isequal(minus(1,[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-6 3 7 -5];[-2 3 8 2];[-3 5 11 -1]]));
assert(isequal(minus(1,[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-2 5 -8 0];[-5 -7 7 5];[2 4 -2 8]]));
assert(isequal(minus(-3,2),-5));
assert(isequal(minus(-3,-7),4));
assert(isequal(minus(-3,7),-10));
assert(isequal(minus(-3,0),-3));
assert(isequal(minus(-3,1),-4));
assert(isequal(minus(-3,-1),-2));
assert(isequal(minus(-3,[[-9];[-8];[-9]]),[[6];[5];[6]]));
assert(isequal(minus(-3,[[-7];[7];[-6]]),[[4];[-10];[3]]));
assert(isequal(minus(-3,[[10];[7];[8]]),[[-13];[-10];[-11]]));
assert(isequal(minus(-3,[[1 -2 2]]),[-4 -1 -5]));
assert(isequal(minus(-3,[[8 9 -1]]),[-11 -12 -2]));
assert(isequal(minus(-3,[[5 -7 3]]),[-8 4 -6]));
assert(isequal(minus(-3,[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[0 6 0 -7];[-5 -8 3 -3];[-5 -4 4 -7]]));
assert(isequal(minus(-3,[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-10 -1 3 -9];[-6 -1 4 -2];[-7 1 7 -5]]));
assert(isequal(minus(-3,[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-6 1 -12 -4];[-9 -11 3 1];[-2 0 -6 4]]));
assert(isequal(minus(0,2),-2));
assert(isequal(minus(0,-7),7));
assert(isequal(minus(0,7),-7));
assert(isequal(minus(0,0),0));
assert(isequal(minus(0,1),-1));
assert(isequal(minus(0,-1),1));
assert(isequal(minus(0,[[-9];[-8];[-9]]),[[9];[8];[9]]));
assert(isequal(minus(0,[[-7];[7];[-6]]),[[7];[-7];[6]]));
assert(isequal(minus(0,[[10];[7];[8]]),[[-10];[-7];[-8]]));
assert(isequal(minus(0,[[1 -2 2]]),[-1 2 -2]));
assert(isequal(minus(0,[[8 9 -1]]),[-8 -9 1]));
assert(isequal(minus(0,[[5 -7 3]]),[-5 7 -3]));
assert(isequal(minus(0,[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[3 9 3 -4];[-2 -5 6 0];[-2 -1 7 -4]]));
assert(isequal(minus(0,[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-7 2 6 -6];[-3 2 7 1];[-4 4 10 -2]]));
assert(isequal(minus(0,[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-3 4 -9 -1];[-6 -8 6 4];[1 3 -3 7]]));
assert(isequal(minus(1,2),-1));
assert(isequal(minus(1,-7),8));
assert(isequal(minus(1,7),-6));
assert(isequal(minus(1,0),1));
assert(isequal(minus(1,1),0));
assert(isequal(minus(1,-1),2));
assert(isequal(minus(1,[[-9];[-8];[-9]]),[[10];[9];[10]]));
assert(isequal(minus(1,[[-7];[7];[-6]]),[[8];[-6];[7]]));
assert(isequal(minus(1,[[10];[7];[8]]),[[-9];[-6];[-7]]));
assert(isequal(minus(1,[[1 -2 2]]),[0 3 -1]));
assert(isequal(minus(1,[[8 9 -1]]),[-7 -8 2]));
assert(isequal(minus(1,[[5 -7 3]]),[-4 8 -2]));
assert(isequal(minus(1,[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[4 10 4 -3];[-1 -4 7 1];[-1 0 8 -3]]));
assert(isequal(minus(1,[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-6 3 7 -5];[-2 3 8 2];[-3 5 11 -1]]));
assert(isequal(minus(1,[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-2 5 -8 0];[-5 -7 7 5];[2 4 -2 8]]));
assert(isequal(minus(-1,2),-3));
assert(isequal(minus(-1,-7),6));
assert(isequal(minus(-1,7),-8));
assert(isequal(minus(-1,0),-1));
assert(isequal(minus(-1,1),-2));
assert(isequal(minus(-1,-1),0));
assert(isequal(minus(-1,[[-9];[-8];[-9]]),[[8];[7];[8]]));
assert(isequal(minus(-1,[[-7];[7];[-6]]),[[6];[-8];[5]]));
assert(isequal(minus(-1,[[10];[7];[8]]),[[-11];[-8];[-9]]));
assert(isequal(minus(-1,[[1 -2 2]]),[-2 1 -3]));
assert(isequal(minus(-1,[[8 9 -1]]),[-9 -10 0]));
assert(isequal(minus(-1,[[5 -7 3]]),[-6 6 -4]));
assert(isequal(minus(-1,[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[2 8 2 -5];[-3 -6 5 -1];[-3 -2 6 -5]]));
assert(isequal(minus(-1,[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-8 1 5 -7];[-4 1 6 0];[-5 3 9 -3]]));
assert(isequal(minus(-1,[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-4 3 -10 -2];[-7 -9 5 3];[0 2 -4 6]]));
assert(isequal(minus([[-2];[6];[9]],2),[[-4];[4];[7]]));
assert(isequal(minus([[-2];[6];[9]],-7),[[5];[13];[16]]));
assert(isequal(minus([[-2];[6];[9]],7),[[-9];[-1];[2]]));
assert(isequal(minus([[-2];[6];[9]],0),[[-2];[6];[9]]));
assert(isequal(minus([[-2];[6];[9]],1),[[-3];[5];[8]]));
assert(isequal(minus([[-2];[6];[9]],-1),[[-1];[7];[10]]));
assert(isequal(minus([[-2];[6];[9]],[[-9];[-8];[-9]]),[[7];[14];[18]]));
assert(isequal(minus([[-2];[6];[9]],[[-7];[7];[-6]]),[[5];[-1];[15]]));
assert(isequal(minus([[-2];[6];[9]],[[10];[7];[8]]),[[-12];[-1];[1]]));
% Call 'minus([[-2];[6];[9]],[[1 -2 2]])' produces an error
% Call 'minus([[-2];[6];[9]],[[8 9 -1]])' produces an error
% Call 'minus([[-2];[6];[9]],[[5 -7 3]])' produces an error
% Call 'minus([[-2];[6];[9]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call 'minus([[-2];[6];[9]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call 'minus([[-2];[6];[9]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(minus([[-4];[10];[-6]],2),[[-6];[8];[-8]]));
assert(isequal(minus([[-4];[10];[-6]],-7),[[3];[17];[1]]));
assert(isequal(minus([[-4];[10];[-6]],7),[[-11];[3];[-13]]));
assert(isequal(minus([[-4];[10];[-6]],0),[[-4];[10];[-6]]));
assert(isequal(minus([[-4];[10];[-6]],1),[[-5];[9];[-7]]));
assert(isequal(minus([[-4];[10];[-6]],-1),[[-3];[11];[-5]]));
assert(isequal(minus([[-4];[10];[-6]],[[-9];[-8];[-9]]),[[5];[18];[3]]));
assert(isequal(minus([[-4];[10];[-6]],[[-7];[7];[-6]]),[[3];[3];[0]]));
assert(isequal(minus([[-4];[10];[-6]],[[10];[7];[8]]),[[-14];[3];[-14]]));
% Call 'minus([[-4];[10];[-6]],[[1 -2 2]])' produces an error
% Call 'minus([[-4];[10];[-6]],[[8 9 -1]])' produces an error
% Call 'minus([[-4];[10];[-6]],[[5 -7 3]])' produces an error
% Call 'minus([[-4];[10];[-6]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call 'minus([[-4];[10];[-6]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call 'minus([[-4];[10];[-6]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(minus([[3];[9];[-8]],2),[[1];[7];[-10]]));
assert(isequal(minus([[3];[9];[-8]],-7),[[10];[16];[-1]]));
assert(isequal(minus([[3];[9];[-8]],7),[[-4];[2];[-15]]));
assert(isequal(minus([[3];[9];[-8]],0),[[3];[9];[-8]]));
assert(isequal(minus([[3];[9];[-8]],1),[[2];[8];[-9]]));
assert(isequal(minus([[3];[9];[-8]],-1),[[4];[10];[-7]]));
assert(isequal(minus([[3];[9];[-8]],[[-9];[-8];[-9]]),[[12];[17];[1]]));
assert(isequal(minus([[3];[9];[-8]],[[-7];[7];[-6]]),[[10];[2];[-2]]));
assert(isequal(minus([[3];[9];[-8]],[[10];[7];[8]]),[[-7];[2];[-16]]));
% Call 'minus([[3];[9];[-8]],[[1 -2 2]])' produces an error
% Call 'minus([[3];[9];[-8]],[[8 9 -1]])' produces an error
% Call 'minus([[3];[9];[-8]],[[5 -7 3]])' produces an error
% Call 'minus([[3];[9];[-8]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call 'minus([[3];[9];[-8]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call 'minus([[3];[9];[-8]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(minus([[7 -2 -9]],2),[5 -4 -11]));
assert(isequal(minus([[7 -2 -9]],-7),[14 5 -2]));
assert(isequal(minus([[7 -2 -9]],7),[0 -9 -16]));
assert(isequal(minus([[7 -2 -9]],0),[7 -2 -9]));
assert(isequal(minus([[7 -2 -9]],1),[6 -3 -10]));
assert(isequal(minus([[7 -2 -9]],-1),[8 -1 -8]));
% Call 'minus([[7 -2 -9]],[[-9];[-8];[-9]])' produces an error
% Call 'minus([[7 -2 -9]],[[-7];[7];[-6]])' produces an error
% Call 'minus([[7 -2 -9]],[[10];[7];[8]])' produces an error
assert(isequal(minus([[7 -2 -9]],[[1 -2 2]]),[6 0 -11]));
assert(isequal(minus([[7 -2 -9]],[[8 9 -1]]),[-1 -11 -8]));
assert(isequal(minus([[7 -2 -9]],[[5 -7 3]]),[2 5 -12]));
% Call 'minus([[7 -2 -9]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call 'minus([[7 -2 -9]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call 'minus([[7 -2 -9]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(minus([[4 -3 -2]],2),[2 -5 -4]));
assert(isequal(minus([[4 -3 -2]],-7),[11 4 5]));
assert(isequal(minus([[4 -3 -2]],7),[-3 -10 -9]));
assert(isequal(minus([[4 -3 -2]],0),[4 -3 -2]));
assert(isequal(minus([[4 -3 -2]],1),[3 -4 -3]));
assert(isequal(minus([[4 -3 -2]],-1),[5 -2 -1]));
% Call 'minus([[4 -3 -2]],[[-9];[-8];[-9]])' produces an error
% Call 'minus([[4 -3 -2]],[[-7];[7];[-6]])' produces an error
% Call 'minus([[4 -3 -2]],[[10];[7];[8]])' produces an error
assert(isequal(minus([[4 -3 -2]],[[1 -2 2]]),[3 -1 -4]));
assert(isequal(minus([[4 -3 -2]],[[8 9 -1]]),[-4 -12 -1]));
assert(isequal(minus([[4 -3 -2]],[[5 -7 3]]),[-1 4 -5]));
% Call 'minus([[4 -3 -2]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call 'minus([[4 -3 -2]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call 'minus([[4 -3 -2]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(minus([[6 6 3]],2),[4 4 1]));
assert(isequal(minus([[6 6 3]],-7),[13 13 10]));
assert(isequal(minus([[6 6 3]],7),[-1 -1 -4]));
assert(isequal(minus([[6 6 3]],0),[6 6 3]));
assert(isequal(minus([[6 6 3]],1),[5 5 2]));
assert(isequal(minus([[6 6 3]],-1),[7 7 4]));
% Call 'minus([[6 6 3]],[[-9];[-8];[-9]])' produces an error
% Call 'minus([[6 6 3]],[[-7];[7];[-6]])' produces an error
% Call 'minus([[6 6 3]],[[10];[7];[8]])' produces an error
assert(isequal(minus([[6 6 3]],[[1 -2 2]]),[5 8 1]));
assert(isequal(minus([[6 6 3]],[[8 9 -1]]),[-2 -3 4]));
assert(isequal(minus([[6 6 3]],[[5 -7 3]]),[1 13 0]));
% Call 'minus([[6 6 3]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call 'minus([[6 6 3]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call 'minus([[6 6 3]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(minus([[7 2 -1];[10 6 -4]],2),[[5 0 -3];[8 4 -6]]));
assert(isequal(minus([[7 2 -1];[10 6 -4]],-7),[[14 9 6];[17 13 3]]));
assert(isequal(minus([[7 2 -1];[10 6 -4]],7),[[0 -5 -8];[3 -1 -11]]));
assert(isequal(minus([[7 2 -1];[10 6 -4]],0),[[7 2 -1];[10 6 -4]]));
assert(isequal(minus([[7 2 -1];[10 6 -4]],1),[[6 1 -2];[9 5 -5]]));
assert(isequal(minus([[7 2 -1];[10 6 -4]],-1),[[8 3 0];[11 7 -3]]));
% Call 'minus([[7 2 -1];[10 6 -4]],[[-9];[-8];[-9]])' produces an error
% Call 'minus([[7 2 -1];[10 6 -4]],[[-7];[7];[-6]])' produces an error
% Call 'minus([[7 2 -1];[10 6 -4]],[[10];[7];[8]])' produces an error
% Call 'minus([[7 2 -1];[10 6 -4]],[[1 -2 2]])' produces an error
% Call 'minus([[7 2 -1];[10 6 -4]],[[8 9 -1]])' produces an error
% Call 'minus([[7 2 -1];[10 6 -4]],[[5 -7 3]])' produces an error
% Call 'minus([[7 2 -1];[10 6 -4]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call 'minus([[7 2 -1];[10 6 -4]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call 'minus([[7 2 -1];[10 6 -4]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(minus([[4 9 -1];[-5 -6 -9]],2),[[2 7 -3];[-7 -8 -11]]));
assert(isequal(minus([[4 9 -1];[-5 -6 -9]],-7),[[11 16 6];[2 1 -2]]));
assert(isequal(minus([[4 9 -1];[-5 -6 -9]],7),[[-3 2 -8];[-12 -13 -16]]));
assert(isequal(minus([[4 9 -1];[-5 -6 -9]],0),[[4 9 -1];[-5 -6 -9]]));
assert(isequal(minus([[4 9 -1];[-5 -6 -9]],1),[[3 8 -2];[-6 -7 -10]]));
assert(isequal(minus([[4 9 -1];[-5 -6 -9]],-1),[[5 10 0];[-4 -5 -8]]));
% Call 'minus([[4 9 -1];[-5 -6 -9]],[[-9];[-8];[-9]])' produces an error
% Call 'minus([[4 9 -1];[-5 -6 -9]],[[-7];[7];[-6]])' produces an error
% Call 'minus([[4 9 -1];[-5 -6 -9]],[[10];[7];[8]])' produces an error
% Call 'minus([[4 9 -1];[-5 -6 -9]],[[1 -2 2]])' produces an error
% Call 'minus([[4 9 -1];[-5 -6 -9]],[[8 9 -1]])' produces an error
% Call 'minus([[4 9 -1];[-5 -6 -9]],[[5 -7 3]])' produces an error
% Call 'minus([[4 9 -1];[-5 -6 -9]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call 'minus([[4 9 -1];[-5 -6 -9]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call 'minus([[4 9 -1];[-5 -6 -9]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(minus([[1 2 2];[-10 -2 3]],2),[[-1 0 0];[-12 -4 1]]));
assert(isequal(minus([[1 2 2];[-10 -2 3]],-7),[[8 9 9];[-3 5 10]]));
assert(isequal(minus([[1 2 2];[-10 -2 3]],7),[[-6 -5 -5];[-17 -9 -4]]));
assert(isequal(minus([[1 2 2];[-10 -2 3]],0),[[1 2 2];[-10 -2 3]]));
assert(isequal(minus([[1 2 2];[-10 -2 3]],1),[[0 1 1];[-11 -3 2]]));
assert(isequal(minus([[1 2 2];[-10 -2 3]],-1),[[2 3 3];[-9 -1 4]]));
% Call 'minus([[1 2 2];[-10 -2 3]],[[-9];[-8];[-9]])' produces an error
% Call 'minus([[1 2 2];[-10 -2 3]],[[-7];[7];[-6]])' produces an error
% Call 'minus([[1 2 2];[-10 -2 3]],[[10];[7];[8]])' produces an error
% Call 'minus([[1 2 2];[-10 -2 3]],[[1 -2 2]])' produces an error
% Call 'minus([[1 2 2];[-10 -2 3]],[[8 9 -1]])' produces an error
% Call 'minus([[1 2 2];[-10 -2 3]],[[5 -7 3]])' produces an error
% Call 'minus([[1 2 2];[-10 -2 3]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call 'minus([[1 2 2];[-10 -2 3]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call 'minus([[1 2 2];[-10 -2 3]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],2),[[1 2 1 -8];[-7 -3 7 4];[-6 4 0 -3]]));
assert(isequal(minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],-7),[[10 11 10 1];[2 6 16 13];[3 13 9 6]]));
assert(isequal(minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],7),[[-4 -3 -4 -13];[-12 -8 2 -1];[-11 -1 -5 -8]]));
assert(isequal(minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],0),[[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]]));
assert(isequal(minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],1),[[2 3 2 -7];[-6 -2 8 5];[-5 5 1 -2]]));
assert(isequal(minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],-1),[[4 5 4 -5];[-4 0 10 7];[-3 7 3 0]]));
% Call 'minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],[[-9];[-8];[-9]])' produces an error
% Call 'minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],[[-7];[7];[-6]])' produces an error
% Call 'minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],[[10];[7];[8]])' produces an error
% Call 'minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],[[1 -2 2]])' produces an error
% Call 'minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],[[8 9 -1]])' produces an error
% Call 'minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],[[5 -7 3]])' produces an error
assert(isequal(minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[6 13 6 -10];[-7 -6 15 6];[-6 5 9 -5]]));
assert(isequal(minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-4 6 9 -12];[-8 1 16 7];[-8 10 12 -3]]));
assert(isequal(minus([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[0 8 -6 -7];[-11 -9 15 10];[-3 9 -1 6]]));
assert(isequal(minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],2),[[4 -1 4 -1];[1 5 -8 8];[-1 -1 4 -11]]));
assert(isequal(minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],-7),[[13 8 13 8];[10 14 1 17];[8 8 13 -2]]));
assert(isequal(minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],7),[[-1 -6 -1 -6];[-4 0 -13 3];[-6 -6 -1 -16]]));
assert(isequal(minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],0),[[6 1 6 1];[3 7 -6 10];[1 1 6 -9]]));
assert(isequal(minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],1),[[5 0 5 0];[2 6 -7 9];[0 0 5 -10]]));
assert(isequal(minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],-1),[[7 2 7 2];[4 8 -5 11];[2 2 7 -8]]));
% Call 'minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],[[-9];[-8];[-9]])' produces an error
% Call 'minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],[[-7];[7];[-6]])' produces an error
% Call 'minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],[[10];[7];[8]])' produces an error
% Call 'minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],[[1 -2 2]])' produces an error
% Call 'minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],[[8 9 -1]])' produces an error
% Call 'minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],[[5 -7 3]])' produces an error
assert(isequal(minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[9 10 9 -3];[1 2 0 10];[-1 0 13 -13]]));
assert(isequal(minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-1 3 12 -5];[0 9 1 11];[-3 5 16 -11]]));
assert(isequal(minus([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[3 5 -3 0];[-3 -1 0 14];[2 4 3 -2]]));
assert(isequal(minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],2),[[-2 3 -3 6];[4 -2 3 3];[-5 -1 -1 -7]]));
assert(isequal(minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],-7),[[7 12 6 15];[13 7 12 12];[4 8 8 2]]));
assert(isequal(minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],7),[[-7 -2 -8 1];[-1 -7 -2 -2];[-10 -6 -6 -12]]));
assert(isequal(minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],0),[[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]]));
assert(isequal(minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],1),[[-1 4 -2 7];[5 -1 4 4];[-4 0 0 -6]]));
assert(isequal(minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],-1),[[1 6 0 9];[7 1 6 6];[-2 2 2 -4]]));
% Call 'minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],[[-9];[-8];[-9]])' produces an error
% Call 'minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],[[-7];[7];[-6]])' produces an error
% Call 'minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],[[10];[7];[8]])' produces an error
% Call 'minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],[[1 -2 2]])' produces an error
% Call 'minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],[[8 9 -1]])' produces an error
% Call 'minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],[[5 -7 3]])' produces an error
assert(isequal(minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],[[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[3 14 2 4];[4 -5 11 5];[-5 0 8 -9]]));
assert(isequal(minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],[[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-7 7 5 2];[3 2 12 6];[-7 5 11 -7]]));
assert(isequal(minus([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]],[[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-3 9 -10 7];[0 -8 11 9];[-2 4 -2 2]]));
assert(isequal((2 - 2),0));
assert(isequal((2 - -7),9));
assert(isequal((2 - 7),-5));
assert(isequal((2 - 0),2));
assert(isequal((2 - 1),1));
assert(isequal((2 - -1),3));
assert(isequal((2 - [[-9];[-8];[-9]]),[[11];[10];[11]]));
assert(isequal((2 - [[-7];[7];[-6]]),[[9];[-5];[8]]));
assert(isequal((2 - [[10];[7];[8]]),[[-8];[-5];[-6]]));
assert(isequal((2 - [[1 -2 2]]),[1 4 0]));
assert(isequal((2 - [[8 9 -1]]),[-6 -7 3]));
assert(isequal((2 - [[5 -7 3]]),[-3 9 -1]));
assert(isequal((2 - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[5 11 5 -2];[0 -3 8 2];[0 1 9 -2]]));
assert(isequal((2 - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-5 4 8 -4];[-1 4 9 3];[-2 6 12 0]]));
assert(isequal((2 - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-1 6 -7 1];[-4 -6 8 6];[3 5 -1 9]]));
assert(isequal((1 - 2),-1));
assert(isequal((1 - -7),8));
assert(isequal((1 - 7),-6));
assert(isequal((1 - 0),1));
assert(isequal((1 - 1),0));
assert(isequal((1 - -1),2));
assert(isequal((1 - [[-9];[-8];[-9]]),[[10];[9];[10]]));
assert(isequal((1 - [[-7];[7];[-6]]),[[8];[-6];[7]]));
assert(isequal((1 - [[10];[7];[8]]),[[-9];[-6];[-7]]));
assert(isequal((1 - [[1 -2 2]]),[0 3 -1]));
assert(isequal((1 - [[8 9 -1]]),[-7 -8 2]));
assert(isequal((1 - [[5 -7 3]]),[-4 8 -2]));
assert(isequal((1 - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[4 10 4 -3];[-1 -4 7 1];[-1 0 8 -3]]));
assert(isequal((1 - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-6 3 7 -5];[-2 3 8 2];[-3 5 11 -1]]));
assert(isequal((1 - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-2 5 -8 0];[-5 -7 7 5];[2 4 -2 8]]));
assert(isequal((-3 - 2),-5));
assert(isequal((-3 - -7),4));
assert(isequal((-3 - 7),-10));
assert(isequal((-3 - 0),-3));
assert(isequal((-3 - 1),-4));
assert(isequal((-3 - -1),-2));
assert(isequal((-3 - [[-9];[-8];[-9]]),[[6];[5];[6]]));
assert(isequal((-3 - [[-7];[7];[-6]]),[[4];[-10];[3]]));
assert(isequal((-3 - [[10];[7];[8]]),[[-13];[-10];[-11]]));
assert(isequal((-3 - [[1 -2 2]]),[-4 -1 -5]));
assert(isequal((-3 - [[8 9 -1]]),[-11 -12 -2]));
assert(isequal((-3 - [[5 -7 3]]),[-8 4 -6]));
assert(isequal((-3 - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[0 6 0 -7];[-5 -8 3 -3];[-5 -4 4 -7]]));
assert(isequal((-3 - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-10 -1 3 -9];[-6 -1 4 -2];[-7 1 7 -5]]));
assert(isequal((-3 - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-6 1 -12 -4];[-9 -11 3 1];[-2 0 -6 4]]));
assert(isequal((0 - 2),-2));
assert(isequal((0 - -7),7));
assert(isequal((0 - 7),-7));
assert(isequal((0 - 0),0));
assert(isequal((0 - 1),-1));
assert(isequal((0 - -1),1));
assert(isequal((0 - [[-9];[-8];[-9]]),[[9];[8];[9]]));
assert(isequal((0 - [[-7];[7];[-6]]),[[7];[-7];[6]]));
assert(isequal((0 - [[10];[7];[8]]),[[-10];[-7];[-8]]));
assert(isequal((0 - [[1 -2 2]]),[-1 2 -2]));
assert(isequal((0 - [[8 9 -1]]),[-8 -9 1]));
assert(isequal((0 - [[5 -7 3]]),[-5 7 -3]));
assert(isequal((0 - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[3 9 3 -4];[-2 -5 6 0];[-2 -1 7 -4]]));
assert(isequal((0 - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-7 2 6 -6];[-3 2 7 1];[-4 4 10 -2]]));
assert(isequal((0 - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-3 4 -9 -1];[-6 -8 6 4];[1 3 -3 7]]));
assert(isequal((1 - 2),-1));
assert(isequal((1 - -7),8));
assert(isequal((1 - 7),-6));
assert(isequal((1 - 0),1));
assert(isequal((1 - 1),0));
assert(isequal((1 - -1),2));
assert(isequal((1 - [[-9];[-8];[-9]]),[[10];[9];[10]]));
assert(isequal((1 - [[-7];[7];[-6]]),[[8];[-6];[7]]));
assert(isequal((1 - [[10];[7];[8]]),[[-9];[-6];[-7]]));
assert(isequal((1 - [[1 -2 2]]),[0 3 -1]));
assert(isequal((1 - [[8 9 -1]]),[-7 -8 2]));
assert(isequal((1 - [[5 -7 3]]),[-4 8 -2]));
assert(isequal((1 - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[4 10 4 -3];[-1 -4 7 1];[-1 0 8 -3]]));
assert(isequal((1 - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-6 3 7 -5];[-2 3 8 2];[-3 5 11 -1]]));
assert(isequal((1 - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-2 5 -8 0];[-5 -7 7 5];[2 4 -2 8]]));
assert(isequal((-1 - 2),-3));
assert(isequal((-1 - -7),6));
assert(isequal((-1 - 7),-8));
assert(isequal((-1 - 0),-1));
assert(isequal((-1 - 1),-2));
assert(isequal((-1 - -1),0));
assert(isequal((-1 - [[-9];[-8];[-9]]),[[8];[7];[8]]));
assert(isequal((-1 - [[-7];[7];[-6]]),[[6];[-8];[5]]));
assert(isequal((-1 - [[10];[7];[8]]),[[-11];[-8];[-9]]));
assert(isequal((-1 - [[1 -2 2]]),[-2 1 -3]));
assert(isequal((-1 - [[8 9 -1]]),[-9 -10 0]));
assert(isequal((-1 - [[5 -7 3]]),[-6 6 -4]));
assert(isequal((-1 - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[2 8 2 -5];[-3 -6 5 -1];[-3 -2 6 -5]]));
assert(isequal((-1 - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-8 1 5 -7];[-4 1 6 0];[-5 3 9 -3]]));
assert(isequal((-1 - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-4 3 -10 -2];[-7 -9 5 3];[0 2 -4 6]]));
assert(isequal(([[-2];[6];[9]] - 2),[[-4];[4];[7]]));
assert(isequal(([[-2];[6];[9]] - -7),[[5];[13];[16]]));
assert(isequal(([[-2];[6];[9]] - 7),[[-9];[-1];[2]]));
assert(isequal(([[-2];[6];[9]] - 0),[[-2];[6];[9]]));
assert(isequal(([[-2];[6];[9]] - 1),[[-3];[5];[8]]));
assert(isequal(([[-2];[6];[9]] - -1),[[-1];[7];[10]]));
assert(isequal(([[-2];[6];[9]] - [[-9];[-8];[-9]]),[[7];[14];[18]]));
assert(isequal(([[-2];[6];[9]] - [[-7];[7];[-6]]),[[5];[-1];[15]]));
assert(isequal(([[-2];[6];[9]] - [[10];[7];[8]]),[[-12];[-1];[1]]));
% Call '([[-2];[6];[9]] - [[1 -2 2]])' produces an error
% Call '([[-2];[6];[9]] - [[8 9 -1]])' produces an error
% Call '([[-2];[6];[9]] - [[5 -7 3]])' produces an error
% Call '([[-2];[6];[9]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call '([[-2];[6];[9]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call '([[-2];[6];[9]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(([[-4];[10];[-6]] - 2),[[-6];[8];[-8]]));
assert(isequal(([[-4];[10];[-6]] - -7),[[3];[17];[1]]));
assert(isequal(([[-4];[10];[-6]] - 7),[[-11];[3];[-13]]));
assert(isequal(([[-4];[10];[-6]] - 0),[[-4];[10];[-6]]));
assert(isequal(([[-4];[10];[-6]] - 1),[[-5];[9];[-7]]));
assert(isequal(([[-4];[10];[-6]] - -1),[[-3];[11];[-5]]));
assert(isequal(([[-4];[10];[-6]] - [[-9];[-8];[-9]]),[[5];[18];[3]]));
assert(isequal(([[-4];[10];[-6]] - [[-7];[7];[-6]]),[[3];[3];[0]]));
assert(isequal(([[-4];[10];[-6]] - [[10];[7];[8]]),[[-14];[3];[-14]]));
% Call '([[-4];[10];[-6]] - [[1 -2 2]])' produces an error
% Call '([[-4];[10];[-6]] - [[8 9 -1]])' produces an error
% Call '([[-4];[10];[-6]] - [[5 -7 3]])' produces an error
% Call '([[-4];[10];[-6]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call '([[-4];[10];[-6]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call '([[-4];[10];[-6]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(([[3];[9];[-8]] - 2),[[1];[7];[-10]]));
assert(isequal(([[3];[9];[-8]] - -7),[[10];[16];[-1]]));
assert(isequal(([[3];[9];[-8]] - 7),[[-4];[2];[-15]]));
assert(isequal(([[3];[9];[-8]] - 0),[[3];[9];[-8]]));
assert(isequal(([[3];[9];[-8]] - 1),[[2];[8];[-9]]));
assert(isequal(([[3];[9];[-8]] - -1),[[4];[10];[-7]]));
assert(isequal(([[3];[9];[-8]] - [[-9];[-8];[-9]]),[[12];[17];[1]]));
assert(isequal(([[3];[9];[-8]] - [[-7];[7];[-6]]),[[10];[2];[-2]]));
assert(isequal(([[3];[9];[-8]] - [[10];[7];[8]]),[[-7];[2];[-16]]));
% Call '([[3];[9];[-8]] - [[1 -2 2]])' produces an error
% Call '([[3];[9];[-8]] - [[8 9 -1]])' produces an error
% Call '([[3];[9];[-8]] - [[5 -7 3]])' produces an error
% Call '([[3];[9];[-8]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call '([[3];[9];[-8]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call '([[3];[9];[-8]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(([[7 -2 -9]] - 2),[5 -4 -11]));
assert(isequal(([[7 -2 -9]] - -7),[14 5 -2]));
assert(isequal(([[7 -2 -9]] - 7),[0 -9 -16]));
assert(isequal(([[7 -2 -9]] - 0),[7 -2 -9]));
assert(isequal(([[7 -2 -9]] - 1),[6 -3 -10]));
assert(isequal(([[7 -2 -9]] - -1),[8 -1 -8]));
% Call '([[7 -2 -9]] - [[-9];[-8];[-9]])' produces an error
% Call '([[7 -2 -9]] - [[-7];[7];[-6]])' produces an error
% Call '([[7 -2 -9]] - [[10];[7];[8]])' produces an error
assert(isequal(([[7 -2 -9]] - [[1 -2 2]]),[6 0 -11]));
assert(isequal(([[7 -2 -9]] - [[8 9 -1]]),[-1 -11 -8]));
assert(isequal(([[7 -2 -9]] - [[5 -7 3]]),[2 5 -12]));
% Call '([[7 -2 -9]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call '([[7 -2 -9]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call '([[7 -2 -9]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(([[4 -3 -2]] - 2),[2 -5 -4]));
assert(isequal(([[4 -3 -2]] - -7),[11 4 5]));
assert(isequal(([[4 -3 -2]] - 7),[-3 -10 -9]));
assert(isequal(([[4 -3 -2]] - 0),[4 -3 -2]));
assert(isequal(([[4 -3 -2]] - 1),[3 -4 -3]));
assert(isequal(([[4 -3 -2]] - -1),[5 -2 -1]));
% Call '([[4 -3 -2]] - [[-9];[-8];[-9]])' produces an error
% Call '([[4 -3 -2]] - [[-7];[7];[-6]])' produces an error
% Call '([[4 -3 -2]] - [[10];[7];[8]])' produces an error
assert(isequal(([[4 -3 -2]] - [[1 -2 2]]),[3 -1 -4]));
assert(isequal(([[4 -3 -2]] - [[8 9 -1]]),[-4 -12 -1]));
assert(isequal(([[4 -3 -2]] - [[5 -7 3]]),[-1 4 -5]));
% Call '([[4 -3 -2]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call '([[4 -3 -2]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call '([[4 -3 -2]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(([[6 6 3]] - 2),[4 4 1]));
assert(isequal(([[6 6 3]] - -7),[13 13 10]));
assert(isequal(([[6 6 3]] - 7),[-1 -1 -4]));
assert(isequal(([[6 6 3]] - 0),[6 6 3]));
assert(isequal(([[6 6 3]] - 1),[5 5 2]));
assert(isequal(([[6 6 3]] - -1),[7 7 4]));
% Call '([[6 6 3]] - [[-9];[-8];[-9]])' produces an error
% Call '([[6 6 3]] - [[-7];[7];[-6]])' produces an error
% Call '([[6 6 3]] - [[10];[7];[8]])' produces an error
assert(isequal(([[6 6 3]] - [[1 -2 2]]),[5 8 1]));
assert(isequal(([[6 6 3]] - [[8 9 -1]]),[-2 -3 4]));
assert(isequal(([[6 6 3]] - [[5 -7 3]]),[1 13 0]));
% Call '([[6 6 3]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call '([[6 6 3]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call '([[6 6 3]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(([[7 2 -1];[10 6 -4]] - 2),[[5 0 -3];[8 4 -6]]));
assert(isequal(([[7 2 -1];[10 6 -4]] - -7),[[14 9 6];[17 13 3]]));
assert(isequal(([[7 2 -1];[10 6 -4]] - 7),[[0 -5 -8];[3 -1 -11]]));
assert(isequal(([[7 2 -1];[10 6 -4]] - 0),[[7 2 -1];[10 6 -4]]));
assert(isequal(([[7 2 -1];[10 6 -4]] - 1),[[6 1 -2];[9 5 -5]]));
assert(isequal(([[7 2 -1];[10 6 -4]] - -1),[[8 3 0];[11 7 -3]]));
% Call '([[7 2 -1];[10 6 -4]] - [[-9];[-8];[-9]])' produces an error
% Call '([[7 2 -1];[10 6 -4]] - [[-7];[7];[-6]])' produces an error
% Call '([[7 2 -1];[10 6 -4]] - [[10];[7];[8]])' produces an error
% Call '([[7 2 -1];[10 6 -4]] - [[1 -2 2]])' produces an error
% Call '([[7 2 -1];[10 6 -4]] - [[8 9 -1]])' produces an error
% Call '([[7 2 -1];[10 6 -4]] - [[5 -7 3]])' produces an error
% Call '([[7 2 -1];[10 6 -4]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call '([[7 2 -1];[10 6 -4]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call '([[7 2 -1];[10 6 -4]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(([[4 9 -1];[-5 -6 -9]] - 2),[[2 7 -3];[-7 -8 -11]]));
assert(isequal(([[4 9 -1];[-5 -6 -9]] - -7),[[11 16 6];[2 1 -2]]));
assert(isequal(([[4 9 -1];[-5 -6 -9]] - 7),[[-3 2 -8];[-12 -13 -16]]));
assert(isequal(([[4 9 -1];[-5 -6 -9]] - 0),[[4 9 -1];[-5 -6 -9]]));
assert(isequal(([[4 9 -1];[-5 -6 -9]] - 1),[[3 8 -2];[-6 -7 -10]]));
assert(isequal(([[4 9 -1];[-5 -6 -9]] - -1),[[5 10 0];[-4 -5 -8]]));
% Call '([[4 9 -1];[-5 -6 -9]] - [[-9];[-8];[-9]])' produces an error
% Call '([[4 9 -1];[-5 -6 -9]] - [[-7];[7];[-6]])' produces an error
% Call '([[4 9 -1];[-5 -6 -9]] - [[10];[7];[8]])' produces an error
% Call '([[4 9 -1];[-5 -6 -9]] - [[1 -2 2]])' produces an error
% Call '([[4 9 -1];[-5 -6 -9]] - [[8 9 -1]])' produces an error
% Call '([[4 9 -1];[-5 -6 -9]] - [[5 -7 3]])' produces an error
% Call '([[4 9 -1];[-5 -6 -9]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call '([[4 9 -1];[-5 -6 -9]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call '([[4 9 -1];[-5 -6 -9]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(([[1 2 2];[-10 -2 3]] - 2),[[-1 0 0];[-12 -4 1]]));
assert(isequal(([[1 2 2];[-10 -2 3]] - -7),[[8 9 9];[-3 5 10]]));
assert(isequal(([[1 2 2];[-10 -2 3]] - 7),[[-6 -5 -5];[-17 -9 -4]]));
assert(isequal(([[1 2 2];[-10 -2 3]] - 0),[[1 2 2];[-10 -2 3]]));
assert(isequal(([[1 2 2];[-10 -2 3]] - 1),[[0 1 1];[-11 -3 2]]));
assert(isequal(([[1 2 2];[-10 -2 3]] - -1),[[2 3 3];[-9 -1 4]]));
% Call '([[1 2 2];[-10 -2 3]] - [[-9];[-8];[-9]])' produces an error
% Call '([[1 2 2];[-10 -2 3]] - [[-7];[7];[-6]])' produces an error
% Call '([[1 2 2];[-10 -2 3]] - [[10];[7];[8]])' produces an error
% Call '([[1 2 2];[-10 -2 3]] - [[1 -2 2]])' produces an error
% Call '([[1 2 2];[-10 -2 3]] - [[8 9 -1]])' produces an error
% Call '([[1 2 2];[-10 -2 3]] - [[5 -7 3]])' produces an error
% Call '([[1 2 2];[-10 -2 3]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]])' produces an error
% Call '([[1 2 2];[-10 -2 3]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]])' produces an error
% Call '([[1 2 2];[-10 -2 3]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]])' produces an error
assert(isequal(([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - 2),[[1 2 1 -8];[-7 -3 7 4];[-6 4 0 -3]]));
assert(isequal(([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - -7),[[10 11 10 1];[2 6 16 13];[3 13 9 6]]));
assert(isequal(([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - 7),[[-4 -3 -4 -13];[-12 -8 2 -1];[-11 -1 -5 -8]]));
assert(isequal(([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - 0),[[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]]));
assert(isequal(([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - 1),[[2 3 2 -7];[-6 -2 8 5];[-5 5 1 -2]]));
assert(isequal(([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - -1),[[4 5 4 -5];[-4 0 10 7];[-3 7 3 0]]));
% Call '([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - [[-9];[-8];[-9]])' produces an error
% Call '([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - [[-7];[7];[-6]])' produces an error
% Call '([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - [[10];[7];[8]])' produces an error
% Call '([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - [[1 -2 2]])' produces an error
% Call '([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - [[8 9 -1]])' produces an error
% Call '([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - [[5 -7 3]])' produces an error
assert(isequal(([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[6 13 6 -10];[-7 -6 15 6];[-6 5 9 -5]]));
assert(isequal(([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-4 6 9 -12];[-8 1 16 7];[-8 10 12 -3]]));
assert(isequal(([[3 4 3 -6];[-5 -1 9 6];[-4 6 2 -1]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[0 8 -6 -7];[-11 -9 15 10];[-3 9 -1 6]]));
assert(isequal(([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - 2),[[4 -1 4 -1];[1 5 -8 8];[-1 -1 4 -11]]));
assert(isequal(([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - -7),[[13 8 13 8];[10 14 1 17];[8 8 13 -2]]));
assert(isequal(([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - 7),[[-1 -6 -1 -6];[-4 0 -13 3];[-6 -6 -1 -16]]));
assert(isequal(([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - 0),[[6 1 6 1];[3 7 -6 10];[1 1 6 -9]]));
assert(isequal(([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - 1),[[5 0 5 0];[2 6 -7 9];[0 0 5 -10]]));
assert(isequal(([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - -1),[[7 2 7 2];[4 8 -5 11];[2 2 7 -8]]));
% Call '([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - [[-9];[-8];[-9]])' produces an error
% Call '([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - [[-7];[7];[-6]])' produces an error
% Call '([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - [[10];[7];[8]])' produces an error
% Call '([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - [[1 -2 2]])' produces an error
% Call '([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - [[8 9 -1]])' produces an error
% Call '([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - [[5 -7 3]])' produces an error
assert(isequal(([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[9 10 9 -3];[1 2 0 10];[-1 0 13 -13]]));
assert(isequal(([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-1 3 12 -5];[0 9 1 11];[-3 5 16 -11]]));
assert(isequal(([[6 1 6 1];[3 7 -6 10];[1 1 6 -9]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[3 5 -3 0];[-3 -1 0 14];[2 4 3 -2]]));
assert(isequal(([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - 2),[[-2 3 -3 6];[4 -2 3 3];[-5 -1 -1 -7]]));
assert(isequal(([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - -7),[[7 12 6 15];[13 7 12 12];[4 8 8 2]]));
assert(isequal(([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - 7),[[-7 -2 -8 1];[-1 -7 -2 -2];[-10 -6 -6 -12]]));
assert(isequal(([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - 0),[[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]]));
assert(isequal(([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - 1),[[-1 4 -2 7];[5 -1 4 4];[-4 0 0 -6]]));
assert(isequal(([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - -1),[[1 6 0 9];[7 1 6 6];[-2 2 2 -4]]));
% Call '([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - [[-9];[-8];[-9]])' produces an error
% Call '([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - [[-7];[7];[-6]])' produces an error
% Call '([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - [[10];[7];[8]])' produces an error
% Call '([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - [[1 -2 2]])' produces an error
% Call '([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - [[8 9 -1]])' produces an error
% Call '([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - [[5 -7 3]])' produces an error
assert(isequal(([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - [[-3 -9 -3 4];[2 5 -6 0];[2 1 -7 4]]),[[3 14 2 4];[4 -5 11 5];[-5 0 8 -9]]));
assert(isequal(([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - [[7 -2 -6 6];[3 -2 -7 -1];[4 -4 -10 2]]),[[-7 7 5 2];[3 2 12 6];[-7 5 11 -7]]));
assert(isequal(([[0 5 -1 8];[6 0 5 5];[-3 1 1 -5]] - [[3 -4 9 1];[6 8 -6 -4];[-1 -3 3 -7]]),[[-3 9 -10 7];[0 -8 11 9];[-2 4 -2 2]]));
end
The text was updated successfully, but these errors were encountered: