summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjan.reininghaus <jan.reininghaus@8e3bb3c2-eed4-f18f-5264-0b6c94e6926d>2013-05-03 09:30:12 +0000
committerjan.reininghaus <jan.reininghaus@8e3bb3c2-eed4-f18f-5264-0b6c94e6926d>2013-05-03 09:30:12 +0000
commit8afecf944f76e52fd0668eb106a717fe64e1341c (patch)
tree68160ec3135a7ba17c79b3ecbb37d317b4cd282d
parent1270fda993688152160dd454a9499983ebc485b8 (diff)
ignore list
git-svn-id: https://phat.googlecode.com/svn/trunk@56 8e3bb3c2-eed4-f18f-5264-0b6c94e6926d
-rw-r--r--README8
-rw-r--r--addons/alpha_3.cpp6
-rw-r--r--build/Visual Studio/VisualStudio2008.sln19
-rw-r--r--build/Visual Studio/VisualStudio2012.sln10
-rw-r--r--build/Visual Studio/benchmark/benchmark.vcxproj2
-rw-r--r--include/phat/representations/vector_vector.h2
6 files changed, 39 insertions, 8 deletions
diff --git a/README b/README
index 82201e4..8a0ca31 100644
--- a/README
+++ b/README
@@ -38,9 +38,9 @@ algorithm. We provide the following choices of representation classes:
* {{{vector_vector}}}: Each column is represented as a sorted {{{std::vector}}} of integers, containing the indices of the non-zero entries of the column. The matrix itself is a {{{std::vector}}} of such columns.
* {{{vector_set}}}: Each column is a {{{std::set}}} of integers, with the same meaning as above. The matrix is stored as a {{{std::vector}}} of such columns.
* {{{vector_list}}}: Each column is a sorted {{{std::list}}} of integers, with the same meaning as above. The matrix is stored as a {{{std::vector}}} of such columns.
- * {{{sparse_pivot_column}}}: The matrix is stored as in the vector_vector representation. However, when a column is manipulated, it is first converted into a {{{std::set}}}, using an extra data field called the "pivot column". When another column is manipulated later, the pivot column is converted back to the {{{std::vector}}} representation. This can lead to speed improvements when many columns are added to a given pivot column consecutively. In a multicore setup, there is one pivot column per core.
+ * {{{sparse_pivot_column}}}: The matrix is stored as in the vector_vector representation. However, when a column is manipulated, it is first converted into a {{{std::set}}}, using an extra data field called the "pivot column". When another column is manipulated later, the pivot column is converted back to the {{{std::vector}}} representation. This can lead to significant speed improvements when many columns are added to a given pivot column consecutively. In a multicore setup, there is one pivot column per thread.
* {{{full_pivot_column}}}: The same idea as in the sparse version. However, instead of a {{{std::set}}}, the pivot column is expanded into a bit vector of size n (the dimension of the matrix). To avoid costly initializations, the class remembers which entries have been manipulated for a pivot column and updates only those entries when another column becomes the pivot.
- * {{{bit_tree_pivot_column}}} (default representation): Similar to the {{{full_pivot_column}}} but the implementation is more efficient. Internally it is a bit-set with fast iteration over present elements, and fast access to the maximum element. The structure is initialized before the reduction algorithm is started and reused.
+ * {{{bit_tree_pivot_column}}} (default representation): Similar to the {{{full_pivot_column}}} but the implementation is more efficient. Internally it is a bit-set with fast iteration over nonzero elements, and fast access to the maximal element.
There are two ways to interface with the library:
@@ -56,7 +56,7 @@ There are two ways to interface with the library:
# include all headers found in {{{src/phat.cpp}}}
# define a boundary matrix object, e.g.
{{{
-phat::boundary_matrix< full_pivot_column > boundary_matrix;
+phat::boundary_matrix< bit_tree_pivot_column > boundary_matrix;
}}}
# set the number of columns:
{{{
@@ -73,7 +73,7 @@ phat::persistence_pairs pairs;
}}}
# run an algorithm like this:
{{{
-phat::compute_persistence_pairs< phat::chunk_reduction >( pairs, boundary_matrix );
+phat::compute_persistence_pairs< phat::twist_reduction >( pairs, boundary_matrix );
}}}
# examine the result:
{{{
diff --git a/addons/alpha_3.cpp b/addons/alpha_3.cpp
index 7616e27..6df251c 100644
--- a/addons/alpha_3.cpp
+++ b/addons/alpha_3.cpp
@@ -176,7 +176,7 @@ int main(int argc, char** argv)
std::string next_line;
while( getline( is, next_line ) ) {
if( next_line != "" && next_line[ 0 ] != '#' ) {
- std::cerr << next_line;
+ //std::cerr << next_line;
std::stringstream sstr(next_line);
sstr >> p;
lp.push_back(p);
@@ -239,12 +239,14 @@ int main(int argc, char** argv)
std::size_t filtration_index = 0;
std::size_t filtration_size = circumradii.size();
+ boundary_matrix.set_num_cols( filtration_size );
+
Index curr_index = 0;
for(std::vector<Triple>::const_iterator it = circumradii.begin();
it != circumradii.end(); it++) {
- if(filtration_index % 1000 == 0) {
+ if(filtration_index % 100000 == 0) {
std::cerr << filtration_index << " of " << filtration_size
<< std::endl;
}
diff --git a/build/Visual Studio/VisualStudio2008.sln b/build/Visual Studio/VisualStudio2008.sln
index 10bc0b9..a7de81e 100644
--- a/build/Visual Studio/VisualStudio2008.sln
+++ b/build/Visual Studio/VisualStudio2008.sln
@@ -9,6 +9,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_example", "simple_ex
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark\benchmark.vcproj", "{41BD21B0-A6E5-4446-AF0A-D64BAF097341}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alpha_3", "alpha_3\alpha_3.vcproj", "{ABFB0956-E677-49BF-BDA3-68C69D79C37F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rips", "rips\rips.vcproj", "{56999E92-DC5A-47CC-8044-B981E069F5B7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -46,6 +50,21 @@ Global
{41BD21B0-A6E5-4446-AF0A-D64BAF097341}.Release|Win32.Build.0 = Release|Win32
{41BD21B0-A6E5-4446-AF0A-D64BAF097341}.Release|x64.ActiveCfg = Release|x64
{41BD21B0-A6E5-4446-AF0A-D64BAF097341}.Release|x64.Build.0 = Release|x64
+ {ABFB0956-E677-49BF-BDA3-68C69D79C37F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {ABFB0956-E677-49BF-BDA3-68C69D79C37F}.Debug|Win32.Build.0 = Debug|Win32
+ {ABFB0956-E677-49BF-BDA3-68C69D79C37F}.Debug|x64.ActiveCfg = Debug|Win32
+ {ABFB0956-E677-49BF-BDA3-68C69D79C37F}.Release|Win32.ActiveCfg = Release|Win32
+ {ABFB0956-E677-49BF-BDA3-68C69D79C37F}.Release|Win32.Build.0 = Release|Win32
+ {ABFB0956-E677-49BF-BDA3-68C69D79C37F}.Release|x64.ActiveCfg = Release|x64
+ {ABFB0956-E677-49BF-BDA3-68C69D79C37F}.Release|x64.Build.0 = Release|x64
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Debug|Win32.Build.0 = Debug|Win32
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Debug|x64.ActiveCfg = Debug|x64
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Debug|x64.Build.0 = Debug|x64
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Release|Win32.ActiveCfg = Release|Win32
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Release|Win32.Build.0 = Release|Win32
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Release|x64.ActiveCfg = Release|x64
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/build/Visual Studio/VisualStudio2012.sln b/build/Visual Studio/VisualStudio2012.sln
index 226005b..c11f45f 100644
--- a/build/Visual Studio/VisualStudio2012.sln
+++ b/build/Visual Studio/VisualStudio2012.sln
@@ -9,6 +9,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_example", "simple_ex
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark\benchmark.vcxproj", "{41BD21B0-A6E5-4446-AF0A-D64BAF097341}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rips", "rips\rips.vcxproj", "{56999E92-DC5A-47CC-8044-B981E069F5B7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -50,6 +52,14 @@ Global
{41BD21B0-A6E5-4446-AF0A-D64BAF097341}.Release|x64.ActiveCfg = Release|x64
{41BD21B0-A6E5-4446-AF0A-D64BAF097341}.Release|x64.Build.0 = Release|x64
{41BD21B0-A6E5-4446-AF0A-D64BAF097341}.Release|x64.Deploy.0 = Release|x64
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Debug|Win32.Build.0 = Debug|Win32
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Debug|x64.ActiveCfg = Debug|x64
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Debug|x64.Build.0 = Debug|x64
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Release|Win32.ActiveCfg = Release|Win32
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Release|Win32.Build.0 = Release|Win32
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Release|x64.ActiveCfg = Release|x64
+ {56999E92-DC5A-47CC-8044-B981E069F5B7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/build/Visual Studio/benchmark/benchmark.vcxproj b/build/Visual Studio/benchmark/benchmark.vcxproj
index 5ae7842..334ef10 100644
--- a/build/Visual Studio/benchmark/benchmark.vcxproj
+++ b/build/Visual Studio/benchmark/benchmark.vcxproj
@@ -149,7 +149,7 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <Optimization>Full</Optimization>
+ <Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
diff --git a/include/phat/representations/vector_vector.h b/include/phat/representations/vector_vector.h
index 84609c2..06fd060 100644
--- a/include/phat/representations/vector_vector.h
+++ b/include/phat/representations/vector_vector.h
@@ -72,7 +72,7 @@ namespace phat {
// clears given column
void _clear( index idx ) {
- matrix[ idx ].clear();
+ matrix[ idx ].clear();
}
// syncronizes all data structures (essential for openmp stuff)