コード例 #1
0
        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;
        }
コード例 #2
0
        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);
        }