double CInterval:: valueStart() const { if (! origin_) return calcStart(); if (! originValid_) { CInterval *th = const_cast<CInterval *>(this); double increment = calcIncrement(); if (increment > 0.0) { double start = origin(); while (start > data_.start) start -= increment; th->originStart_ = start; } else th->originStart_ = calcStart(); th->originValid_ = true; } return originStart_; }
int main(void){ double x = 17; double startValue = calcStart(x); printf ("X: %f \n", x); printf ("Startwert %f: \n", startValue); printf ("Heron: %f: \n", calcHeron(startValue,x)); return 0; }