X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fctsupport.h;h=cea4f14dc7e86e6211326f400aed3dc22be65030;hp=ce05b3bb59e9cc3b737f0f07eb9ec61984653305;hb=fd1d136a94a6d20013f38d6a997bdfefad0f5e98;hpb=0aa7e912bb58a67d9952c83767ce244b974763ab diff --git a/include/ctsupport.h b/include/ctsupport.h index ce05b3b..cea4f14 100644 --- a/include/ctsupport.h +++ b/include/ctsupport.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsupport.h,v 1.10 2000/12/06 16:41:17 kevin Exp $ +** $Id: ctsupport.h,v 1.15 2000/12/20 20:08:48 kevin Exp $ ** ** ** This program is free software; you can redistribute it and/or modify @@ -34,7 +34,7 @@ #endif #ifdef MSVC -#define snprintf _snprintf +#include "msvc_compat.h" #endif #define STR_MAX_LEN 255 @@ -44,13 +44,12 @@ #include #include #include +#include +#include #define TRUE 1 #define FALSE 0 #define OK TRUE -#define ERROR FALSE -#define YES TRUE -#define NO FALSE /*----------------------------------------------------------------------*/ @@ -65,25 +64,6 @@ /*----------------------------------------------------------------------*/ -struct time_st { - int hour, minute, second, ms; -}; - -struct date_st { - int year, month, date, dow; -}; - -struct timedate_st { - struct time_st t; - struct date_st d; -}; - -typedef struct time_st TIME; -typedef struct date_st DATE; -typedef struct timedate_st TIMEDATE; - -/*----------------------------------------------------------------------*/ - #define ERR_WARNING 0 #define ERR_SEVERE 1 #define ERR_FATAL 2 @@ -104,7 +84,7 @@ typedef struct timedate_st TIMEDATE; /*----------------------------------------------------------------------*/ -#ifndef O_BINARY +#if !defined(O_BINARY) && !defined(MSVC) #define O_BINARY (0) #endif @@ -170,25 +150,6 @@ void sys_error(int severity, const char *msg, ...); void sys_verror(int severity, const char *msg, va_list arg); void sys_error_level(int severity); -/* timedate.cpp */ -DATE *td_get_date(DATE *d); -TIME *td_get_time(TIME *t); -double td_current_sec(void); -double td_time_to_sec(TIME *t); -TIME *td_time_sub(const TIME *t1, const TIME *t2, TIME *tdiff); -TIME *td_time_add(const TIME *t1, const TIME *t2, TIME *tsum); -TIME *td_time_copy(TIME *to, const TIME *from); -TIME *td_time_norm(TIME *t); -void td_get_tmdt(TIMEDATE *td); -const char *td_str_tmdt(const TIMEDATE *td); -const char *td_str_time(const TIME *t); -const char *td_str_stime(const TIME *t); -const char *td_str_date(const DATE *d); -char *td_str_cdate(DATE *d); -char *td_month_name(int n); -char *td_day_name(int n); - - // Math Section #include @@ -225,6 +186,9 @@ inline T nearest (double x) inline int imax (int a, int b) { return (a >= b ? a : b); } +inline double dmax (double a, double b) +{ return (a >= b ? a : b); } + template inline T clamp (T value, T lowerBounds, T upperBounds) { return (value >= upperBounds ? upperBounds : (value <= lowerBounds ? lowerBounds : value )); } @@ -272,6 +236,7 @@ void scale2d (double x[], double y[], int pts, double xfact, double yfact); // mathfuncs.cpp double normalizeAngle (double theta); double integrateSimpson (const double xmin, const double xmax, const double *y, const int np); +void vectorNumericStatistics (std::vector vec, double& min, double& max, double& mean, double& mode, double& median, double& stddev); /*----------------------------------------------------------------------*/