/// <param name="S">Specification.</param> /// <param name="M">Metric</param> /// <param name="g1">Input grade/group 1.</param> /// <param name="g2">Input grade/group 2.</param> /// <param name="gd">Destination grade/group.</param> /// <param name="fromOutsideRuntimeNamespace">When calling the function from outside the runtime namespace, set this param to true.</param> /// <returns>The name of the table which is used to compute <c>gd = g1 g2</c> using metric <c>M</c></returns> public static string GetRuntimeGpTableName(G25.Specification S, G25.Metric M, int g1, int g2, int gd, bool fromOutsideRuntimeNamespace) { if (S.OutputCppOrC()) { string prefix = ""; if (fromOutsideRuntimeNamespace && (S.OutputCpp())) prefix = Main.RUNTIME_NAMESPACE + "::"; return prefix + S.m_namespace + "_runtimeGpProductTable_" + M.m_name + "_" + g1 + "_" + g2 + "_" + gd; } else { return "runtimeGpProductTable_" + M.m_name + "_" + g1 + "_" + g2 + "_" + gd; } }
/// <param name="S">Specification.</param> /// <param name="FT">Float type</param> /// <param name="fromOutsideRuntimeNamespace">When calling the function from outside the runtime namespace, set this param to true.</param> /// <returns>The name of the function used to compute the geometric product in real-time (depends only on the floating point type)</returns> public static string GetRuntimeComputeGpFuncName(G25.Specification S, G25.FloatType FT, bool fromOutsideRuntimeNamespace) { if (S.OutputCppOrC()) { string prefix = ""; if (fromOutsideRuntimeNamespace && (S.OutputCpp())) prefix = Main.RUNTIME_NAMESPACE + "::"; return prefix + S.m_namespace + "_runtimeComputeGp_" + FT.type; } else if (S.OutputCSharp()) { return "RuntimeComputeGp_" + FT.type; } else { return "runtimeComputeGp_" + FT.type; } }