00001 /* -*- C++ -*- ------------------------------------------------------------ 00002 00003 Copyright (c) 2007 Jesse Anders and Demian Nave http://cmldev.net/ 00004 00005 The Configurable Math Library (CML) is distributed under the terms of the 00006 Boost Software License, v1.0 (see cml/LICENSE for details). 00007 00008 *-----------------------------------------------------------------------*/ 00013 #ifndef core_common_h 00014 #define core_common_h 00015 00016 // XXX This isn't really the right place for this. 00017 #if defined(_MSC_VER) 00018 #include <cstdlib> 00019 #ifndef _SSIZE_T_DEFINED 00020 #ifdef _WIN64 00021 typedef __int64 ssize_t; 00022 #else 00023 typedef _W64 int ssize_t; 00024 #endif 00025 #define _SSIZE_T_DEFINED 00026 #endif 00027 #endif 00028 00029 #include <cstddef> // for size_t 00030 #include <utility> // for std::pair<> 00031 #include <cml/defaults.h> 00032 00033 namespace cml { 00034 00036 struct oned_tag {}; 00037 00039 struct twod_tag {}; 00040 00042 struct fixed_memory_tag {}; 00043 00045 struct dynamic_memory_tag {}; 00046 00048 struct external_memory_tag {}; 00049 00051 struct fixed_size_tag {}; 00052 00054 struct dynamic_size_tag {}; 00055 00057 struct resizable_tag {}; 00058 00060 struct not_resizable_tag {}; 00061 00063 struct unit_size_tag {}; 00064 00066 struct row_major {}; 00067 00069 struct col_major {}; 00070 00072 struct row_basis {}; 00073 00075 struct col_basis {}; 00076 00077 /* This is the pair returned from the matrix size() method, as well as from 00078 * the matrix expression size checking code: 00079 */ 00080 typedef std::pair<size_t,size_t> matrix_size; 00081 00082 } // namespace cml 00083 00084 #endif 00085 00086 // ------------------------------------------------------------------------- 00087 // vim:ft=cpp