gmath.cpp

Go to the documentation of this file.
00001 // gmath.cpp -- Version 0.0
00002 
00003 #include "gmath.h"
00004 #include <math.h>
00005 #include "gcalendar.h"
00006 ////////////////////////////////////////////////////////////
00007 gIntDegree::gIntDegree (int d)
00008     : gInt( d ),
00009       rValue( 0 )
00010 {
00011 }
00012 
00013 gIntDegree::~gIntDegree ()
00014 {
00015 }
00016 
00017 int gIntDegree::NearestInt (float aValue)
00018 {
00019  float absValue = aValue;
00020  if ( aValue<0 ) absValue = -aValue;
00021  int iVal = (int)absValue, oVal = iVal;
00022  oVal += (absValue - (float)iVal > 0.5);
00023  return aValue>=0 ? oVal : -oVal;
00024 }
00025 
00026 gIntDegree::gIntDegree (gIntDegree& copy)
00027 {
00028  SetInt( copy.GetInt() );
00029 }
00030 
00031 gIntDegree& gIntDegree::operator= (gIntDegree& copy)
00032 {
00033  SetInt( copy.GetInt() );
00034  return *this;
00035 }
00036 ////////////////////////////////////////////////////////////
00037 gDegreeCelsius::gDegreeCelsius (int d)
00038     : gIntDegree( d )
00039 {
00040 }
00041 
00042 gDegreeCelsius::~gDegreeCelsius ()
00043 {
00044 }
00045 
00046 int gDegreeCelsius::ConvertToFahrenheit (int d)
00047 {
00048  // F to Celsius:
00049  //   (5/9)*(DegreeF-32)
00050 
00051  // Celsius to F
00052  //   (1.8*deg C)+32
00053 
00054  rValue = 1.8 * (float)d + 32.0;
00055  return NearestInt( rValue );
00056 }
00057 ////////////////////////////////////////////////////////////
00058 gDegreeFh::gDegreeFh (int d)
00059     : gIntDegree( d )
00060 {
00061 }
00062 
00063 gDegreeFh::~gDegreeFh ()
00064 {
00065 }
00066 
00067 int gDegreeFh::ConvertToCelsius (int d)
00068 {
00069  // F to Celsius:
00070  //   (5/9)*(DegreeF-32)
00071  rValue = (float)(d-32) * 5.0 / 9.0;
00072  return NearestInt( rValue );
00073 }
00074 ////////////////////////////////////////////////////////////
00075 gRandom::gRandom (unsigned uVal)
00076     : gInt( 0 ),
00077       uRange( uVal )
00078 {
00079  SetInt( (int)thisGetRandom( uRange ) );
00080 }
00081 
00082 gRandom::~gRandom ()
00083 {
00084 }
00085 
00086 void gRandom::Reset ()
00087 {
00088  SetInt( (int)thisGetRandom( uRange ) );
00089 }
00090 
00091 void gRandom::SetSeed (unsigned uVal)
00092 {
00093  srand( uVal );
00094 }
00095 
00096 void gRandom::GarbleSeed (unsigned uVal)
00097 {
00098  gDateTime aDtTm( gDateTime::e_Now );
00099  uVal += (unsigned)aDtTm.GetTimeStamp();
00100  SetSeed( uVal );
00101 }
00102 
00103 unsigned gRandom::thisGetRandom (unsigned uVal)
00104 {
00105  unsigned uRand;
00106  if ( uVal==0 ) return 0;
00107  uRand = rand() % uVal;
00108  return uRand;
00109 }
00110 ////////////////////////////////////////////////////////////
00111 

Generated on Sat Aug 18 02:40:57 2007 for xpfweb_v2x lib by  doxygen 1.4.2