private void TestSelfDpGradeFunctionComputationCondition(SteSyntaxElementsList textBuilder, GMacComputationCodeInfo compInfo) { if (compInfo.RhsExpressionCode.IsZero) { compInfo.EnableCodeGeneration = false; //return; } ////Prevent generation of processing code if output grade equals 0 because this is the default grade ////returned by the function //var valueAccess = ((TlOutputVariable)compInfo.ComputedVariable).AssociatedValueAccess; //var id = ((ValueAccessStepByKey<int>)valueAccess.LastAccessStep).AccessKey; //var grade = GaUtils.ID_To_Grade(id); //if (grade == 0) // compInfo.EnableCodeGeneration = false; }
private static void AddSelfDpGradeFunctionComputationCondition(SteSyntaxElementsList textBuilder, GMacComputationCodeInfo compInfo) { if (compInfo.ComputedVariable.IsOutput == false || compInfo.EnableCodeGeneration == false) { return; } var basisBlade = ((GMacCbOutputVariable)compInfo.ComputedVariable).ValueAccess.GetBasisBlade(); var grade = basisBlade.Grade; textBuilder.AddFixedCode("if (c <= -Epsilon || c >= Epsilon) return " + grade + ";"); textBuilder.AddEmptyLines(2); }