#ifndef __AMSMATHUTIL25_HPP__
#define __AMSMATHUTIL25_HPP__

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdint.h>

#include <vector>
#include <thread>
#include <functional>
#include <mutex>

namespace ams
{

//return values used for this library
static const int amsmathutil25_success = 1;
static const int amsmathutil25_failure = -1;

//maximum number of threads to use
static const int amsmathutil25_maxthreads = 50;

//problem size at which to begin using multi-threading
static const int amsmathutil25_threadpsz = 5000;


};

//Library subsections
#include <amsmathutil25/math/amsmathutil25_math.hpp>
#include <amsmathutil25/util/amsmathutil25_util.hpp>
#include <amsmathutil25/random/amsmathutil25_random.hpp>


//... 
// Testing
#include <amsmathutil25/testing/amsmathutil25_testing.hpp>


#endif