Re: [sage-devel] Re: Severe regression in construction of matrices

2018-06-05 Thread Travis Scrimshaw
On Wednesday, June 6, 2018 at 12:01:54 PM UTC+10, Nils Bruin wrote: > > On Tuesday, June 5, 2018 at 5:51:34 PM UTC-7, Travis Scrimshaw wrote: >> >> >> For instance, what prevents us from cdeffing >>> sage.matrix.matrix_space.MatrixSpace? >>> >> >> Multiple inheritance: UniqueRepresentation and

Re: [sage-devel] Re: Severe regression in construction of matrices

2018-06-05 Thread Nils Bruin
On Tuesday, June 5, 2018 at 5:51:34 PM UTC-7, Travis Scrimshaw wrote: > > > For instance, what prevents us from cdeffing >> sage.matrix.matrix_space.MatrixSpace? >> > > Multiple inheritance: UniqueRepresentation and ParentWithGens (which > should be Parent at some point...). > > Oh boy. So we'd

[sage-devel] Re: random_element and randtest_element

2018-06-05 Thread Kwankyu Lee
> > What do you think? Does the name randtest_element look ok? How about "_random_test_element", as this method needs not to be revealed to users, unlike "random_element" and "some_elements". -- You received this message because you are subscribed to the Google Groups "sage-devel" group.

Re: [sage-devel] Re: Severe regression in construction of matrices

2018-06-05 Thread Travis Scrimshaw
> For instance, what prevents us from cdeffing > sage.matrix.matrix_space.MatrixSpace? > Multiple inheritance: UniqueRepresentation and ParentWithGens (which should be Parent at some point...). Best, Travis -- You received this message because you are subscribed to the Google Groups

Re: [sage-devel] Re: Severe regression in construction of matrices

2018-06-05 Thread Nils Bruin
On Tuesday, June 5, 2018 at 7:11:40 AM UTC-7, Jeroen Demeyer wrote: > > The problem is that you need to access the *Python* attributes of the > *Python* class MatrixSpace. Ideally, you do this at most once for each > such attribute, but after #24742 nrows() may be called twice when >

[sage-devel] Re: Severe regression in construction of matrices

2018-06-05 Thread Simon King
Hi Jeroen, On 2018-06-05, Jeroen Demeyer wrote: > On 2018-06-05 15:56, Simon King wrote: >> Yes, it would indeed be a total waste of time to not just access the >> cdef attributes of a matrix when writing Cython code. > > The problem is that you need to access the *Python* attributes of the >

Re: [sage-devel] random_element and randtest_element

2018-06-05 Thread Thierry
Hi, On Tue, Jun 05, 2018 at 10:31:38AM -0700, Samuel Lelievre wrote: > How about adding an optional argument "distribution" > defaulting to None, and for polynomials having say, > if distribution == 'for_testing', then, > > - with probability 1/4, > select at random among R.some_elements() > -

Re: [sage-devel] random_element and randtest_element

2018-06-05 Thread Samuel Lelievre
How about adding an optional argument "distribution" defaulting to None, and for polynomials having say, if distribution == 'for_testing', then, - with probability 1/4, select at random among R.some_elements() - with probability 1/4, return random polynomial of density 1 - with probability

Re: [sage-devel] random_element and randtest_element

2018-06-05 Thread Thierry
On Tue, Jun 05, 2018 at 06:01:35PM +0200, Jeroen Demeyer wrote: > On 2018-06-05 17:52, Vincent Delecroix wrote: > > 2) a new method randtest_element that would generate (quickly) a > > random element suited for testing. Such a method would try to > > return "corner cases" with good

Re: [sage-devel] random_element and randtest_element

2018-06-05 Thread Jeroen Demeyer
On 2018-06-05 17:52, Vincent Delecroix wrote: 2) a new method randtest_element that would generate (quickly) a random element suited for testing. Such a method would try to return "corner cases" with good probability. I thought that some_elements() was meant for that: sage: R.

[sage-devel] random_element and randtest_element

2018-06-05 Thread Vincent Delecroix
Dear all, Random elements serve two purposes: * random testing * probabilities I would like to introduce 1) better specifications for random_element: eg state clearly the probability distribution of the outcome in the docstring. 2) a new method randtest_element that would generate

Re: [sage-devel] Re: Severe regression in construction of matrices

2018-06-05 Thread Jeroen Demeyer
On 2018-06-05 15:56, Simon King wrote: Yes, it would indeed be a total waste of time to not just access the cdef attributes of a matrix when writing Cython code. The problem is that you need to access the *Python* attributes of the *Python* class MatrixSpace. Ideally, you do this at most once

[sage-devel] Re: Severe regression in construction of matrices

2018-06-05 Thread Simon King
Hi Jeroen, On 2018-06-05, Jeroen Demeyer wrote: > On 2018-06-05 11:48, Jeroen Demeyer wrote: >> S = MatrixSpace(GF(37), 5, 5); timeit('S()') > > I investigated further and one of the reasons that the new code is > slower is because of some additional calls to MatrixSpace.nrows() and > similar

Re: [sage-devel] Severe regression in construction of matrices

2018-06-05 Thread Jeroen Demeyer
On 2018-06-05 11:48, Jeroen Demeyer wrote: S = MatrixSpace(GF(37), 5, 5); timeit('S()') I investigated further and one of the reasons that the new code is slower is because of some additional calls to MatrixSpace.nrows() and similar methods. Since almost everything else is in Cython, calls

Re: [sage-devel] Severe regression in construction of matrices

2018-06-05 Thread Jeroen Demeyer
On 2018-06-05 11:38, Jeroen Demeyer wrote: [M.new_matrix(5,6) for i in range(1,50) for j in range(1,50)] Here I am seeing a regression of roughly 20%. This is because of a specific optimization for creating zero matrices which was removed in #24742. This is giving a regression for S =

Re: [sage-devel] Severe regression in construction of matrices

2018-06-05 Thread Jeroen Demeyer
Comparing 8.2 and 8.3.beta2: On 2018-06-05 08:34, Nils Bruin wrote: M=matrix(GF(37),9,9,range(81)) I don't see any regression for this, timings are identical (with possibly a very small gain in 8.3.beta2). [M.new_matrix(i,j) for i in range(1,50) for j in range(1,50)] For this example, I

[sage-devel] Permutation group: faster use of stabilizer chain from gap

2018-06-05 Thread Christian Stump
In https://trac.sagemath.org/ticket/25477, we (this is mainly Moritz Firsching) implement a new iterator for permutation groups using stabilizer chains. Indeed, the multiplication of permutations seems to be faster than in gap so we hope this method to be really fast in the end... The

[sage-devel] Re: Severe regression in construction of matrices

2018-06-05 Thread Simon King
Hi Nils, On 2018-06-05, Nils Bruin wrote: > I suspect that the main slowdowns I am observing are due to the reduced > performance in examples like > > M=matrix(GF(37),9,9,range(81)) > > [M.new_matrix(i,j) for i in range(1,50) for j in range(1,50)] > > and > > [M.new_matrix(5,6) for i in

Re: [sage-devel] Severe regression in construction of matrices

2018-06-05 Thread Nils Bruin
On Monday, June 4, 2018 at 11:10:34 PM UTC-7, Jeroen Demeyer wrote: > > It would be useful to have a concrete MatrixSpace.__call__() call > showing the regression. > I suspect that the main slowdowns I am observing are due to the reduced performance in examples like

Re: [sage-devel] Severe regression in construction of matrices

2018-06-05 Thread Jeroen Demeyer
It would be useful to have a concrete MatrixSpace.__call__() call showing the regression. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to