// // This header includes all C++ headers required for generated Octave wrapper code. // Using a single header file allows pre-compilation of Octave headers, as follows: // * Check out this header file: // swig -octave -co octheaders.hpp // * Pre-compile header file into octheaders.hpp.gch: // g++ -c ... octheaders.hpp // * Use pre-compiled header file: // g++ -c -include octheaders.hpp ... // #if !defined(_SWIG_OCTAVE_OCTHEADERS_HPP) #define _SWIG_OCTAVE_OCTHEADERS_HPP // Required C++ headers #include #include #include #include #include #include #include #include #include // Minimal headers to define Octave version #include #include // Macro for enabling features which require Octave version >= major.minor.patch // - Use (OCTAVE_PATCH_VERSION + 0) to handle both '' (released) and '+' (in development) patch numbers #define SWIG_OCTAVE_PREREQ(major, minor, patch) \ ( (OCTAVE_MAJOR_VERSION<<16) + (OCTAVE_MINOR_VERSION<<8) + (OCTAVE_PATCH_VERSION + 0) >= ((major)<<16) + ((minor)<<8) + (patch) ) // Reconstruct Octave major, minor, and patch versions for releases prior to 3.8.1 #if !defined(OCTAVE_MAJOR_VERSION) # if !defined(OCTAVE_API_VERSION_NUMBER) // Hack to distinguish between Octave 3.8.0, which removed OCTAVE_API_VERSION_NUMBER but did not yet // introduce OCTAVE_MAJOR_VERSION, and Octave <= 3.2, which did not define OCTAVE_API_VERSION_NUMBER # include # if defined(octave_ov_h) # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 8 # define OCTAVE_PATCH_VERSION 0 # else // Hack to distinguish between Octave 3.2 and earlier versions, before OCTAVE_API_VERSION_NUMBER existed # define ComplexLU __ignore # include # undef ComplexLU # if defined(octave_Complex_LU_h) // We know only that this version is prior to Octave 3.2, i.e. OCTAVE_API_VERSION_NUMBER < 37 # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 1 # define OCTAVE_PATCH_VERSION 99 # else // OCTAVE_API_VERSION_NUMBER == 37 # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 2 # define OCTAVE_PATCH_VERSION 0 # endif // defined(octave_Complex_LU_h) # endif // defined(octave_ov_h) // Correlation between Octave API and version numbers extracted from Octave's // ChangeLogs; version is the *earliest* released Octave with that API number # elif OCTAVE_API_VERSION_NUMBER >= 48 # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 6 # define OCTAVE_PATCH_VERSION 0 # elif OCTAVE_API_VERSION_NUMBER >= 45 # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 4 # define OCTAVE_PATCH_VERSION 1 # elif OCTAVE_API_VERSION_NUMBER >= 42 # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 3 # define OCTAVE_PATCH_VERSION 54 # elif OCTAVE_API_VERSION_NUMBER >= 41 # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 3 # define OCTAVE_PATCH_VERSION 53 # elif OCTAVE_API_VERSION_NUMBER >= 40 # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 3 # define OCTAVE_PATCH_VERSION 52 # elif OCTAVE_API_VERSION_NUMBER >= 39 # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 3 # define OCTAVE_PATCH_VERSION 51 # else // OCTAVE_API_VERSION_NUMBER == 38 # define OCTAVE_MAJOR_VERSION 3 # define OCTAVE_MINOR_VERSION 3 # define OCTAVE_PATCH_VERSION 50 # endif // !defined(OCTAVE_API_VERSION_NUMBER) #endif // !defined(OCTAVE_MAJOR_VERSION) // Required Octave headers #include #include #include #include #include #include #include #if SWIG_OCTAVE_PREREQ(4,2,0) #include #else #include #endif #include #if SWIG_OCTAVE_PREREQ(4,2,0) #include #endif #endif // !defined(_SWIG_OCTAVE_OCTHEADERS_HPP)