From bf56d6fb824c7beca42e21ba61176c7525bdf32a Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Wed, 4 Dec 2019 11:18:21 +0100 Subject: [PATCH] fix LaTeX output for sqrt, exp, sin, cos, tan --- src/ExprNode.cc | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/ExprNode.cc b/src/ExprNode.cc index 0d473828..e4da0249 100644 --- a/src/ExprNode.cc +++ b/src/ExprNode.cc @@ -2723,7 +2723,10 @@ UnaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type, output << "-"; break; case UnaryOpcode::exp: - output << "exp"; + if (isLatexOutput(output_type)) + output << R"(\exp)"; + else + output << "exp"; break; case UnaryOpcode::log: if (isLatexOutput(output_type)) @@ -2738,13 +2741,22 @@ UnaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type, output << "log10"; break; case UnaryOpcode::cos: - output << "cos"; + if (isLatexOutput(output_type)) + output << R"(\cos)"; + else + output << "cos"; break; case UnaryOpcode::sin: - output << "sin"; + if (isLatexOutput(output_type)) + output << R"(\sin)"; + else + output << "sin"; break; case UnaryOpcode::tan: - output << "tan"; + if (isLatexOutput(output_type)) + output << R"(\tan)"; + else + output << "tan"; break; case UnaryOpcode::acos: output << "acos"; @@ -2774,6 +2786,13 @@ UnaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type, output << "atanh"; break; case UnaryOpcode::sqrt: + if (isLatexOutput(output_type)) + { + output << R"(\sqrt{)"; + arg->writeOutput(output, output_type, temporary_terms, temporary_terms_idxs, tef_terms); + output << "}"; + return; + } output << "sqrt"; break; case UnaryOpcode::cbrt: