Listing 5: Some unary functions
UDouble<is_correlated> sin(UDouble<is_correlated> arg)
{
if (is_correlated)
arg.uncertainty *= cos(arg.value);
else
arg.uncertainty *= fabs(cos(arg.value));
arg.value = sin(arg.value);
return arg;
}
UDouble<is_correlated> exp(UDouble<is_correlated> arg)
{
arg.value = exp(arg.value);
if (is_correlated)
arg.uncertainty *= arg.value;
else
arg.uncertainty *= fabs(arg.value);
return arg;
}
UDouble<is_correlated> ceil(UDouble<is_correlated> arg)
{
arg.value = ceil(arg.value);
arg.uncertainty = 0.0;
return arg;
}
//End of File