--- src/bayesxsrc/structadd/distr.cpp.orig	2023-02-03 19:32:06.000000000 +0800
+++ src/bayesxsrc/structadd/distr.cpp	2023-10-21 05:57:43.000000000 +0800
@@ -376,7 +376,7 @@
   while (ok && (i<nrobs))
     {
     // cmp with nan value is always false, thus check for nan first
-    if (isnan(*worklin))
+    if (std::isnan(*worklin))
       {
       cerr << "linear predictor is NaN in equation " << this->equationtype
            << ".\ncan not recover.\nterminating bayesx.\n";

--- src/bayesxsrc/structadd/distr_gamlss.cpp.orig	2023-02-03 19:32:06.000000000 +0800
+++ src/bayesxsrc/structadd/distr_gamlss.cpp	2023-10-21 05:58:21.000000000 +0800
@@ -3359,9 +3359,9 @@
 /*
     cout << "workingresponse: " << *workingresponse << endl << endl;
 
-    if(isnan(*workingresponse))
+    if(std::isnan(*workingresponse))
       cout << "arg (workingresponse, sigma)";
-    if(isnan(*workingweight))
+    if(std::isnan(*workingweight))
       cout << "arg (workingweight, sigma)";
 */
 
@@ -3633,7 +3633,7 @@
     *workingresponse = *linpred + nu/(*workingweight);
 
 /*
-    if(isnan(*workingresponse))
+    if(std::isnan(*workingresponse))
       {
       cout << counter << endl;
       cout << "arg (workingresponse, mu)" << endl;
@@ -3643,7 +3643,7 @@
       cout << "ddist:" << ddist << endl;
       cout << "mills:" << mills << endl;
       }
-    if(isnan(*workingweight))
+    if(std::isnan(*workingweight))
       {
       cout << counter << endl;
       cout << "arg (workingweight, mu)" << endl;

--- src/bayesxsrc/structadd/distr_gamlss_copula.cpp.orig	2023-02-03 19:32:06.000000000 +0800
+++ src/bayesxsrc/structadd/distr_gamlss_copula.cpp	2023-10-21 05:59:01.000000000 +0800
@@ -1058,7 +1058,7 @@
   if((*workingweight) <= 0)
     *workingweight = 0.0001;
 
-/*  if(isnan(*workingweight) || *workingweight > 100)
+/*  if(std::isnan(*workingweight) || *workingweight > 100)
     {
     *workingweight = 1.0;
     cout << "Clayton *workingweight NAN" << endl;
@@ -1066,7 +1066,7 @@
 
   *workingresponse = *linpred + nu/(*workingweight);
 
-/*  if(isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
+/*  if(std::isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
     {
     *workingresponse = 0.0;
     cout << "counter: " << counter << endl;
@@ -1134,13 +1134,13 @@
   // second derivative
   double ddlc = (1+rho)/(F1*F1)+(2+1/rho)*pow(rho*pow(F1,(-rho-1))/arg,2)-(2+1/rho)*rho*(rho+1)*pow(F1,(-rho-2))/arg;
 
-/*  if(isnan(dlc))
+/*  if(std::isnan(dlc))
     {
     dlc = 0.0;
     cout << "counter: " << counter << endl;
     cout << "Clayton derivative dlc NAN" << endl;
     }
-  if(isnan(ddlc))
+  if(std::isnan(ddlc))
     {
     ddlc = 0.0;
     cout << "counter: " << counter << endl;
@@ -1162,7 +1162,7 @@
 
   double lc = log(rho + 1) - (1 + rho) * (log(F1) + log(F2)) - (2 + 1 / rho) * log(arg);
 
-/*  if(isnan(lc))
+/*  if(std::isnan(lc))
     {
     lc = 0.0;
     cout << "counter: " << counter << endl;
@@ -1238,7 +1238,7 @@
 
   double res = randnumbers::invPhi2(argPhi)  + linpred_F;
 
-/*  if(isnan(res))
+/*  if(std::isnan(res))
     {
     res = 0.0;
     cout << "counter: " << counter << endl;

--- src/bayesxsrc/structadd/distr_gamlss_nadja.cpp.orig	2023-02-03 19:32:06.000000000 +0800
+++ src/bayesxsrc/structadd/distr_gamlss_nadja.cpp	2023-10-21 05:59:47.000000000 +0800
@@ -4679,7 +4679,7 @@
       *workingweight = 0.0001;
     }
 
-/*  if(isnan(*workingweight) || *workingweight > 100)
+/*  if(std::isnan(*workingweight) || *workingweight > 100)
     {
     *workingweight = 1.0;
     cout << "counter: " << counter << endl;
@@ -4688,7 +4688,7 @@
 
   *workingresponse = *linpred + nu/(*workingweight);
 
-/*  if(isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
+/*  if(std::isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
     {
     *workingresponse = 0.0;
     cout << "counter: " << counter << endl;
@@ -5032,7 +5032,7 @@
       *workingweight = 0.001;
     }
 
-/*  if(isnan(*workingweight) || *workingweight > 100)
+/*  if(std::isnan(*workingweight) || *workingweight > 100)
     {
     *workingweight = 1.0;
     cout << "counter: " << counter << endl;
@@ -5041,7 +5041,7 @@
 
   *workingresponse = *linpred + nu/(*workingweight);
 
-/*  if(isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
+/*  if(std::isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
     {
     *workingresponse = 0.0;
     cout << "counter: " << counter << endl;
@@ -5283,7 +5283,7 @@
       *workingweight = 0.0001;
     }
 
-/*  if(isnan(*workingweight) || *workingweight > 100)
+/*  if(std::isnan(*workingweight) || *workingweight > 100)
     {
     *workingweight = 1.0;
    d cout << "counter: " << counter << endl;
@@ -5661,7 +5661,7 @@
     }
 
 
-/*  if(isnan(*workingweight) || *workingweight > 100)
+/*  if(std::isnan(*workingweight) || *workingweight > 100)
     {
     *workingweight = 1.0;
     cout << "counter: " << counter << endl;
@@ -5670,7 +5670,7 @@
 
   *workingresponse = *linpred + nu/(*workingweight);
 
-/*  if(isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
+/*  if(std::isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
     {
     *workingresponse = 0.0;
     cout << "counter: " << counter << endl;
@@ -10168,7 +10168,7 @@
   if (*workingweight <=0)
     *workingweight = 0.0001;
 
-/*  if(isnan(*workingweight) || *workingweight > 100)
+/*  if(std::isnan(*workingweight) || *workingweight > 100)
     {
     *workingweight = 1.0;
     cout << "counter: " << counter << endl;
@@ -10177,7 +10177,7 @@
 
   *workingresponse = *linpred + nu/(*workingweight);
 
-/*  if(isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
+/*  if(std::isnan(*workingresponse) || *workingresponse > 100 || *workingresponse < -100)
     {
     *workingresponse = 0.0;
     cout << "counter: " << counter << endl;
