예제 #1
0
파일: CInterval.cpp 프로젝트: colinw7/CUtil
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;
}