Is this the fastest way to compute the Betti numbers ?
Posted: 18 Apr 2022, 17:22
Dear all,
I have a program in which I start with a triangulation of an n-dimensional simplex - for now, the triangulation is defined using a list of monomials and a list of coefficients. I also have a (long) list of signs distributions on the vertices of that triangulation. For each signs distribution, I want to compute the Betti numbers of the associated patchworked hypersurface.
In other words, it looks something like this :
Considering that I need to compute the Betti numbers corresponding to a very large number of signs distributions (but always with the same initial triangulation), is there any way to make this faster ?
For example, I understand that polymake uses production rules to compute new properties, and I thought there might be some intermediate property that would depend only on the triangulation (and not on the signs) that I could compute once beforehand to save some time, or maybe some more low-level optimization trick.
Note that I am not complaining, I am already very impressed with polymake's performance.
Best regards and thanks in advance,
Charles Arnal
I have a program in which I start with a triangulation of an n-dimensional simplex - for now, the triangulation is defined using a list of monomials and a list of coefficients. I also have a (long) list of signs distributions on the vertices of that triangulation. For each signs distribution, I want to compute the Betti numbers of the associated patchworked hypersurface.
In other words, it looks something like this :
Code: Select all
my $my_monomials = ...;
my @my_coeffs = ...;
my $h1 = new Hypersurface<Min>(MONOMIALS=>$my_monomials, COEFFICIENTS=>@my_coeffs);
my @Betti_num_array=();
# I get my signs distributions from a file
open(INPUT, "<", "$ARGV[0]/$ARGV[1]");
while(<INPUT>){
push(@Betti_num_array,$h1->PATCHWORK(SIGNS=>$_)->BETTI_NUMBERS_Z2);
}
For example, I understand that polymake uses production rules to compute new properties, and I thought there might be some intermediate property that would depend only on the triangulation (and not on the signs) that I could compute once beforehand to save some time, or maybe some more low-level optimization trick.
Note that I am not complaining, I am already very impressed with polymake's performance.
Best regards and thanks in advance,
Charles Arnal