本文整理汇总了C#中G25.OutputCppOrC方法的典型用法代码示例。如果您正苦于以下问题:C# G25.OutputCppOrC方法的具体用法?C# G25.OutputCppOrC怎么用?C# G25.OutputCppOrC使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类G25
的用法示例。
在下文中一共展示了G25.OutputCppOrC方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetRuntimeComputeGpFuncName
/// <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;
}
}
示例2: GetRuntimeGpTableName
/// <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;
}
}
示例3: GetRuntimeDualCode
/// <param name="S"></param>
/// <param name="FT"></param>
/// <param name="M"></param>
/// <param name="d">1 -> generate dual, d = 0 -> generate undual</param>
/// <param name="g1"></param>
/// <param name="gd"></param>
/// <param name="name1"></param>
/// <param name="name2"></param>
/// <param name="name3"></param>
/// <returns>The code to compute a (un)dual at runtime using the geometric product tables.</returns>
public static string GetRuntimeDualCode(G25.Specification S, G25.FloatType FT, G25.Metric M,
int d, int g1, int gd,
string name1, string name2, string name3)
{
// get pseudoscalar
RefGA.Multivector I = RefGA.Multivector.GetPseudoscalar(S.m_dimension);
if (d == 1) // if dual: use inverse I
I = RefGA.Multivector.VersorInverse(I, M.m_metric);
// get grade/group of pseudoscalar in GMV
int g2 = S.m_GMV.GetGroupIdx(I.BasisBlades[0]);
// get sign of pseudo scalar basis blade in GMV:
double IbladeSign = S.m_GMV.Group(g2)[0].scale;
string tmpArrayCode;
if (S.OutputCppOrC())
tmpArrayCode = "\t" + FT.type + " " + name2 + "[1] = {" + FT.DoubleToString(S, IbladeSign * I.BasisBlades[0].scale) + "};\n";
else tmpArrayCode = "\t\t" + FT.type + "[] " + name2 + " = new " + FT.type + "[]{" + FT.DoubleToString(S, IbladeSign * I.BasisBlades[0].scale) + "};\n\t";
return
tmpArrayCode +
"\t" + GPparts.GetGPpartFunctionName(S, FT, M, g1, g2, gd) + "(" + name1 + ", " + name2 + ", " + name3 + ");\n";
}