Skip to content

Commit 2c777b6

Browse files
authored
Merge pull request #4300 from lindsayad/update-metaphysicl
Update MetaPhysicL
2 parents 480153a + d899143 commit 2c777b6

File tree

10 files changed

+102
-94
lines changed

10 files changed

+102
-94
lines changed

configure

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63450,13 +63450,13 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
6345063450
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6345163451
/* end confdefs.h. */
6345263452

63453-
#include "metaphysicl/numberarray.h"
63453+
#include "metaphysicl/raw_type.h"
6345463454

6345563455
int
6345663456
main (void)
6345763457
{
6345863458

63459-
MetaPhysicL::NumberArray<4, double> x;
63459+
MetaPhysicL::RawType<double> x;
6346063460

6346163461
;
6346263462
return 0;

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";

contrib/metaphysicl

Submodule metaphysicl updated 81 files

include/numerics/dense_matrix.h

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ class DenseMatrix : public DenseMatrixBase<T>
324324
* This is the natural matrix norm that is compatible to the l1-norm
325325
* for vectors, i.e. \f$ |Mv|_1 \leq |M|_1 |v|_1 \f$.
326326
*/
327-
auto l1_norm () const -> decltype(std::abs(T(0)));
327+
auto l1_norm () const;
328328

329329
/**
330330
* \returns The linfty-norm of the matrix, that is, the max row sum:
@@ -334,7 +334,7 @@ class DenseMatrix : public DenseMatrixBase<T>
334334
* This is the natural matrix norm that is compatible to the
335335
* linfty-norm of vectors, i.e. \f$ |Mv|_\infty \leq |M|_\infty |v|_\infty \f$.
336336
*/
337-
auto linfty_norm () const -> decltype(std::abs(T(0)));
337+
auto linfty_norm () const;
338338

339339
/**
340340
* Left multiplies by the transpose of the matrix \p A.
@@ -1122,23 +1122,24 @@ auto DenseMatrix<T>::max () const -> decltype(libmesh_real(T(0)))
11221122

11231123
template<typename T>
11241124
inline
1125-
auto DenseMatrix<T>::l1_norm () const -> decltype(std::abs(T(0)))
1125+
auto DenseMatrix<T>::l1_norm () const
11261126
{
11271127
libmesh_assert (this->_m);
11281128
libmesh_assert (this->_n);
11291129

1130-
auto columnsum = std::abs(T(0));
1130+
using std::abs;
1131+
auto columnsum = abs(T(0));
11311132
for (unsigned int i=0; i!=this->_m; i++)
11321133
{
1133-
columnsum += std::abs((*this)(i,0));
1134+
columnsum += abs((*this)(i,0));
11341135
}
11351136
auto my_max = columnsum;
11361137
for (unsigned int j=1; j!=this->_n; j++)
11371138
{
11381139
columnsum = 0.;
11391140
for (unsigned int i=0; i!=this->_m; i++)
11401141
{
1141-
columnsum += std::abs((*this)(i,j));
1142+
columnsum += abs((*this)(i,j));
11421143
}
11431144
my_max = (my_max > columnsum? my_max : columnsum);
11441145
}
@@ -1149,23 +1150,24 @@ auto DenseMatrix<T>::l1_norm () const -> decltype(std::abs(T(0)))
11491150

11501151
template<typename T>
11511152
inline
1152-
auto DenseMatrix<T>::linfty_norm () const -> decltype(std::abs(T(0)))
1153+
auto DenseMatrix<T>::linfty_norm () const
11531154
{
11541155
libmesh_assert (this->_m);
11551156
libmesh_assert (this->_n);
1157+
using std::abs;
11561158

1157-
auto rowsum = std::abs(T(0));
1159+
auto rowsum = abs(T(0));
11581160
for (unsigned int j=0; j!=this->_n; j++)
11591161
{
1160-
rowsum += std::abs((*this)(0,j));
1162+
rowsum += abs((*this)(0,j));
11611163
}
11621164
auto my_max = rowsum;
11631165
for (unsigned int i=1; i!=this->_m; i++)
11641166
{
11651167
rowsum = 0.;
11661168
for (unsigned int j=0; j!=this->_n; j++)
11671169
{
1168-
rowsum += std::abs((*this)(i,j));
1170+
rowsum += abs((*this)(i,j));
11691171
}
11701172
my_max = (my_max > rowsum? my_max : rowsum);
11711173
}

include/numerics/dense_matrix_impl.h

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,8 @@ void DenseMatrix<T>::_lu_back_substitute (const DenseVector<T> & b,
630630
template<typename T>
631631
void DenseMatrix<T>::_lu_decompose ()
632632
{
633+
using std::abs;
634+
633635
// If this function was called, there better not be any
634636
// previous decomposition of the matrix.
635637
libmesh_assert_equal_to (this->_decomposition_type, NONE);
@@ -648,11 +650,11 @@ void DenseMatrix<T>::_lu_decompose ()
648650
// Find the pivot row by searching down the i'th column
649651
_pivots[i] = i;
650652

651-
// std::abs(complex) must return a Real!
652-
auto the_max = std::abs( A(i,i) );
653+
// abs(complex) must return a Real!
654+
auto the_max = abs( A(i,i) );
653655
for (unsigned int j=i+1; j<n_rows; ++j)
654656
{
655-
auto candidate_max = std::abs( A(j,i) );
657+
auto candidate_max = abs( A(j,i) );
656658
if (the_max < candidate_max)
657659
{
658660
the_max = candidate_max;
@@ -872,6 +874,8 @@ void DenseMatrix<T>::cholesky_solve (const DenseVector<T2> & b,
872874
template<typename T>
873875
void DenseMatrix<T>::_cholesky_decompose ()
874876
{
877+
using std::sqrt;
878+
875879
// If we called this function, there better not be any
876880
// previous decomposition of the matrix.
877881
libmesh_assert_equal_to (this->_decomposition_type, NONE);
@@ -901,7 +905,7 @@ void DenseMatrix<T>::_cholesky_decompose ()
901905
"Error! Can only use Cholesky decomposition with symmetric positive definite matrices.");
902906
#endif
903907

904-
A(i,i) = std::sqrt(A(i,j));
908+
A(i,i) = sqrt(A(i,j));
905909
}
906910
else
907911
A(j,i) = A(i,j) / A(i,i);

0 commit comments

Comments
 (0)