extern long yylineno = 1;

#include <math.h>

#include <exec/types.h>
#include <libraries/dos.h>
#include <libraries/dosextens.h>

#ifdef LATTICE_50
#include <proto/dos.h>
#endif

typedef double Float;

#ifdef LATTICE_50
#ifdef MFPU
double __builtin_fpc(int, double);
#define sqrt(d)     __builtin_fpc(0x0004,d)
#endif
#ifdef MFFP
#include <mffp.h>
#endif
#endif

double hypot(double a, double b)
{
  return ( sqrt(a*a + b*b));
}

static struct DateStamp dsOffset;

void InitRSGCTime(void)
{
  DateStamp(&dsOffset);
}

void RSGetCpuTime(usertime, systime)
Float *usertime, *systime;
{
  ULONG Minutes;
  struct DateStamp DS;

  DateStamp(&DS);
  Minutes = (DS.ds_Days - dsOffset.ds_Days)*24*60 + (DS.ds_Minute-dsOffset.ds_Minute);

  *usertime = (Float)(Minutes*60L) + (Float)(DS.ds_Tick-dsOffset.ds_Tick)/(Float)TICKS_PER_SECOND;
  *systime = 0.0;
}
