Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tamer does not support litteral 'NaN', 'Inf', or '-Inf' #10

Open
elavoie opened this issue Sep 29, 2016 · 1 comment
Open

Tamer does not support litteral 'NaN', 'Inf', or '-Inf' #10

elavoie opened this issue Sep 29, 2016 · 1 comment

Comments

@elavoie
Copy link
Member

elavoie commented Sep 29, 2016

It produces the following exception:

Exception in thread "main" java.lang.UnsupportedOperationException: reference to [NaN] in ldivide_test_25 not found
at natlab.tame.callgraph.SimpleFunctionCollection.resolveFunctionsAndCollect(SimpleFunctionCollection.java:224)
at natlab.tame.callgraph.SimpleFunctionCollection.collect(SimpleFunctionCollection.java:189)
at natlab.tame.callgraph.SimpleFunctionCollection.(SimpleFunctionCollection.java:97)
at natlab.tame.BasicTamerTool.analyze(BasicTamerTool.java:58)
at matjuice.Main.main(Main.java:108)

@geoffreytools
Copy link

I noticed nan and inf are listed in the builtins (languages/Natlab/src/natlab/tame/builtin/Builtin.java). They are equivalent to NaN and Inf in every way.

Using nan in the code produces this compile error though

:1,12-1,12: Syntax Error: unexpected token "|"
beaver.Parser$Exception: Cannot recover from the syntax error
	at beaver.Parser.recoverFromError(Unknown Source)
	at beaver.Parser.parse(Unknown Source)
	at beaver.Parser.parse(Unknown Source)
	at natlab.tame.builtin.shapeprop.ShapePropTool.parse(ShapePropTool.java:28)
	at natlab.tame.builtin.Builtin$AbstractFloatByShapeAndTypeMatrixCreation.getShapePropagationInfo(Builtin.java:4230)
	at natlab.tame.valueanalysis.components.shape.ShapePropagator.caseBuiltin(ShapePropagator.java:45)
	at natlab.tame.valueanalysis.components.shape.ShapePropagator.caseBuiltin(ShapePropagator.java:18)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractRoot(BuiltinVisitor.java:7)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractPureFunction(BuiltinVisitor.java:10)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixFunction(BuiltinVisitor.java:13)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixCreation(BuiltinVisitor.java:349)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractByShapeAndTypeMatrixCreation(BuiltinVisitor.java:353)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractNumericalByShapeAndTypeMatrixCreation(BuiltinVisitor.java:355)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractFloatByShapeAndTypeMatrixCreation(BuiltinVisitor.java:363)
	at natlab.tame.builtin.BuiltinVisitor.caseNan(BuiltinVisitor.java:365)
	at natlab.tame.builtin.Builtin$Nan.visit(Builtin.java:4277)
	at natlab.tame.valueanalysis.basicmatrix.BasicMatrixValuePropagator.caseBuiltin(BasicMatrixValuePropagator.java:70)
	at natlab.tame.valueanalysis.basicmatrix.BasicMatrixValuePropagator.caseBuiltin(BasicMatrixValuePropagator.java:26)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractRoot(BuiltinVisitor.java:7)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractPureFunction(BuiltinVisitor.java:10)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixFunction(BuiltinVisitor.java:13)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixCreation(BuiltinVisitor.java:349)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractByShapeAndTypeMatrixCreation(BuiltinVisitor.java:353)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractNumericalByShapeAndTypeMatrixCreation(BuiltinVisitor.java:355)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractFloatByShapeAndTypeMatrixCreation(BuiltinVisitor.java:363)
	at natlab.tame.builtin.BuiltinVisitor.caseNan(BuiltinVisitor.java:365)
	at natlab.tame.builtin.Builtin$Nan.visit(Builtin.java:4277)
	at natlab.tame.valueanalysis.value.ValuePropagator.call(ValuePropagator.java:41)
	at natlab.tame.valueanalysis.aggrvalue.AggrValuePropagator.caseBuiltin(AggrValuePropagator.java:38)
	at natlab.tame.valueanalysis.aggrvalue.AggrValuePropagator.caseBuiltin(AggrValuePropagator.java:21)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractRoot(BuiltinVisitor.java:7)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractPureFunction(BuiltinVisitor.java:10)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixFunction(BuiltinVisitor.java:13)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixCreation(BuiltinVisitor.java:349)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractByShapeAndTypeMatrixCreation(BuiltinVisitor.java:353)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractNumericalByShapeAndTypeMatrixCreation(BuiltinVisitor.java:355)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractFloatByShapeAndTypeMatrixCreation(BuiltinVisitor.java:363)
	at natlab.tame.builtin.BuiltinVisitor.caseNan(BuiltinVisitor.java:365)
	at natlab.tame.builtin.Builtin$Nan.visit(Builtin.java:4277)
	at natlab.tame.valueanalysis.value.ValuePropagator.call(ValuePropagator.java:41)
	at natlab.tame.valueanalysis.value.ValuePropagator.call(ValuePropagator.java:35)
	at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.call(IntraproceduralValueAnalysis.java:671)
	at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.caseTIRCallStmt(IntraproceduralValueAnalysis.java:181)
	at natlab.tame.tir.TIRCallStmt.tirAnalyze(TIRCallStmt.java:82)
	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)
	at analysis.natlab.NatlabAbstractStructuralAnalysis.analyze(NatlabAbstractStructuralAnalysis.java:122)
	at natlab.tame.interproceduralAnalysis.InterproceduralAnalysisNode.<init>(InterproceduralAnalysisNode.java:92)
	at natlab.tame.interproceduralAnalysis.InterproceduralAnalysis.analyze(InterproceduralAnalysis.java:81)
	at natlab.tame.interproceduralAnalysis.InterproceduralAnalysis.<init>(InterproceduralAnalysis.java:62)
	at natlab.tame.valueanalysis.ValueAnalysis.<init>(ValueAnalysis.java:17)
	at natlab.tame.BasicTamerTool.analyze(BasicTamerTool.java:67)
	at matjuice.Main.main(Main.java:108)
Exception in thread "main" java.lang.NullPointerException
	at natlab.tame.builtin.shapeprop.ShapePropTool.matchByValues(ShapePropTool.java:60)
	at natlab.tame.valueanalysis.components.shape.ShapePropagator.caseBuiltin(ShapePropagator.java:44)
	at natlab.tame.valueanalysis.components.shape.ShapePropagator.caseBuiltin(ShapePropagator.java:18)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractRoot(BuiltinVisitor.java:7)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractPureFunction(BuiltinVisitor.java:10)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixFunction(BuiltinVisitor.java:13)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixCreation(BuiltinVisitor.java:349)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractByShapeAndTypeMatrixCreation(BuiltinVisitor.java:353)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractNumericalByShapeAndTypeMatrixCreation(BuiltinVisitor.java:355)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractFloatByShapeAndTypeMatrixCreation(BuiltinVisitor.java:363)
	at natlab.tame.builtin.BuiltinVisitor.caseNan(BuiltinVisitor.java:365)
	at natlab.tame.builtin.Builtin$Nan.visit(Builtin.java:4277)
	at natlab.tame.valueanalysis.basicmatrix.BasicMatrixValuePropagator.caseBuiltin(BasicMatrixValuePropagator.java:70)
	at natlab.tame.valueanalysis.basicmatrix.BasicMatrixValuePropagator.caseBuiltin(BasicMatrixValuePropagator.java:26)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractRoot(BuiltinVisitor.java:7)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractPureFunction(BuiltinVisitor.java:10)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixFunction(BuiltinVisitor.java:13)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixCreation(BuiltinVisitor.java:349)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractByShapeAndTypeMatrixCreation(BuiltinVisitor.java:353)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractNumericalByShapeAndTypeMatrixCreation(BuiltinVisitor.java:355)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractFloatByShapeAndTypeMatrixCreation(BuiltinVisitor.java:363)
	at natlab.tame.builtin.BuiltinVisitor.caseNan(BuiltinVisitor.java:365)
	at natlab.tame.builtin.Builtin$Nan.visit(Builtin.java:4277)
	at natlab.tame.valueanalysis.value.ValuePropagator.call(ValuePropagator.java:41)
	at natlab.tame.valueanalysis.aggrvalue.AggrValuePropagator.caseBuiltin(AggrValuePropagator.java:38)
	at natlab.tame.valueanalysis.aggrvalue.AggrValuePropagator.caseBuiltin(AggrValuePropagator.java:21)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractRoot(BuiltinVisitor.java:7)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractPureFunction(BuiltinVisitor.java:10)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixFunction(BuiltinVisitor.java:13)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractMatrixCreation(BuiltinVisitor.java:349)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractByShapeAndTypeMatrixCreation(BuiltinVisitor.java:353)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractNumericalByShapeAndTypeMatrixCreation(BuiltinVisitor.java:355)
	at natlab.tame.builtin.BuiltinVisitor.caseAbstractFloatByShapeAndTypeMatrixCreation(BuiltinVisitor.java:363)
	at natlab.tame.builtin.BuiltinVisitor.caseNan(BuiltinVisitor.java:365)
	at natlab.tame.builtin.Builtin$Nan.visit(Builtin.java:4277)
	at natlab.tame.valueanalysis.value.ValuePropagator.call(ValuePropagator.java:41)
	at natlab.tame.valueanalysis.value.ValuePropagator.call(ValuePropagator.java:35)
	at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.call(IntraproceduralValueAnalysis.java:671)
	at natlab.tame.valueanalysis.IntraproceduralValueAnalysis.caseTIRCallStmt(IntraproceduralValueAnalysis.java:181)
	at natlab.tame.tir.TIRCallStmt.tirAnalyze(TIRCallStmt.java:82)
	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)
	at analysis.natlab.NatlabAbstractStructuralAnalysis.analyze(NatlabAbstractStructuralAnalysis.java:122)
	at natlab.tame.interproceduralAnalysis.InterproceduralAnalysisNode.<init>(InterproceduralAnalysisNode.java:92)
	at natlab.tame.interproceduralAnalysis.InterproceduralAnalysis.analyze(InterproceduralAnalysis.java:81)
	at natlab.tame.interproceduralAnalysis.InterproceduralAnalysis.<init>(InterproceduralAnalysis.java:62)
	at natlab.tame.valueanalysis.ValueAnalysis.<init>(ValueAnalysis.java:17)
	at natlab.tame.BasicTamerTool.analyze(BasicTamerTool.java:67)
	at matjuice.Main.main(Main.java:108)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants