//#######################################################################
// File: HareLynxData.cpp
// The arctic hare and lynx population data set
//
// Author: Sherry Towers
//         smtowers@asu.edu
// Created: Feb 21st, 2013
//
// Copyright Sherry Towers, 2013
//
// This program is not guaranteed to be free of bugs and/or errors.
//
// This program can be freely used and shared, as long as the author information
// and copyright in the header remains intact.
//########################################################################
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <vector>
#include <numeric>
#include <cmath>
#include "HareLynxData.h"    

using namespace std;

//########################################################################
//########################################################################
//########################################################################
// constructor
//########################################################################
   HareLynxData::HareLynxData(){
      _vtime.clear(); 
      _vhare.clear(); 
      _vlynx.clear(); 
    
      _vtime.push_back(1845.0); 
      _vtime.push_back(1847.0); 
      _vtime.push_back(1849.0); 
      _vtime.push_back(1851.0); 
      _vtime.push_back(1853.0); 
      _vtime.push_back(1855.0); 
      _vtime.push_back(1857.0); 
      _vtime.push_back(1859.0); 
      _vtime.push_back(1861.0); 
      _vtime.push_back(1863.0); 
      _vtime.push_back(1865.0); 
      _vtime.push_back(1867.0); 
      _vtime.push_back(1869.0); 
      _vtime.push_back(1871.0); 
      _vtime.push_back(1873.0); 
      _vtime.push_back(1875.0); 
      _vtime.push_back(1877.0); 
      _vtime.push_back(1879.0); 
      _vtime.push_back(1881.0); 
      _vtime.push_back(1883.0); 
      _vtime.push_back(1885.0); 
      _vtime.push_back(1887.0); 
      _vtime.push_back(1889.0); 
      _vtime.push_back(1891.0); 
      _vtime.push_back(1893.0); 
      _vtime.push_back(1895.0); 
      _vtime.push_back(1897.0); 
      _vtime.push_back(1899.0); 
      _vtime.push_back(1901.0); 
      _vtime.push_back(1903.0); 
      _vtime.push_back(1905.0); 
      _vtime.push_back(1907.0); 
      _vtime.push_back(1909.0); 
      _vtime.push_back(1911.0); 
      _vtime.push_back(1913.0); 
      _vtime.push_back(1915.0); 
      _vtime.push_back(1917.0); 
      _vtime.push_back(1919.0); 
      _vtime.push_back(1921.0); 
      _vtime.push_back(1923.0); 
      _vtime.push_back(1925.0); 
      _vtime.push_back(1927.0); 
      _vtime.push_back(1929.0); 
      _vtime.push_back(1931.0); 
      _vtime.push_back(1933.0); 
      _vtime.push_back(1935.0); 
      _vtime.push_back(1937.0); 

      _vhare.push_back(20000.0); 
      _vhare.push_back(20000.0); 
      _vhare.push_back(52000.0); 
      _vhare.push_back(83000.0); 
      _vhare.push_back(64000.0); 
      _vhare.push_back(68000.0); 
      _vhare.push_back(83000.0); 
      _vhare.push_back(12000.0); 
      _vhare.push_back(36000.0); 
      _vhare.push_back(150000.0); 
      _vhare.push_back(110000.0); 
      _vhare.push_back(60000.0); 
      _vhare.push_back(7000.0); 
      _vhare.push_back(10000.0); 
      _vhare.push_back(70000.0); 
      _vhare.push_back(100000.0); 
      _vhare.push_back(92000.0); 
      _vhare.push_back(70000.0); 
      _vhare.push_back(10000.0); 
      _vhare.push_back(11000.0); 
      _vhare.push_back(137000.0); 
      _vhare.push_back(137000.0); 
      _vhare.push_back(18000.0); 
      _vhare.push_back(22000.0); 
      _vhare.push_back(52000.0); 
      _vhare.push_back(83000.0); 
      _vhare.push_back(18000.0); 
      _vhare.push_back(10000.0); 
      _vhare.push_back(9000.0); 
      _vhare.push_back(65000.0); 
      _vhare.push_back(45000.0); 
      _vhare.push_back(30000.0); 
      _vhare.push_back(25000.0); 
      _vhare.push_back(27000.0); 
      _vhare.push_back(77000.0); 
      _vhare.push_back(25000.0); 
      _vhare.push_back(10000.0); 
      _vhare.push_back(10000.0); 
      _vhare.push_back(46000.0); 
      _vhare.push_back(80000.0); 
      _vhare.push_back(20000.0); 
      _vhare.push_back(8000.0); 
      _vhare.push_back(6000.0); 
      _vhare.push_back(6000.0); 
      _vhare.push_back(20000.0); 
      _vhare.push_back(83000.0); 
      _vhare.push_back(12000.0); 

      _vlynx.push_back(32000.0); 
      _vlynx.push_back(50000.0); 
      _vlynx.push_back(12000.0); 
      _vlynx.push_back(10000.0); 
      _vlynx.push_back(13000.0); 
      _vlynx.push_back(36000.0); 
      _vlynx.push_back(15000.0); 
      _vlynx.push_back(12000.0); 
      _vlynx.push_back(6000.0); 
      _vlynx.push_back(6000.0); 
      _vlynx.push_back(65000.0); 
      _vlynx.push_back(70000.0); 
      _vlynx.push_back(40000.0); 
      _vlynx.push_back(9000.0); 
      _vlynx.push_back(20000.0); 
      _vlynx.push_back(34000.0); 
      _vlynx.push_back(45000.0); 
      _vlynx.push_back(40000.0); 
      _vlynx.push_back(15000.0); 
      _vlynx.push_back(15000.0); 
      _vlynx.push_back(60000.0); 
      _vlynx.push_back(80000.0); 
      _vlynx.push_back(26000.0); 
      _vlynx.push_back(18000.0); 
      _vlynx.push_back(37000.0); 
      _vlynx.push_back(50000.0); 
      _vlynx.push_back(35000.0); 
      _vlynx.push_back(12000.0); 
      _vlynx.push_back(12000.0); 
      _vlynx.push_back(25000.0); 
      _vlynx.push_back(62000.0); 
      _vlynx.push_back(49000.0); 
      _vlynx.push_back(7000.0); 
      _vlynx.push_back(7000.0); 
      _vlynx.push_back(20000.0); 
      _vlynx.push_back(43000.0); 
      _vlynx.push_back(11000.0); 
      _vlynx.push_back(6000.0); 
      _vlynx.push_back(20000.0); 
      _vlynx.push_back(37000.0); 
      _vlynx.push_back(43000.0); 
      _vlynx.push_back(50000.0); 
      _vlynx.push_back(30000.0); 
      _vlynx.push_back(15000.0); 
      _vlynx.push_back(18000.0); 
      _vlynx.push_back(40000.0); 
      _vlynx.push_back(48000.0); 


 
   }

//########################################################################
//########################################################################
//########################################################################
// destructor
//########################################################################
   HareLynxData::~HareLynxData(){
      _vtime.clear();
      _vhare.clear();
      _vlynx.clear();
   }

//########################################################################
//########################################################################
//########################################################################
// method to fill 
//########################################################################
   void HareLynxData::GetData(vector<double>& vtime
                             ,vector<double>& vhare  
                             ,vector<double>& vlynx){
       vtime.clear(); 
       vhare.clear(); 
       vlynx.clear(); 
       vtime = _vtime;
       vhare = _vhare;
       vlynx = _vlynx;
       return;
   }






