What does it mean when a C++ program prints the following number out, and what is the meaning of the H in the end?

-6.38442e-86H

The entire system is too large to add here, however here is the code that printed out the particular double.

```
try{
    newLogLikelihoodEM= hmm->learningLogLikelihood(data, Arglist::getDiffLogLikelihood(), fileNumbers, rng);
}
catch (SingularCovarianceMatrixException &scme)
{
    std::cout << scme.what() << ": doing learning, so restarts for this start-point" << std::endl;
    noRestarts++;
    restart = true;
}

```

and the exception class

```
class SingularCovarianceMatrixException: public std::exception
{
    double det;
public:
    SingularCovarianceMatrixException(double det):det(det){};

    virtual const char* what() const throw()
    {

        std::stringstream msg;
        msg<< "Singular covariance matrix: determinant="<<det;

        return msg.str().c_str();
    }
};

```

And the exception is thrown by

```
if(*detCovarianceMatrix<1e-300)
{
    throw SingularCovarianceMatrixException(*detCovarianceMatrix);
}

```