docs: public boolean optimize( DenseMatrix64F initParam ,
                               DenseMatrix64F X ,
                               DenseMatrix64F Y )
      {
          if (X.numRows == 0)
          {
              return false;
          }
          configure(initParam,X,Y);
  
          // save the cost of the initial parameters so that it knows if it improves or not
          initialCost = cost(param,X,Y);
  
          // iterate until the difference between the costs is insignificant
          // or it iterates too many times
          if( !adjustParam(X, Y, initialCost) ) {
              finalCost = Double.NaN;
              return false;
          }
  
          return true;
      }