# MathLog1p Returns the value of the expression MathLog(1+x). ``` double  MathLog1p(    double  value      // value to take the logarithm    ); ``` Parameters value [in]  The value, the logarithm of which is to be calculated. Return Value The natural logarithm of the value (value + 1) if successful. If value is < -1, the function returns NaN (undefined value). If value is equal to -1, the function returns INF (infinity). Note At values of x close to 0, the MathLog1p(x) function generates much more accurate values than the MathLog(1+x) function. Instead of the MathLog1p() function you can use the log1p() function. Example: ``` #define GRAPH_WIDTH  750 #define GRAPH_HEIGHT 350   #include    CGraphic ExtGraph; //+------------------------------------------------------------------+ //| Script program start function                                    | //+------------------------------------------------------------------+ void OnStart()   { //--- get 9 values from 0 to 8 with step 1    vector X(9,VectorArange);    Print("vector X = \n",X); //--- for each vector value, calculate the logarithm for the expression (1 + X vector value)    X=MathLog1p(X);    Print("MathLog1p(X) = \n",X);     //--- transfer the calculated values from the vector to the array    double y_array[];    X.Swap(y_array);   //--- draw a graph of the calculated vector values    CurvePlot(y_array,clrDodgerBlue);   //--- wait for pressing the Escape or PgDn keys to delete the graph (take a screenshot) and exit    while(!IsStopped())      {       if(StopKeyPressed())          break;       Sleep(16);      }   //--- clean up    ExtGraph.Destroy();    /*    result:    vector X =     [0,1,2,3,4,5,6,7,8]    MathLog1p(X) =     [0,0.6931471805599453,1.09861228866811,1.386294361119891,1.6094379124341,1.791759469228055,1.945910149055313,2.079441541679836,2.19722457733622]    */   } //+------------------------------------------------------------------+ //| Fill a vector with 'value' in 'step' increments                  | //+------------------------------------------------------------------+ template  void VectorArange(vector &vec,T value=0.0,T step=1.0)    {     for(ulong i=0; i