[mathicgb] 391/393: The Visual Studio project files should now work on any computer, including with Visual Studio Express. Added MonoArena and fixed a bug in flatten.
Doug Torrance
dtorrance-guest at moszumanska.debian.org
Fri Apr 3 15:59:38 UTC 2015
This is an automated email from the git hooks/post-receive script.
dtorrance-guest pushed a commit to branch upstream
in repository mathicgb.
commit af5a33766d05fa2a234dacfc26a7a3681a39a7c4
Author: Bjarke Hammersholt Roune <www.broune.com>
Date: Thu Oct 3 18:03:56 2013 -0700
The Visual Studio project files should now work on any computer, including with Visual Studio Express. Added MonoArena and fixed a bug in flatten.
---
Makefile.am | 51 ++---
build/vs12/mathicgb-exe/mathicgb-exe.vcxproj | 50 +++--
build/vs12/mathicgb-lib/mathicgb-lib.vcxproj | 70 ++++---
build/vs12/mathicgb-test/mathicgb-test.vcxproj | 50 +++--
doc/description.txt | 157 +++++++++++++--
src/mathicgb/F4MatrixBuilder.cpp | 2 +-
src/mathicgb/MonoArena.hpp | 253 +++++++++++++++++++++++++
src/mathicgb/MonoMonoid.hpp | 17 +-
src/mathicgb/Range.hpp | 30 ++-
src/mathicgb/ReducerDedup.cpp | 3 +
src/mathicgb/Scanner.cpp | 6 +-
src/mathicgb/SparseMatrix.cpp | 5 +-
src/mathicgb/stdinc.h | 2 +-
src/test/MonoMonoid.cpp | 27 ++-
src/test/Range.cpp | 4 +-
src/test/mathicgb.cpp | 2 +-
16 files changed, 591 insertions(+), 138 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index f19ccc5..4102169 100755
--- a/Makefile.am
+++ b/Makefile.am
@@ -13,31 +13,32 @@ libmathicgb_la_LIBADD= $(DEPS_LIBS)
# the sources that are built to make libmathicgb. Listing the headers in
# sources ensure that those files are included in distributions.
-libmathicgb_la_SOURCES = src/mathicgb/Range.hpp \
- src/mathicgb/ReducerPack.hpp src/mathicgb/ReducerPack.cpp \
- src/mathicgb/ClassicGBAlg.cpp src/mathicgb/ClassicGBAlg.hpp \
- src/mathicgb/MonoLookup.hpp src/mathicgb/MonoLookup.cpp \
- src/mathicgb/StaticMonoMap.hpp src/mathicgb/SigPolyBasis.cpp \
- src/mathicgb/SigPolyBasis.hpp src/mathicgb/Basis.cpp \
- src/mathicgb/Basis.hpp src/mathicgb/io-util.cpp \
- src/mathicgb/io-util.hpp src/mathicgb/KoszulQueue.hpp \
- src/mathicgb/ModuleMonoSet.cpp src/mathicgb/ModuleMonoSet.hpp \
- src/mathicgb/Poly.hpp src/mathicgb/PolyBasis.cpp \
- src/mathicgb/PolyBasis.hpp src/mathicgb/PolyHashTable.cpp \
- src/mathicgb/PolyHashTable.hpp src/mathicgb/PolyRing.cpp \
- src/mathicgb/PolyRing.hpp src/mathicgb/Reducer.cpp \
- src/mathicgb/Reducer.hpp src/mathicgb/ReducerDedup.hpp \
- src/mathicgb/ReducerDedup.cpp src/mathicgb/ReducerHash.hpp \
- src/mathicgb/ReducerHash.cpp src/mathicgb/ReducerHashPack.hpp \
- src/mathicgb/ReducerHashPack.cpp src/mathicgb/ReducerHelper.hpp \
- src/mathicgb/ReducerNoDedup.hpp src/mathicgb/ReducerNoDedup.cpp \
- src/mathicgb/ReducerPackDedup.hpp src/mathicgb/ReducerPackDedup.cpp \
- src/mathicgb/SignatureGB.cpp src/mathicgb/SignatureGB.hpp \
- src/mathicgb/SigSPairs.cpp src/mathicgb/SigSPairs.hpp \
- src/mathicgb/SPairs.cpp src/mathicgb/SPairs.hpp \
- src/mathicgb/stdinc.h src/mathicgb/SigSPairQueue.hpp \
- src/mathicgb/SigSPairQueue.cpp src/mathicgb/SparseMatrix.hpp \
- src/mathicgb/SparseMatrix.cpp src/mathicgb/QuadMatrixBuilder.hpp \
+libmathicgb_la_SOURCES = src/mathicgb/MonoArena.hpp \
+ src/mathicgb/Range.hpp src/mathicgb/ReducerPack.hpp \
+ src/mathicgb/ReducerPack.cpp src/mathicgb/ClassicGBAlg.cpp \
+ src/mathicgb/ClassicGBAlg.hpp src/mathicgb/MonoLookup.hpp \
+ src/mathicgb/MonoLookup.cpp src/mathicgb/StaticMonoMap.hpp \
+ src/mathicgb/SigPolyBasis.cpp src/mathicgb/SigPolyBasis.hpp \
+ src/mathicgb/Basis.cpp src/mathicgb/Basis.hpp \
+ src/mathicgb/io-util.cpp src/mathicgb/io-util.hpp \
+ src/mathicgb/KoszulQueue.hpp src/mathicgb/ModuleMonoSet.cpp \
+ src/mathicgb/ModuleMonoSet.hpp src/mathicgb/Poly.hpp \
+ src/mathicgb/PolyBasis.cpp src/mathicgb/PolyBasis.hpp \
+ src/mathicgb/PolyHashTable.cpp src/mathicgb/PolyHashTable.hpp \
+ src/mathicgb/PolyRing.cpp src/mathicgb/PolyRing.hpp \
+ src/mathicgb/Reducer.cpp src/mathicgb/Reducer.hpp \
+ src/mathicgb/ReducerDedup.hpp src/mathicgb/ReducerDedup.cpp \
+ src/mathicgb/ReducerHash.hpp src/mathicgb/ReducerHash.cpp \
+ src/mathicgb/ReducerHashPack.hpp src/mathicgb/ReducerHashPack.cpp \
+ src/mathicgb/ReducerHelper.hpp src/mathicgb/ReducerNoDedup.hpp \
+ src/mathicgb/ReducerNoDedup.cpp src/mathicgb/ReducerPackDedup.hpp \
+ src/mathicgb/ReducerPackDedup.cpp src/mathicgb/SignatureGB.cpp \
+ src/mathicgb/SignatureGB.hpp src/mathicgb/SigSPairs.cpp \
+ src/mathicgb/SigSPairs.hpp src/mathicgb/SPairs.cpp \
+ src/mathicgb/SPairs.hpp src/mathicgb/stdinc.h \
+ src/mathicgb/SigSPairQueue.hpp src/mathicgb/SigSPairQueue.cpp \
+ src/mathicgb/SparseMatrix.hpp src/mathicgb/SparseMatrix.cpp \
+ src/mathicgb/QuadMatrixBuilder.hpp \
src/mathicgb/QuadMatrixBuilder.cpp src/mathicgb/TypicalReducer.cpp \
src/mathicgb/TypicalReducer.hpp src/mathicgb/F4Reducer.hpp \
src/mathicgb/F4Reducer.cpp src/mathicgb/F4MatrixBuilder.hpp \
diff --git a/build/vs12/mathicgb-exe/mathicgb-exe.vcxproj b/build/vs12/mathicgb-exe/mathicgb-exe.vcxproj
index 0334965..5b6d2c9 100755
--- a/build/vs12/mathicgb-exe/mathicgb-exe.vcxproj
+++ b/build/vs12/mathicgb-exe/mathicgb-exe.vcxproj
@@ -240,15 +240,16 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -258,15 +259,16 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN64;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -276,16 +278,17 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
<TreatWarningAsError>true</TreatWarningAsError>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -295,16 +298,17 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN64;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
<TreatWarningAsError>true</TreatWarningAsError>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -314,15 +318,16 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -332,15 +337,16 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -352,17 +358,18 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -374,17 +381,18 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN64;NDEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<ProjectReference>
@@ -399,17 +407,18 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -421,17 +430,18 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN64;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
diff --git a/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj b/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj
index 9dfdbb1..5be0b49 100755
--- a/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj
+++ b/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj
@@ -222,18 +222,19 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN32;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN32;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb_debug.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
@@ -242,18 +243,19 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN64;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN64;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb_debug.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
@@ -263,19 +265,20 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN32;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN32;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatWarningAsError>true</TreatWarningAsError>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb_debug.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
@@ -284,19 +287,20 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN64;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN64;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatWarningAsError>true</TreatWarningAsError>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb_debug.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
@@ -306,18 +310,19 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN32;NDEBUG;_CONSOLE;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb_debug.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
@@ -326,18 +331,19 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN64;NDEBUG;_CONSOLE;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb_debug.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
@@ -348,11 +354,12 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -361,7 +368,7 @@
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
@@ -372,11 +379,12 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN64;NDEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN64;NDEBUG;_WINDOWS;_USRDLL;MATHICGBLIB_EXPORTS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -385,7 +393,7 @@
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
@@ -396,11 +404,12 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN32;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN32;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;_SCL_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -409,7 +418,7 @@
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb_debug.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
@@ -420,12 +429,13 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN64;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>TBB_USE_DEBUG=1;WIN64;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeaderFile>stdinc.h</PrecompiledHeaderFile>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -434,7 +444,7 @@
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>tbb_debug.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
diff --git a/build/vs12/mathicgb-test/mathicgb-test.vcxproj b/build/vs12/mathicgb-test/mathicgb-test.vcxproj
index d5fbfb6..efc8661 100755
--- a/build/vs12/mathicgb-test/mathicgb-test.vcxproj
+++ b/build/vs12/mathicgb-test/mathicgb-test.vcxproj
@@ -203,15 +203,16 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_VARIADIC_MAX=10;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -221,15 +222,16 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN64;_VARIADIC_MAX=10;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -239,16 +241,17 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_VARIADIC_MAX=10;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
<TreatWarningAsError>true</TreatWarningAsError>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -258,16 +261,17 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN64;_VARIADIC_MAX=10;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
<TreatWarningAsError>true</TreatWarningAsError>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -277,15 +281,16 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_VARIADIC_MAX=10;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -295,15 +300,16 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN64;_VARIADIC_MAX=10;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OpenMPSupport>false</OpenMPSupport>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -315,17 +321,18 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_VARIADIC_MAX=10;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -337,17 +344,18 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN64;_VARIADIC_MAX=10;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -359,17 +367,18 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_VARIADIC_MAX=10;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@@ -381,17 +390,18 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN64;_VARIADIC_MAX=10;MATHICGB_DEBUG;MATHIC_DEBUG;MEMTAILOR_DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\projs\mathic\tbb\include;C:\projs\mathic\gtest\include;C:\projs\mathic\gtest;C:\projs\mathic\mathicgb\src;C:\projs\mathic\mathic\src;C:\projs\mathic\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(ProjectDir)\..\..\..\..\tbb\include;$(ProjectDir)\..\..\..\..\gtest\include;$(ProjectDir)\..\..\..\..\gtest;$(ProjectDir)\..\..\..\..\mathicgb\src;$(ProjectDir)\..\..\..\..\mathic\src;$(ProjectDir)\..\..\..\..\memtailor\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OpenMPSupport>false</OpenMPSupport>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>C:\projs\mathic\tbb\lib\intel64\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(ProjectDir)\..\..\..\..\tbb\lib\ia32\vc11;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
diff --git a/doc/description.txt b/doc/description.txt
index 7b4ee01..1fe2f4d 100755
--- a/doc/description.txt
+++ b/doc/description.txt
@@ -25,18 +25,101 @@ may be way off. This is all current as of September 24, 2013.
***** High-level view of MathicGB
The core engine of MathicGB is ClassicGBAlg, which implements the
-classic Buchberger algorithm with some improvements, and SignatureGB
+classic Buchberger algorithm with some improvements, and SignatureGB,
which implements the Signature Basis Algorithm. These classes do not
contain that much code, instead they use a lot of other classes to do
their bidding. They have classes for keeping track of the basis, for
-keeping track of the S-pairs, for doing the reductions and for
-representing the coefficients, monomials and polynomials. Some of
-these are encapsulated behind virtual interfaces, so that different
+keeping track of the S-pairs, for reducing polynomials and for
+representing the coefficients, monomials and polynomials.
+
+Some of the components used by the top-level algorithms are
+encapsulated behind virtual interfaces, so that different
implementations can be chosen at run-time. This is notably the case
-for the reducers.
+for the reducers. For example, ClassicGBAlg implements F4, which is
+achived by having a reducer that does matrix-based reduction. Since
+the reducer is encapsulated behind a virtual interface, the top-level
+algorithm is unaware of whether it is currently doing F4 or the
+classic Buchberger algorithm.
+
+The low level components that take care of coefficients, exponents,
+monomials and terms are not encapsulated behind a virtual
+interface. Most of the inner loops in MathicGB contain an operation on
+one of these structures, so there would be too much overhead if each
+operation required a virtual function call. That is why MathicGB only
+supports a single kind of coefficient, exponent, monomial and
+term. Just like virtual functions, templates allow programming to an
+interchangeable interface, but the overhead of templates is in the
+time it takes to compile the program and in the size of the final
+executable. Templates do not impact the speed of the program, except
+through increasing the size of the final executable, which can lead to
+worse performance from the instruction cache on the CPU.
+
+My plan was for MathicGB to support many different kinds of
+coefficients, exponents, monomials and terms. I wanted to achieve this
+using templates to decouple these structures from the higher-level
+components that use them. I did not have time to complete this plan,
+yet my incomplete efforts in this direction has had a significant
+effect on all of the code and those changes might seem strange without
+knowledge of the end goal - that is why I mention this as part of the
+high-level overview. To complete the plan, all high-level components
+will need to be templates on the low-level structures that they
+use. For example, a structure to represent a polynomial will need to
+be a template on a polynomial ring and a structure for handling
+S-pairs will need to be a template on a monoid (the monoid is the part
+of a polynomial ring that has to do with monomials). None of these are
+currently templates in MathicGB, but they are written in a way that is
+intended to make it easy to turn them into templates. That way I could
+make many of the necessary changes one file at a time and thus test
+each little change one at a time. The more direct alternative would
+have been to do all the changes at the same time, which would have
+taken a month or two and MathicGB would not have been compilable
+during that time. The likely multi-week bug hunting party at the end
+of that would have been a wonderful time.
+
+Many classes in MathicGB have a typedef called Monoid and all
+monomial-related types are then referenced as sub-types of the
+Monoid. That could seem strange since there is only a single monoid
+that MathicGB can currently use, but the idea is that the Monoid type
+would turn into a template parameter and at that point the change for
+becoming a template should be much easier since the code is already
+written in terms of that template parameter/typedef. That is why the
+code is written like that.
+
+Note that there is no problem with using both virtual interfaces and
+templates. The virtual interfaces allows selection of a type at
+runtime, so the user does not have to recompile MathicGB just to
+choose a different reducer implementation. The templates allow a
+choice of types at compile time. These features combine
+beautifully. For example, the virtual Reducer interface could be a
+template on a polynomial ring. By putting the code that instantiates
+that interface into .cpp files, this allows the templated higher-level
+algorithms to use the Reducer interface without ever directly
+observing the code that implements the reducers, even though all the
+code consists of templates - including the high-level algorithm, the
+reducer interface and the reducer implementation. This way a change to
+the reducer implementation does not require recompilation of the
+high-level algorithm.
+
+There is an unfortunate pattern with highly templated programs where
+there ends up being a single file that instantiates most of the entire
+program. This single file can then take a long time to compile and it
+is not possible to compile in parallel since there is only a single
+translation unit that takes most of the time. Even if this pattern is
+avoided, it is often the case that all of the .cpp files include and
+instantiate the same temlates over and over again, leading to slow
+compilation. Hiding the templates behind templated virtual interfaces
+reduces this problem. For example, if the implementations of the
+templated virtual Reducer interface are hidden from the code that uses
+Reducers (that is, they only see the template Reducer interface), then
+that code never sees the Reducer implementations and therefore does
+not need to create its own instantiation of the Reducer
+implementations.
+
+So templates can step in when virtual interfaces are too expensive and
+then virtual interfaces at a higher level of the program can reduce
+the costs of using templates. That's the end goal I had for many of
+the changes in MathicGB.
-ClassicGBAlg also implements F4, which is achived by having a reducer
-that does matrix-based reduction.
***** Installation for unix systems and Cygwin
@@ -80,17 +163,59 @@ mathic.
Project (medium-effort, low-difficulty): Set up a trac for MathicGB.
-***** Installation for Visual Studio
-There are Visual Studio 2013 project files for each project in
-mathicgb/build/vs12. I have only tested these on the machine in my
-office. tbb must already be installed in some place where Mathic can
-find them.
+***** Installation for Visual Studio
-Project (medium-to-high-effort, medium-difficulty): Get the Visual
-Studio project files in git to work in Visual Studio Express and
-document for other people how to do that. Improve the project files so
-that they are as easy as possible to get running.
+There are Visual Studio 2012 project files for each project in
+mathicgb/build/vs12. I have gotten these to work on both Visual Studio
+Pro 2012 Pro and Visual Studio Express 2012. Getting these files to
+work is more involved than just typing "make", though I found it to be
+worth it because Visual Studio is a first-rate development environment.
+
+You must download gtest (source release), tbb (binary release),
+memtailor (source), mathic (source) and mathicgb (source) and put them
+all in the same directory so that it has directories named:
+
+ gtest\
+ tbb\
+ memtailor\
+ mathic\
+ mathicgb\
+
+Now open mathicgb\build\vs12\mathicgb.sln. Select the configuration
+and platform that you want from the drop-down menues at the middle-top
+of the screen. You probably want the Release configuration and the x64
+platform. Now compile everything by pressing F7. As of the time of
+this writing (October 3, 2013) the code compiles in MSVC and you
+should get an error and warning-free build. If other developers have
+picked up the project since then and they are not using MSVC, then
+likely you will need to make changes to the code to get it to compile
+on MSVC.
+
+Right click the mathicgb-test project in the Solution Explorer and
+left click "Set as StartUp Project". Now press F5 to run the unit
+tests. If you have installed tbb globally this might work (is that
+possible?), but otherwise you're going to get an error that the tbb
+dll could not be found. There should be a better solution to this, but
+what I found the easiest to do is to go into tbb\bin\intel64\cv11\ and
+copy all the files there into
+mathicgb\build\vs12\output\x64\Release\. That's for an x64 Release
+build. For a Win32 build, take the files from tbb\bin\ia32\cv11\ and
+copy them into mathicgb\build\vs12\output\Win32\Release\. For a
+different configuration than Release, replace Release with the name of
+the configuration. All these directories will already exist if you try
+building a file with that configuration and platform, which is what
+I'd recommend. After doing this, you should be able to press F5 in
+Visual Studio and get all the tests to run and pass.
+
+Project (Medium-effort, medium-difficulty): Find a better way of
+linking up with tbb that is easy to do and does not involve copying
+files around manually. Also make a .bat file that downloads all the
+necessary source and binary releases and links everything up - serving
+the same purpose as the Makefile written out by make-Makefile.sh. It
+is important that MathicGB isn't too hard to set up on MSVC because
+otherwise developers won't use it and then the code will stop working
+on MSVC.
***** C++ concepts and miscellaneous MathicGB C++ stuff
diff --git a/src/mathicgb/F4MatrixBuilder.cpp b/src/mathicgb/F4MatrixBuilder.cpp
index b970be8..5763dcb 100755
--- a/src/mathicgb/F4MatrixBuilder.cpp
+++ b/src/mathicgb/F4MatrixBuilder.cpp
@@ -321,7 +321,7 @@ void F4MatrixBuilder::appendRowTop(
const auto col = findOrCreateColumn
(it.mono(), multiple, reader, feeder);
MATHICGB_ASSERT(it.coef() < std::numeric_limits<Scalar>::max());
- MATHICGB_ASSERT(it.coef());
+ MATHICGB_ASSERT(!field().isZero(it.coef()));
builder.appendEntryTop
(col.first, static_cast<Scalar>(it.coef()));
++it;
diff --git a/src/mathicgb/MonoArena.hpp b/src/mathicgb/MonoArena.hpp
new file mode 100755
index 0000000..d860d64
--- /dev/null
+++ b/src/mathicgb/MonoArena.hpp
@@ -0,0 +1,253 @@
+// MathicGB copyright 2012 all rights reserved. MathicGB comes with ABSOLUTELY
+// NO WARRANTY and is licensed as GPL v2.0 or later - see LICENSE.txt.
+#ifndef MATHICGB_MONO_ARENA_GUARD
+#define MATHICGB_MONO_ARENA_GUARD
+
+#include "Range.hpp"
+#include <algorithm>
+#include <vector>
+
+MATHICGB_NAMESPACE_BEGIN
+
+/// Like a Monoid::MonoVector, except that references are not
+/// invalidated when additional memory must be allocated.
+///
+/// Todo: Think of a better name. We can't deallocate at the end, so
+/// MonoArena is not really an Arena.
+template<class Monoid>
+class MonoArena;
+
+template<class M>
+class MonoArena {
+public:
+ typedef M Monoid;
+ typedef typename Monoid::Mono Mono;
+ typedef typename Monoid::MonoRef MonoRef;
+ typedef typename Monoid::ConstMonoRef ConstMonoRef;
+ typedef typename Monoid::MonoPtr MonoPtr;
+ typedef typename Monoid::ConstMonoPtr ConstMonoPtr;
+ typedef typename Monoid::MonoVector MonoVector;
+
+ typedef Flatten<typename std::vector<MonoVector>::const_iterator> const_iterator;
+
+ // *** Constructors and assignment
+
+ MonoArena(const Monoid& monoid) {
+ mVectors.emplace_back(monoid);
+ }
+
+ MonoArena(const MonoArena& a): mVectors(a.mVectors) {}
+ MonoArena(MonoArena&& a): mVectors(std::move(a.mVectors)) {}
+
+ MonoArena& operator=(const MonoArena& a) {
+ MATHICGB_ASSERT(monoid() == a.monoid());
+ mVectors = a.mVectors;
+ return *this;
+ }
+
+ MonoArena& operator=(MonoArena&& a) {
+ MATHICGB_ASSERT(monoid() == a.monoid());
+ mVectors = std::move(a.mVectors);
+ return *this;
+ }
+
+
+ // *** Iterators
+
+ const_iterator begin() const {
+ return makeFlatten(std::begin(mVectors), std::end(mVectors));
+ }
+
+ const_iterator end() const {
+ return makeFlatten(std::end(mVectors), std::end(mVectors));
+ }
+
+ const_iterator cbegin() const {return begin();}
+ const_iterator cend() const {return end();}
+
+
+ // *** Size and capacity
+
+ size_t size() const {
+ auto count = size_t(0);
+ for (const auto& v : mVectors)
+ count += v.size();
+ return count;
+ }
+
+ bool empty() const {
+ MATHICGB_ASSERT(!mVectors.empty());
+ return mVectors.front().empty();
+ }
+
+
+ // *** Element access
+
+ ConstMonoRef front() const {
+ MATHICGB_ASSERT(!empty());
+ MATHICGB_ASSERT(!mVectors.front().empty());
+ return mVectors.front().front();
+ }
+
+ MonoRef back() {
+ MATHICGB_ASSERT(!empty());
+ MATHICGB_ASSERT(!backVector().empty());
+ return backVector().back();
+ }
+
+ ConstMonoRef back() const {
+ MATHICGB_ASSERT(!empty());
+ MATHICGB_ASSERT(!backVector().empty());
+ return backVector().back();
+ }
+
+
+ // *** Modifiers
+
+ /// Appends the identity.
+ void push_back() {
+ MATHICGB_ASSERT(debugAssertValid());
+
+ ensureSpace();
+ return;
+ backVector().push_back();
+
+ MATHICGB_ASSERT(debugAssertValid());
+ MATHICGB_ASSERT(monoid().isIdentity(back()));
+ }
+
+ void push_back(ConstMonoRef mono) {
+ MATHICGB_ASSERT(debugAssertValid());
+ MATHICGB_ASSERT(monoid().debugValid(mono));
+
+ ensureSpace();
+ backVector().push_back(mono);
+
+ MATHICGB_ASSERT(debugAssertValid());
+ MATHICGB_ASSERT(monoid().equal(back(), mono));
+ }
+
+ template<class Monoid>
+ void push_back(
+ const Monoid& monoidMono,
+ typename Monoid::ConstMonoRef mono
+ ) {
+ MATHICGB_ASSERT(monoidMono.debugValid(mono));
+ MATHICGB_ASSERT(debugAssertValid());
+
+ ensureSpace();
+ backVector().push_back(monoidMono, mono);
+
+ MATHICGB_ASSERT(debugAssertValid());
+ MATHICGB_ASSERT(monoid().equal(monoidMono, mono, back()));
+ }
+
+ void swap(MonoArena& a) {
+ MATHICGB_ASSERT(monoid() == a.monoid());
+ MATHICGB_ASSERT(debugAssertValid());
+ MATHICGB_ASSERT(a.debugAssertValid());
+
+ mVectors.swap(a.mVectors);
+
+ MATHICGB_ASSERT(debugAssertValid());
+ MATHICGB_ASSERT(a.debugAssertValid());
+ }
+
+ void clear() {
+ MATHICGB_ASSERT(debugAssertValid());
+
+ auto last = std::end(mVectors);
+ --last;
+ last->clear();
+ mVectors.erase(mVectors.begin(), last);
+
+ MATHICGB_ASSERT(debugAssertValid());
+ }
+
+
+ // *** Other
+
+ size_t memoryBytesUsed() const {
+ auto sum = size_t(0);
+ for (const auto& v : mVectors)
+ sum += v.memoryBytesUsed();
+ return sum;
+ }
+
+ const Monoid& monoid() const {return mVectors.back().monoid();}
+
+ bool debugAssertValid() const {
+#ifdef MATHICGB_DEBUG
+ MATHICGB_ASSERT(!mVectors.empty());
+ for (const auto& p : adjPairRange(mVectors)) {
+ MATHICGB_ASSERT(p.first.monoid() == p.second.monoid());
+ MATHICGB_ASSERT(p.first.capacity() <= p.second.capacity());
+ }
+#endif
+ return true;
+ }
+
+private:
+ /// Ensures that there is space for at least one more monomial.
+ ///
+ /// @todo: if monomials ever become variable-size, then this might
+ /// allocate far more than double the memory of the previous
+ /// vector. The problem is that they might actually take up, say, 128 bytes
+ /// but the worst case is 1024k. Then if 1000 monomials fit in the previous
+ /// vector, the next vector will allocate 2 * 1000 * 1024k bytes, which
+ /// is far more than double what the previous vector did. Make it actually
+ /// double the bytes.
+ void ensureSpace() {
+ MATHICGB_ASSERT(debugAssertValid());
+
+ if (!backVector().atCapacity())
+ return;
+
+ const auto oldSize = backVector().size();
+ if (oldSize > std::numeric_limits<decltype(oldSize)>::max() / 2)
+ throw std::bad_alloc();
+ const auto newSize = 2 * oldSize;
+
+ mVectors.emplace_back(monoid());
+ backVector().reserve(newSize);
+
+ MATHICGB_ASSERT(debugAssertValid());
+ }
+
+ MonoVector& backVector() {
+ MATHICGB_ASSERT(!mVectors.empty());
+ return mVectors.back();
+ }
+
+ const MonoVector& backVector() const {
+ MATHICGB_ASSERT(!mVectors.empty());
+ return mVectors.back();
+ }
+
+ std::vector<MonoVector> mVectors;
+};
+
+/// Returns true if a and b contain the same monomials in the same order.
+template<class Monoid>
+bool operator==(const MonoArena<Monoid>& a, const MonoArena<Monoid>& b) {
+ MATHICGB_ASSERT(a.monoid() == b.monoid());
+ MATHICGB_ASSERT(a.debugAssertValid());
+ MATHICGB_ASSERT(b.debugAssertValid());
+ typedef typename Monoid::ConstMonoRef ConstMonoRef;
+
+ const auto& monoid = a.monoid();
+ auto cmpEqual = [&monoid](ConstMonoRef monoA, ConstMonoRef monoB) {
+ return monoid.equal(monoA, monoB);
+ };
+ return std::equal(std::begin(a), std::end(a), std::begin(b), cmpEqual);
+}
+
+/// As !(*this == v).
+template<class Monoid>
+bool operator!=(const MonoArena<Monoid>& a, const MonoArena<Monoid>& b) {
+ MATHICGB_ASSERT(a.monoid() == b.monoid());
+ return !(a == b);
+}
+
+MATHICGB_NAMESPACE_END
+#endif
diff --git a/src/mathicgb/MonoMonoid.hpp b/src/mathicgb/MonoMonoid.hpp
index 4052597..def5533 100755
--- a/src/mathicgb/MonoMonoid.hpp
+++ b/src/mathicgb/MonoMonoid.hpp
@@ -1579,6 +1579,8 @@ public:
size_t size() const {return mMonos.size() / monoid().entryCount();}
bool empty() const {return mMonos.empty();}
+ size_t capacity() const {return mMonos.capacity() / monoid().entryCount();}
+ bool atCapacity() const {return size() == capacity();}
// *** Element access
@@ -1658,6 +1660,11 @@ public:
const MonoMonoid& mMonoid;
};
+ bool debugValid(ConstMonoRef mono) const {
+ MATHICGB_ASSERT(debugOrderValid(mono));
+ MATHICGB_ASSERT(debugHashValid(mono));
+ return true;
+ }
private:
void operator=(MonoMonoid&); // not available
@@ -1718,12 +1725,6 @@ private:
return true;
}
- bool debugValid(ConstMonoRef mono) const {
- MATHICGB_ASSERT(debugOrderValid(mono));
- MATHICGB_ASSERT(debugHashValid(mono));
- return true;
- }
-
template<class MonoidA, class MonoidB>
bool debugLcmCheck(
const MonoidA& monoidA,
@@ -1847,13 +1848,13 @@ private:
Exponent degree = 0;
if (orderIsTotalDegreeRevLex()) {
MATHICGB_ASSERT(grading == 0);
- for (auto var = 0; var < varCount(); ++var)
+ for (auto var = size_t(0); var < varCount(); ++var)
degree -= exponent(mono, var);
} else if (HasComponent && componentGradingIndex() == grading)
return component(mono);
else {
MATHICGB_ASSERT(gradings().size() == gradingCount() * varCount());
- for (auto var = 0; var < varCount(); ++var) {
+ for (auto var = size_t(0); var < varCount(); ++var) {
const auto index = gradingsIndex(grading, var);
degree += exponent(mono, var) * gradings()[index];
}
diff --git a/src/mathicgb/Range.hpp b/src/mathicgb/Range.hpp
index d598532..836c59f 100755
--- a/src/mathicgb/Range.hpp
+++ b/src/mathicgb/Range.hpp
@@ -7,6 +7,7 @@
#include <vector>
#include <utility>
#include <type_traits>
+#include <iterator>
MATHICGB_NAMESPACE_BEGIN
@@ -389,6 +390,13 @@ auto adjPairRange(
// *** Flatten range of ranges into a single range
+namespace FlattenNamespace {
+ template<class OuterIterator>
+ struct InnerIteratorType {
+ typedef typename std::decay<decltype(std::begin(*OuterIterator()))>::type type;
+ };
+}
+
/// Flatten is an iterator that iterates through each range in a range
/// of ranges. The point is to enable the flatten() function defined
/// further down in this header. This iterator is invalidated whenever
@@ -397,9 +405,13 @@ auto adjPairRange(
template<class OuterIterator>
class Flatten {
public:
- typedef decltype(std::begin(*std::declval<OuterIterator>())) InnerIteratorRaw;
- typedef typename std::decay<InnerIteratorRaw>::type InnerIterator;
-
+ // Yes, it would inded make more sense to inline what InnerIteratorType<>
+ // does here. That worked fine on gcc 4.7.3. It did not compile on
+ // MSVC 2012. I spent a lot of time trying to track down the problem
+ // and as far as I can tell, it is a compiler bug. The work-around
+ // with InnerIteratorType works and I'm going to leave it at that.
+ typedef typename FlattenNamespace::InnerIteratorType<OuterIterator>::type
+ InnerIterator;
typedef typename std::iterator_traits<InnerIterator>::difference_type
difference_type;
typedef typename std::iterator_traits<InnerIterator>::value_type value_type;
@@ -446,6 +458,8 @@ public:
if (atEnd())
return f.atEnd();
+ else if (f.atEnd())
+ return false;
else
return mInner == f.mInner;
}
@@ -498,7 +512,7 @@ Flatten<OuterIterator> makeFlatten(
/// As flatten(range(begin, end)).
template<class OuterIterator>
-Range<Flatten<OuterIterator>> flattenRange(
+Range<Flatten<OuterIterator>> flatten(
OuterIterator outerBegin,
OuterIterator outerEnd
) {
@@ -515,15 +529,15 @@ Range<Flatten<OuterIterator>> flattenRange(
/// v[0].push_back(1);
/// v[2].push_back(2);
/// v[2].push_back(3);
-/// for (const auto& i : flattenRange(v))
+/// for (const auto& i : flatten(v))
/// std::cout << i << ' ';
///
/// The output is "1 2 3 ";
template<class OuterRange>
-auto flattenRange(
+auto flatten(
OuterRange&& outerRange
-) -> decltype(flattenRange(std::begin(outerRange), std::end(outerRange))) {
- return flattenRange(std::begin(outerRange), std::end(outerRange));
+) -> decltype(flatten(std::begin(outerRange), std::end(outerRange))) {
+ return flatten(std::begin(outerRange), std::end(outerRange));
}
MATHICGB_NAMESPACE_END
diff --git a/src/mathicgb/ReducerDedup.cpp b/src/mathicgb/ReducerDedup.cpp
index 475d7db..42841e1 100644
--- a/src/mathicgb/ReducerDedup.cpp
+++ b/src/mathicgb/ReducerDedup.cpp
@@ -1,3 +1,6 @@
+#include <memtailor.h>
+#include "memtailor.h"
+
// MathicGB copyright 2012 all rights reserved. MathicGB comes with ABSOLUTELY
// NO WARRANTY and is licensed as GPL v2.0 or later - see LICENSE.txt.
#include "stdinc.h"
diff --git a/src/mathicgb/Scanner.cpp b/src/mathicgb/Scanner.cpp
index 0649c81..1c939a5 100755
--- a/src/mathicgb/Scanner.cpp
+++ b/src/mathicgb/Scanner.cpp
@@ -179,7 +179,11 @@ bool Scanner::readBuffer(size_t minRead) {
didReadCount = fread(readInto, 1, readCount, mFile);
} else if (mStream != 0) {
mStream->read(readInto, readCount);
- didReadCount = mStream->gcount();
+ const std::streamsize maxSizeT =
+ std::numeric_limits<std::make_signed<size_t>::type>::max();
+ if (mStream->gcount() > maxSizeT)
+ throw std::bad_alloc();
+ didReadCount = static_cast<size_t>(mStream->gcount());
}
mBuffer.resize(saveCount + didReadCount);
mBufferPos = mBuffer.begin();
diff --git a/src/mathicgb/SparseMatrix.cpp b/src/mathicgb/SparseMatrix.cpp
index fe4afce..7d41d47 100755
--- a/src/mathicgb/SparseMatrix.cpp
+++ b/src/mathicgb/SparseMatrix.cpp
@@ -499,7 +499,10 @@ SparseMatrix::Scalar SparseMatrix::read(FILE* file) {
const auto rowCount = readOne<uint32>(file);
const auto colCount = readOne<uint32>(file);
const auto modulus = readOne<uint32>(file);
- const auto entryCount = readOne<uint64>(file);
+ const auto entryCount64 = readOne<uint64>(file);
+ if (entryCount64 > std::numeric_limits<size_t>::max())
+ throw std::bad_alloc();
+ const auto entryCount = static_cast<size_t>(entryCount64);
// Allocate memory to hold the matrix in one block.
clear();
diff --git a/src/mathicgb/stdinc.h b/src/mathicgb/stdinc.h
index e2fae03..2040b3e 100755
--- a/src/mathicgb/stdinc.h
+++ b/src/mathicgb/stdinc.h
@@ -47,7 +47,7 @@
/// does not alias any other pointer that is used in the current scope.
#define MATHICGB_RESTRICT __restrict
-#pragma warning (disable: 4996) // std::copy on pointers is flagged as dangerous
+#pragma warning (disable: 4996) // don't warn about e.g. std::fill on pointers
#pragma warning (disable: 4290) // VC++ ignores throw () specification.
#pragma warning (disable: 4127) // Warns about using "while (true)".
#pragma warning (disable: 4100) // Warns about unused parameters.
diff --git a/src/test/MonoMonoid.cpp b/src/test/MonoMonoid.cpp
index b261570..0e084b2 100755
--- a/src/test/MonoMonoid.cpp
+++ b/src/test/MonoMonoid.cpp
@@ -3,6 +3,7 @@
#include "mathicgb/stdinc.h"
#include "mathicgb/MonoMonoid.hpp"
+#include "mathicgb/MonoArena.hpp"
#include "mathicgb/MathicIO.hpp"
#include <gtest/gtest.h>
#include <sstream>
@@ -91,10 +92,9 @@ TYPED_TEST(Monoids, VarCount) {
ASSERT_EQ(12, Monoid(12).varCount());
}
-TYPED_TEST(Monoids, MonoVector) {
- typedef TypeParam Monoid;
+template<class Monoid, class MonoVector>
+void testMonoVector() {
typedef typename Monoid::VarIndex VarIndex;
- typedef typename Monoid::MonoVector MonoVector;
Monoid monoid(13);
MonoVector v(monoid);
@@ -113,7 +113,7 @@ TYPED_TEST(Monoids, MonoVector) {
for (size_t i = 0; i < count; ++i) {
ASSERT_EQ(i, v.size());
v.push_back(); // push_back, no param
- ASSERT_GT(v.memoryBytesUsed(), 0);
+ ASSERT_GT(v.memoryBytesUsed(), 0u);
ASSERT_FALSE(v.empty()); // empty
ASSERT_EQ(i + 1, v.size()); // size
@@ -195,6 +195,25 @@ TYPED_TEST(Monoids, MonoVector) {
ASSERT_TRUE(v.empty());
}
+TYPED_TEST(Monoids, MonoVector) {
+ typedef TypeParam Monoid;
+ typedef typename Monoid::MonoVector MonoVector;
+
+ testMonoVector<Monoid, MonoVector>();
+}
+
+TYPED_TEST(Monoids, MonoArena) {
+ typedef TypeParam Monoid;
+ typedef MonoArena<Monoid> Arena;
+
+ Monoid monoid(15);
+ Arena a(monoid);
+ a.push_back();
+ return;
+
+ testMonoVector<Monoid, MonoArena<Monoid>>();
+}
+
TYPED_TEST(Monoids, ReadWriteMonoid) {
typedef TypeParam Monoid;
typedef typename Monoid::VarIndex VarIndex;
diff --git a/src/test/Range.cpp b/src/test/Range.cpp
index 593368b..474db10 100755
--- a/src/test/Range.cpp
+++ b/src/test/Range.cpp
@@ -173,7 +173,7 @@ TEST(Range, flatten) {
v[2].push_back(3);
std::ostringstream out;
- for (const auto& i : flattenRange(v))
+ for (const auto& i : flatten(v))
out << i << ' ';
ASSERT_EQ("1 2 3 ", out.str());
}
@@ -203,7 +203,7 @@ TEST(Range, flattenRecursive) {
outer.back().emplace_back();
std::ostringstream out;
- for (const auto& i : flattenRange(flattenRange(outer)))
+ for (const auto& i : flatten(flatten(outer)))
out << i << ' ';
ASSERT_EQ("1 2 3 4 5 6 7 ", out.str());
}
diff --git a/src/test/mathicgb.cpp b/src/test/mathicgb.cpp
index 9a811ef..4ace516 100755
--- a/src/test/mathicgb.cpp
+++ b/src/test/mathicgb.cpp
@@ -514,7 +514,7 @@ TEST(MathicGBLib, EarlyExit) {
size_t minSize = check(useClassic, 1, Action::StopWithPartialOutputAction);
size_t midSize = check(useClassic, 4, Action::StopWithPartialOutputAction);
size_t maxSize = check(useClassic, 1, Action::ContinueAction);
- ASSERT_LT(none, 35); // the stream writes a header even for no output
+ ASSERT_LT(none, 35u); // the stream writes a header even for no output
ASSERT_LT(none, minSize);
ASSERT_LT(minSize, midSize);
ASSERT_LT(midSize, maxSize);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/mathicgb.git
More information about the debian-science-commits
mailing list