Skip to content

Commit 91779e7

Browse files
committed
Update fparser
1 parent b843ea4 commit 91779e7

File tree

1 file changed

+49
-49
lines changed

1 file changed

+49
-49
lines changed

contrib/fparser/fparser_ad.cc

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -800,77 +800,77 @@ bool FunctionParserADBase<Value_t>::JITCodeGen(std::ostream & ccout, const std::
800800
case cDiv:
801801
--sp; ccout << "s[" << sp << "] /= s[" << (sp+1) << "];\n"; break;
802802
case cMod:
803-
--sp; ccout << "s[" << sp << "] = std::fmod(s[" << sp << "], s[" << (sp+1) << "]);\n"; break;
803+
--sp; ccout << "using std::fmod; s[" << sp << "] = fmod(s[" << sp << "], s[" << (sp+1) << "]);\n"; break;
804804
case cRDiv:
805805
--sp; ccout << "s[" << sp << "] = s[" << (sp+1) << "] / s[" << sp << "];\n"; break;
806806

807807
case cSin:
808-
ccout << "s[" << sp << "] = std::sin(s[" << sp << "]);\n"; break;
808+
ccout << "using std::sin; s[" << sp << "] = sin(s[" << sp << "]);\n"; break;
809809
case cCos:
810-
ccout << "s[" << sp << "] = std::cos(s[" << sp << "]);\n"; break;
810+
ccout << "using std::cos; s[" << sp << "] = cos(s[" << sp << "]);\n"; break;
811811
case cTan:
812-
ccout << "s[" << sp << "] = std::tan(s[" << sp << "]);\n"; break;
812+
ccout << "using std::tan; s[" << sp << "] = tan(s[" << sp << "]);\n"; break;
813813
case cSinh:
814-
ccout << "s[" << sp << "] = std::sinh(s[" << sp << "]);\n"; break;
814+
ccout << "using std::sinh; s[" << sp << "] = sinh(s[" << sp << "]);\n"; break;
815815
case cCosh:
816-
ccout << "s[" << sp << "] = std::cosh(s[" << sp << "]);\n"; break;
816+
ccout << "using std::cosh; s[" << sp << "] = cosh(s[" << sp << "]);\n"; break;
817817
case cTanh:
818-
ccout << "s[" << sp << "] = std::tanh(s[" << sp << "]);\n"; break;
818+
ccout << "using std::tanh; s[" << sp << "] = tanh(s[" << sp << "]);\n"; break;
819819
// TODO: div by zero -> this->mData->mEvalErrorType=1; return Value_t(0);
820820
case cCsc:
821-
ccout << "s[" << sp << "] = 1.0/std::sin(s[" << sp << "]);\n"; break;
821+
ccout << "using std::sin; s[" << sp << "] = 1.0/sin(s[" << sp << "]);\n"; break;
822822
case cSec:
823-
ccout << "s[" << sp << "] = 1.0/std::cos(s[" << sp << "]);\n"; break;
823+
ccout << "using std::cos; s[" << sp << "] = 1.0/cos(s[" << sp << "]);\n"; break;
824824
case cCot:
825-
ccout << "s[" << sp << "] = 1.0/std::tan(s[" << sp << "]);\n"; break;
825+
ccout << "using std::tan; s[" << sp << "] = 1.0/tan(s[" << sp << "]);\n"; break;
826826
case cSinCos:
827-
ccout << "s[" << (sp+1) << "] = std::cos(s[" << sp << "]);\n";
828-
ccout << "s[" << sp << "] = std::sin(s[" << sp << "]);\n";
827+
ccout << "using std::cos; s[" << (sp+1) << "] = cos(s[" << sp << "]);\n";
828+
ccout << "using std::sin; s[" << sp << "] = sin(s[" << sp << "]);\n";
829829
++sp;
830830
break;
831831
case cSinhCosh:
832-
ccout << "s[" << (sp+1) << "] = std::cosh(s[" << sp << "]);\n";
833-
ccout << "s[" << sp << "] = std::sinh(s[" << sp << "]);\n";
832+
ccout << "using std::cosh; s[" << (sp+1) << "] = cosh(s[" << sp << "]);\n";
833+
ccout << "using std::sinh; s[" << sp << "] = sinh(s[" << sp << "]);\n";
834834
++sp;
835835
break;
836836
case cAsin:
837-
ccout << "s[" << sp << "] = std::asin(s[" << sp << "]);\n"; break;
837+
ccout << " using std::asin; s[" << sp << "] = asin(s[" << sp << "]);\n"; break;
838838
case cAcos:
839-
ccout << "s[" << sp << "] = std::acos(s[" << sp << "]);\n"; break;
839+
ccout << " using std::acos; s[" << sp << "] = acos(s[" << sp << "]);\n"; break;
840840
case cAsinh:
841-
ccout << "s[" << sp << "] = std::asinh(s[" << sp << "]);\n"; break;
841+
ccout << " using std::asinh; s[" << sp << "] = asinh(s[" << sp << "]);\n"; break;
842842
case cAcosh:
843-
ccout << "s[" << sp << "] = std::acosh(s[" << sp << "]);\n"; break;
843+
ccout << " using std::acosh; s[" << sp << "] = acosh(s[" << sp << "]);\n"; break;
844844
case cAtan:
845-
ccout << "s[" << sp << "] = std::atan(s[" << sp << "]);\n"; break;
845+
ccout << " using std::atan; s[" << sp << "] = atan(s[" << sp << "]);\n"; break;
846846
case cAtanh:
847-
ccout << "s[" << sp << "] = std::atanh(s[" << sp << "]);\n"; break;
847+
ccout << " using std::atanh; s[" << sp << "] = atanh(s[" << sp << "]);\n"; break;
848848
case cAtan2:
849-
--sp; ccout << "s[" << sp << "] = std::atan2(s[" << sp << "], s[" << (sp+1) << "]);\n"; break;
849+
--sp; ccout << " using std::atan2; s[" << sp << "] = atan2(s[" << sp << "], s[" << (sp+1) << "]);\n"; break;
850850
case cHypot:
851-
--sp; ccout << "s[" << sp << "] = std::sqrt(s[" << sp << "]*s[" << sp << "] + s[" << (sp+1) << "]*s[" << (sp+1) << "]);\n"; break;
851+
--sp; ccout << " using std::sqrt; s[" << sp << "] = sqrt(s[" << sp << "]*s[" << sp << "] + s[" << (sp+1) << "]*s[" << (sp+1) << "]);\n"; break;
852852

853853
case cAbs:
854-
ccout << "s[" << sp << "] = std::abs(s[" << sp << "]);\n"; break;
854+
ccout << "using std::abs; s[" << sp << "] = abs(s[" << sp << "]);\n"; break;
855855
case cMax:
856856
--sp; ccout << "s[" << sp << "] = s[" << sp << "] > s[" << (sp+1) << "] ? s[" << sp << "] : s[" << (sp+1) << "];\n"; break;
857857
case cMin:
858858
--sp; ccout << "s[" << sp << "] = s[" << sp << "] < s[" << (sp+1) << "] ? s[" << sp << "] : s[" << (sp+1) << "];\n"; break;
859859
case cTrunc:
860-
ccout << "s[" << sp << "] = s[" << sp << "] < 0 ? std::ceil(s[" << sp << "]) : std::floor(s[" << sp << "]);\n"; break;
860+
ccout << "using std::ceil, std::floor; s[" << sp << "] = s[" << sp << "] < 0 ? ceil(s[" << sp << "]) : floor(s[" << sp << "]);\n"; break;
861861
case cCeil:
862-
ccout << "s[" << sp << "] = std::ceil(s[" << sp << "]);\n"; break;
862+
ccout << "using std::ceil; s[" << sp << "] = ceil(s[" << sp << "]);\n"; break;
863863
case cFloor:
864-
ccout << "s[" << sp << "] = std::floor(s[" << sp << "]);\n"; break;
864+
ccout << "using std::floor; s[" << sp << "] = floor(s[" << sp << "]);\n"; break;
865865
case cInt:
866-
ccout << "s[" << sp << "] = s[" << sp << "] < 0 ? std::ceil(s[" << sp << "] - 0.5) : std::floor(s[" << sp << "] + 0.5);\n"; break;
866+
ccout << "using std::ceil, std::floor; s[" << sp << "] = s[" << sp << "] < 0 ? ceil(s[" << sp << "] - 0.5) : floor(s[" << sp << "] + 0.5);\n"; break;
867867

868868
case cEqual:
869869
//--sp; ccout << "s[" << sp << "] = s[" << sp << "] == s[" << (sp+1) << "];\n"; break;
870-
--sp; ccout << "s[" << sp << "] = std::abs(s[" << sp << "] - s[" << (sp+1) << "]) <= eps;\n"; break;
870+
--sp; ccout << "using std::abs; s[" << sp << "] = abs(s[" << sp << "] - s[" << (sp+1) << "]) <= eps;\n"; break;
871871
case cNEqual:
872872
//--sp; ccout << "s[" << sp << "] = s[" << sp << "] != s[" << (sp+1) << "];\n"; break;
873-
--sp; ccout << "s[" << sp << "] = std::abs(s[" << sp << "] - s[" << (sp+1) << "]) > eps;\n"; break;
873+
--sp; ccout << "using std::abs; s[" << sp << "] = abs(s[" << sp << "] - s[" << (sp+1) << "]) > eps;\n"; break;
874874
case cLess:
875875
--sp; ccout << "s[" << sp << "] = s[" << sp << "] < (s[" << (sp+1) << "] - eps);\n"; break;
876876
case cLessOrEq:
@@ -880,33 +880,33 @@ bool FunctionParserADBase<Value_t>::JITCodeGen(std::ostream & ccout, const std::
880880
case cGreaterOrEq:
881881
--sp; ccout << "s[" << sp << "] = (s[" << sp << "] + eps) >= s[" << (sp+1) << "];\n"; break;
882882
case cNot:
883-
ccout << "s[" << sp << "] = std::abs(s[" << sp << "]) < 0.5;\n"; break;
883+
ccout << "using std::abs; s[" << sp << "] = abs(s[" << sp << "]) < 0.5;\n"; break;
884884
case cNotNot:
885-
ccout << "s[" << sp << "] = std::abs(s[" << sp << "]) >= 0.5;\n"; break;
885+
ccout << "using std::abs; s[" << sp << "] = abs(s[" << sp << "]) >= 0.5;\n"; break;
886886
case cAbsNot:
887887
ccout << "s[" << sp << "] = s[" << sp << "] < 0.5;\n"; break;
888888
case cAbsNotNot:
889889
ccout << "s[" << sp << "] = s[" << sp << "] >= 0.5;\n"; break;
890890
case cOr:
891-
--sp; ccout << "s[" << sp << "] = (std::abs(s[" << sp << "]) >= 0.5) || (std::abs(s[" << (sp+1) << "]) >= 0.5);\n"; break;
891+
--sp; ccout << "using std::abs; s[" << sp << "] = (abs(s[" << sp << "]) >= 0.5) || (abs(s[" << (sp+1) << "]) >= 0.5);\n"; break;
892892
case cAbsOr:
893893
--sp; ccout << "s[" << sp << "] = (s[" << sp << "] >= 0.5) || (s[" << (sp+1) << "] >= 0.5);\n"; break;
894894
case cAnd:
895-
--sp; ccout << "s[" << sp << "] = (std::abs(s[" << sp << "]) >= 0.5) && (std::abs(s[" << (sp+1) << "]) >= 0.5);\n"; break;
895+
--sp; ccout << "using std::abs; s[" << sp << "] = (abs(s[" << sp << "]) >= 0.5) && (abs(s[" << (sp+1) << "]) >= 0.5);\n"; break;
896896
case cAbsAnd:
897897
--sp; ccout << "s[" << sp << "] = (s[" << sp << "] >= 0.5) && (s[" << (sp+1) << "] >= 0.5);\n"; break;
898898

899899
case cLog:
900-
ccout << "s[" << sp << "] = std::log(s[" << sp << "]);\n"; break;
900+
ccout << "using std::log; s[" << sp << "] = log(s[" << sp << "]);\n"; break;
901901
case cLog2:
902902
#ifdef FP_SUPPORT_CPLUSPLUS11_MATH_FUNCS
903-
ccout << "s[" << (sp-1) << "] = std::log2(s[" << (sp-1) << "]);\n";
903+
ccout << "using std::log2; s[" << (sp-1) << "] = log2(s[" << (sp-1) << "]);\n";
904904
#else
905-
ccout << "s[" << sp << "] = std::log(s[" << sp << "])/log(2.0);\n";
905+
ccout << "using std::log; s[" << sp << "] = log(s[" << sp << "])/log(2.0);\n";
906906
#endif
907907
break;
908908
case cLog10:
909-
ccout << "s[" << sp << "] = std::log10(s[" << sp << "]);\n"; break;
909+
ccout << "using std::log10; s[" << sp << "] = log10(s[" << sp << "]);\n"; break;
910910

911911
case cNeg:
912912
ccout << "s[" << sp << "] = -s[" << sp << "];\n"; break;
@@ -929,14 +929,14 @@ bool FunctionParserADBase<Value_t>::JITCodeGen(std::ostream & ccout, const std::
929929
{
930930
// --sp; ccout << "s[" << sp << "] = s[" << sp << "] < s[" << (sp+1) << "] ? std::log(s[" << (sp+1) << "]) + (s[" << sp << "] - s[" << (sp+1) << "]) / s[" << (sp+1) << "] : std::log(s[" << sp << "]);\n";
931931
// --sp; ccout << "s[" << sp << "] = s[" << sp << "] < s[" << (sp+1) << "] ? std::log(s[" << (sp+1) << "]) - 1.5 + 2.0/s[" << (sp+1) << "] * s[" << sp << "] - 0.5/(s[" << (sp+1) << "]*s[" << (sp+1) << "]) * s[" << sp << "]*s[" << sp << "] : std::log(s[" << sp << "]);\n";
932-
--sp; ccout << "s[" << sp << "] = s[" << sp << "] < s[" << (sp+1) << "] ? std::log(s[" << (sp+1) << "]) + (s[" << sp << "]-s[" << (sp+1) << "])/s[" << (sp+1) << "] - std::pow((s[" << sp << "]-s[" << (sp+1) << "])/s[" << (sp+1) << "],2.0)/2.0 + std::pow((s[" << sp << "]-s[" << (sp+1) << "])/s[" << (sp+1) << "],3.0)/3.0 : std::log(s[" << sp << "]);\n";
932+
--sp; ccout << "using std::log, std::pow; s[" << sp << "] = s[" << sp << "] < s[" << (sp+1) << "] ? log(s[" << (sp+1) << "]) + (s[" << sp << "]-s[" << (sp+1) << "])/s[" << (sp+1) << "] - pow((s[" << sp << "]-s[" << (sp+1) << "])/s[" << (sp+1) << "],2.0)/2.0 + pow((s[" << sp << "]-s[" << (sp+1) << "])/s[" << (sp+1) << "],3.0)/3.0 : log(s[" << sp << "]);\n";
933933
}
934934
else if (function == mFErf)
935935
{
936936
#if LIBMESH_HAVE_CXX11_ERF
937-
ccout << "s[" << sp << "] = std::erf(s[" << sp << "]);\n";
937+
ccout << "using std::erf; s[" << sp << "] = erf(s[" << sp << "]);\n";
938938
#else
939-
std::cerr << "Libmesh is not compiled with c++11 so std::erf is not supported by JIT.\n";
939+
std::cerr << "Libmesh is not compiled with c++11 so erf is not supported by JIT.\n";
940940
return false;
941941
#endif
942942
}
@@ -958,28 +958,28 @@ bool FunctionParserADBase<Value_t>::JITCodeGen(std::ostream & ccout, const std::
958958
break;
959959
}
960960
case cLog2by:
961-
--sp; ccout << "s[" << sp << "] = std::log(s[" << sp << "])/log(2.0) * s[" << (sp+1) << "];\n"; break;
961+
--sp; ccout << "using std::log; s[" << sp << "] = log(s[" << sp << "])/log(2.0) * s[" << (sp+1) << "];\n"; break;
962962
case cNop:
963963
break;
964964
#endif
965965

966966
case cSqr:
967967
ccout << "s[" << sp << "] *= s[" << sp << "];\n"; break;
968968
case cSqrt:
969-
ccout << "s[" << sp << "] = std::sqrt(s[" << sp << "]);\n"; break;
969+
ccout << "using std::sqrt; s[" << sp << "] = sqrt(s[" << sp << "]);\n"; break;
970970
case cRSqrt:
971-
ccout << "s[" << sp << "] = std::pow(s[" << sp << "], (-0.5));\n"; break;
971+
ccout << "using std::pow; s[" << sp << "] = pow(s[" << sp << "], (-0.5));\n"; break;
972972
case cPow:
973-
--sp; ccout << "s[" << sp << "] = std::pow(s[" << sp << "], s[" << (sp+1) << "]);\n"; break;
973+
--sp; ccout << "using std::pow; s[" << sp << "] = pow(s[" << sp << "], s[" << (sp+1) << "]);\n"; break;
974974
case cExp:
975-
ccout << "s[" << sp << "] = std::exp(s[" << sp << "]);\n"; break;
975+
ccout << "using std::exp; s[" << sp << "] = exp(s[" << sp << "]);\n"; break;
976976
case cExp2:
977-
ccout << "s[" << sp << "] = std::pow(2.0, s[" << sp << "]);\n"; break;
977+
ccout << "using std::pow; s[" << sp << "] = pow(2.0, s[" << sp << "]);\n"; break;
978978
case cCbrt:
979979
#ifdef FP_SUPPORT_CPLUSPLUS11_MATH_FUNCS
980-
ccout << "s[" << sp << "] = std::cbrt(s[" << sp << "]);\n"; break;
980+
ccout << "using std::cbrt; s[" << sp << "] = cbrt(s[" << sp << "]);\n"; break;
981981
#else
982-
ccout << "s[" << sp << "] = s[" << sp << "] == 0 ? 0 : (s[" << sp << "] > 0 ? std::exp(std::log(s[" << sp << "])/3.0) : -std::exp(std::log(-s[" << sp << "])/3.0));\n"; break;
982+
ccout << "using std::exp, std::log; s[" << sp << "] = s[" << sp << "] == 0 ? 0 : (s[" << sp << "] > 0 ? exp(log(s[" << sp << "])/3.0) : -exp(log(-s[" << sp << "])/3.0));\n"; break;
983983
#endif
984984

985985
case cJump:
@@ -991,7 +991,7 @@ bool FunctionParserADBase<Value_t>::JITCodeGen(std::ostream & ccout, const std::
991991
if (op == cIf)
992992
ccout << "if (s[" << sp-- << "] < 0.5) ";
993993
if (op == cAbsIf)
994-
ccout << "if (std::abs(s[" << sp-- << "]) < 0.5) ";
994+
ccout << "using std::abs; if (abs(s[" << sp-- << "]) < 0.5) ";
995995

996996
if (ip >= ByteCode.size())
997997
ccout << "*ret = s[" << sp << "]; return;\n";

0 commit comments

Comments
 (0)