Using Borland Builder 6, I get numerical overflow when running a small

programme without CodeGuard ("exp: OVERFLOW error"). The programme does

not give any error messages when CodeGuard is activated during the run.

The equation that causes overflow uses the exp-function, but given and

resulting values are not very large. So why does it seem as if there

were not enough space in the buffer? And why doesn't the problem occur,

when the same programme is run with an activated CodeGuard?

The equation looks like this (except int delta_t: all variables

double):

new_amount = old_amount * ( 1 - ( A * exp(K1* delta_t) + (1-A) *

exp(K2* delta_t) ) );

The values of the parameters are:

A: between 0 and 0.6

K1: between -10^(-1) and -10^(-4)

K2: between -3 and -10(-5)

delta_t: 1 to possibly several hundred, but the programme never reaches

the point where large values of delta_t would occur.

The problem is not caused by data types: it also comes when all

variables and the constant 1 are double. Overflow occurs over the whole

range of parameter values. The error message can be clicked away, the

programme will then continue. But since the equation is written within

a loop, the error will come back repeatedly, finally causing the

programme to crash.