Sage: Ticket #16231: Equivalence between OA/TD/MOLS
https://trac.sagemath.org/ticket/16231
<p>
This branch implements the following equivalence result : there exists a TD(k,n) iif there exists a OA(k,n) iif there exists k+2 MOLS.
</p>
<p>
With this branch, the three constructors communicate with each other, and a construction of any of these objects can be used to create objects of the other kinds.
</p>
<p>
Because the constructor of OA calls the constructor of TD,and because the constructor of TD calls the constructor of OA, there is a new <code>who_asked</code> parameters in these constructors which can be used to remember who asked the question first.
</p>
<p>
On the down side : the constructor of MOLS used to be able to return "the maximum number of MOLS of size nxn that Sage can build". With this patch, the feature is removed.
</p>
<p>
Explanation: I created this feature because we only had two simple constructions of MOLS, and because it was easy to guess this number k from those constructions. With the new equivalences, this is not as easy anymore, thus I removed it for the moment.
</p>
<p>
I think that it is not that bad, considering that it appeared very recently, and that not many people may even know that Sage can build MOLS yet.
</p>
<p>
This feature, however, can be interesting, and *can* be reimplemented. While with the two former constructions it was easy to guess in one line, we now have to try all possible parameters to find the largest integer k we are looking for. This is not necessarily very time-consuming given that all these objects now have an "availability" flag.
Hence it will be implemented again, this time for all constructions at the same time.
</p>
<p>
Two important points:
1) The fact that the constructions communicate with each other means that Sage returns better results than before (and in particular the "maximum" number formerly returned by the constructor of MOLS is in many cases smaller than what Sage can now do
2) The <a class="missing wiki">McNeish?</a> theorem from the constructors of MOLS has now been removed, as the same constructions has been implemented for TD since (<a class="closed ticket" href="https://trac.sagemath.org/ticket/16227" title="enhancement: Product construction of Transversal Designs (closed: fixed)">#16227</a>), and better (i.e. the best decomposition is found, not necessarily a decomposition into prime powers)
</p>
<p>
HEeeeeeeeeeeeeeeeeere it is ! <code>:-)</code>
</p>
<p>
Nathann
</p>
en-usSagehttps://trac.sagemath.org/chrome/site/logo_sagemath_trac.png
https://trac.sagemath.org/ticket/16231
Trac 1.1.6ncohenThu, 24 Apr 2014 19:53:03 GMTstatus, component, type changed; branch set
https://trac.sagemath.org/ticket/16231#comment:1
https://trac.sagemath.org/ticket/16231#comment:1
<ul>
<li><strong>status</strong>
changed from <em>new</em> to <em>needs_review</em>
</li>
<li><strong>component</strong>
changed from <em>PLEASE CHANGE</em> to <em>combinatorics</em>
</li>
<li><strong>type</strong>
changed from <em>PLEASE CHANGE</em> to <em>enhancement</em>
</li>
<li><strong>branch</strong>
set to <em>u/ncohen/16231</em>
</li>
</ul>
TicketgitThu, 24 Apr 2014 19:53:30 GMTcommit set
https://trac.sagemath.org/ticket/16231#comment:2
https://trac.sagemath.org/ticket/16231#comment:2
<ul>
<li><strong>commit</strong>
set to <em>a46446f3b29690aa1245583639bb6b78b3d50dca</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=03f896c363e23a00fabf0b38b87a277354f07327"><span class="icon"></span>03f896c</a></td><td><code>trac #15310: Wilson's construction of Transversal Designs</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=6357236d82dd6714eb59a7e63bb22a7f02c18e88"><span class="icon"></span>6357236</a></td><td><code>trac #15310: Rebase on updated #15431</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=25f5959ec5fe7ccd1479fdbdcd489cf550933c7e"><span class="icon"></span>25f5959</a></td><td><code>trac #15310: Merged into 6.2.rc0</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=f23fa885ee5a080f2a8051f23f7fc9f130541849"><span class="icon"></span>f23fa88</a></td><td><code>trac #15310: useless checks</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=a46446f3b29690aa1245583639bb6b78b3d50dca"><span class="icon"></span>a46446f</a></td><td><code>trac #16231: Equivalence between OA/TD/MOLS</code>
</td></tr></table>
TicketvdelecroixThu, 01 May 2014 14:53:54 GMT
https://trac.sagemath.org/ticket/16231#comment:3
https://trac.sagemath.org/ticket/16231#comment:3
<p>
Hello,
</p>
<p>
Remainder: the content of this ticket has been partially discussed in <a class="closed ticket" href="https://trac.sagemath.org/ticket/15310" title="enhancement: Wilson's construction of Transversal Designs/Orthogonal Arrays/MOLS (closed: fixed)">#15310</a> and <a class="closed ticket" href="https://trac.sagemath.org/ticket/16227" title="enhancement: Product construction of Transversal Designs (closed: fixed)">#16227</a>.
</p>
<p>
I assume that the big goal of this ticket is also to find more constructions.
</p>
<p>
The operation which consists in removing groups is trivial. So instead of given a couple (k,n) look for a TD(k,n) it is just more meaningful for a given n to have functions which:
</p>
<ul><li>return the largest k such that Sage knows how to build a TD(k,n) and provide it
</li><li>the smallest k such that Sage knows that there does not exist a TD(k,n) and provide the Theorem that says so (see also <a class="closed ticket" href="https://trac.sagemath.org/ticket/16272" title="enhancement: redesign transversal designs (closed: fixed)">#16272</a> for that)
</li></ul><p>
Removing this feature from the MOLS in is <strong>very</strong> bad. I would rather try to make it available in the other functions. Doing it by "trying all <code>k</code> before it says no" does not look like a good strategy to me.
</p>
<p>
In order to find new TD(k,n), we have different strategies:
</p>
<ul><li><em>individual constructions</em> (currently there is <code>TD_6_12</code> and also the ones introduced in <a class="closed ticket" href="https://trac.sagemath.org/ticket/16241" title="enhancement: New MOLS shared by Ian Wanless (closed: fixed)">#16241</a> <a class="closed ticket" href="https://trac.sagemath.org/ticket/16236" title="enhancement: Five mutually orthogonal latin squares of order 12 (closed: fixed)">#16236</a> and <a class="closed ticket" href="https://trac.sagemath.org/ticket/16235" title="enhancement: A pair of orthogonal latin squares of order 10 (closed: fixed)">#16235</a>)
</li><li><em>family constructions</em> (these are currently included into <code>orthogonal_array</code> and <code>mutually_orthogonal_latin_squares</code>). It is hard for me to tell if those constructions overlap.
</li><li><em>generalized Wilson constructions</em> which build TD(k,n) from "smaller" ones
</li><li><em>translations</em>, which is basically what this ticket is about
</li></ul><p>
Is that all? I would like this to be clear before thinking about what you did.
</p>
<p>
Vincent
</p>
TicketncohenThu, 01 May 2014 15:33:07 GMT
https://trac.sagemath.org/ticket/16231#comment:4
https://trac.sagemath.org/ticket/16231#comment:4
<p>
Yo !
</p>
<blockquote class="citation">
<p>
I assume that the big goal of this ticket is also to find more constructions.
</p>
</blockquote>
<p>
Indeed.
</p>
<blockquote class="citation">
<p>
The operation which consists in removing groups is trivial. So instead of given a couple (k,n) look for a TD(k,n) it is just more meaningful for a given n to have functions which:
</p>
<ul><li>return the largest k such that Sage knows how to build a TD(k,n) and provide it
</li><li>the smallest k such that Sage knows that there does not exist a TD(k,n) and provide the Theorem that says so (see also <a class="closed ticket" href="https://trac.sagemath.org/ticket/16272" title="enhancement: redesign transversal designs (closed: fixed)">#16272</a> for that)
</li></ul><p>
Removing this feature from the MOLS in is <strong>very</strong> bad.
</p>
</blockquote>
<p>
Vincent, you need to stop screaming every ten seconds when something trivial is changed. This thing will appear again, as I am telling you that I want to reproduce the big MOLS table in the Handbook. Finding the largest k in the very purpose of my not sleeping and forgetting to eat for days.
</p>
<p>
I removed this parameter right now because it can not be guessed at no cost, as it was the case. In order to find the largest k, you must explore many branches and recursive constructions, and implementing this will be done in another ticket, as those are sufficiently complicated and long to review already.
</p>
<p>
Again, stop screaming every minute. There was NOTHING about MOLS in Sage very recently, and we implement a lot of stuff at once. Here I remove stuff because it makes my patch easier to implement, and I will add it again later. Nobody even knew that this feature existed except me.
</p>
<blockquote class="citation">
<p>
I would rather try to make it available in the other functions. Doing it by "trying all <code>k</code> before it says no" does not look like a good strategy to me.
</p>
</blockquote>
<p>
Vincent, be serious. Have you thought about it ?... There is no other way to do that.
</p>
<blockquote class="citation">
<p>
In order to find new TD(k,n), we have different strategies:
</p>
<ul><li><em>individual constructions</em> (currently there is <code>TD_6_12</code> and also the ones introduced in <a class="closed ticket" href="https://trac.sagemath.org/ticket/16241" title="enhancement: New MOLS shared by Ian Wanless (closed: fixed)">#16241</a> <a class="closed ticket" href="https://trac.sagemath.org/ticket/16236" title="enhancement: Five mutually orthogonal latin squares of order 12 (closed: fixed)">#16236</a> and <a class="closed ticket" href="https://trac.sagemath.org/ticket/16235" title="enhancement: A pair of orthogonal latin squares of order 10 (closed: fixed)">#16235</a>)
</li></ul></blockquote>
<p>
And the ones I am implementing. Indeed.
</p>
<blockquote class="citation">
<ul><li><em>family constructions</em> (these are currently included into <code>orthogonal_array</code> and <code>mutually_orthogonal_latin_squares</code>). It is hard for me to tell if those constructions overlap.
</li></ul></blockquote>
<p>
They must overlap on some values, and not on others.
</p>
<blockquote class="citation">
<ul><li><em>generalized Wilson constructions</em> which build TD(k,n) from "smaller" ones
</li></ul></blockquote>
<p>
Yep.
</p>
<blockquote class="citation">
<ul><li><em>translations</em>, which is basically what this ticket is about
</li></ul></blockquote>
<p>
Yep.
</p>
<blockquote class="citation">
<p>
Is that all? I would like this to be clear before thinking about what you did.
</p>
</blockquote>
<p>
Well, I think that it is all.
</p>
<p>
The point is that before this ticket, the MOLS constructor has only two cases :
</p>
<p>
1) A family construction for prime powers
</p>
<p>
2) A product decomposition applied stupidly : factor the input into prime power, and do the best you can with that.
</p>
<p>
When the first is applied, the "best k" is easy to find.
</p>
<p>
When the second is applied, the "best k" is easy to find.
</p>
<p>
Thus I had added this feature or returning the "best k", because it came at absolutely no cost.
</p>
<p>
Now we can build much better MOLS than that, because we have a LOT of constructions in OA/TD that MOLS can use, and so we can return MOLS that we would not have had with the previous constructions. On the other hand, if the "best k" we can now build is higher than what we could do before, it is not as easy to deduce because you have to explore stuff, in particular in the recursive constructions of OA/TD.
</p>
<p>
Thus I removed this guessing, because it is not how this feature is to be implemented. The only way I see to implement it is to try all values and return the largest one found, and I have no idea what you can think about when you say that it "does not look like a good strategy". It is the only one we can implement.
</p>
<p>
And we will implement this "best k" for all constructions at the same time. Or perhaps only for OA, and all others will ask it. Once, and for all constructors. But first, let them communicate.
</p>
<p>
Nathann
</p>
TicketgitThu, 01 May 2014 21:52:50 GMTcommit changed
https://trac.sagemath.org/ticket/16231#comment:5
https://trac.sagemath.org/ticket/16231#comment:5
<ul>
<li><strong>commit</strong>
changed from <em>a46446f3b29690aa1245583639bb6b78b3d50dca</em> to <em>a9dce705211f5593b926c0512a40ada05d978ff3</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=62f0158c281c55523a532d5ef21c666ba9c7dc3d"><span class="icon"></span>62f0158</a></td><td><code>trac #15310: cutting some branches of the exploration</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=d74341411288315f13da3d4383e515b884ba7440"><span class="icon"></span>d743414</a></td><td><code>trac #15310: reviewer's remarks</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=3fc79ba5be0b99e99593ff54bfa075a52cc5937c"><span class="icon"></span>3fc79ba</a></td><td><code>trac #15310: Merged into 6.2.rc1</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=054d2a2ffa441f675594a09b95cf943f41121b4c"><span class="icon"></span>054d2a2</a></td><td><code>trac #16227: Product construction of Transversal Designs</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=a512ab154b21caaf74d6ccef2cf32bf67179eee9"><span class="icon"></span>a512ab1</a></td><td><code>trac #16227: Merged with updated #15310</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=e62fae83fadf558f57548c6034e7ef8c48397c0a"><span class="icon"></span>e62fae8</a></td><td><code>corrected doctests + new doctests</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=4d6e964775e4d6734e677a9f281f56aee11bb696"><span class="icon"></span>4d6e964</a></td><td><code>trac #16227: Replace exception with booleans in the doctests</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=a9dce705211f5593b926c0512a40ada05d978ff3"><span class="icon"></span>a9dce70</a></td><td><code>trac #16231: Merged with updated #16227</code>
</td></tr></table>
TicketvdelecroixFri, 02 May 2014 09:25:14 GMT
https://trac.sagemath.org/ticket/16231#comment:6
https://trac.sagemath.org/ticket/16231#comment:6
<p>
Hi Nathann,
</p>
<p>
I added some documentation, please start editing from u/vdelecroix/16231
</p>
<p>
If <code>n</code> is a prime power, there is an optimal construction, i.e. a <code>TD(n+1,n)</code> and there is no need to check for product or Wilson construction. But right now the code in <code>transversal_design</code> does. For prime powers there are two places where some code is implemented:
</p>
<ul><li>in orthogonal_array (you refer to theorem 6.39 and 6.40 of Stinson)
</li><li>in mutually_orthogonal_latin_squares (you refer to section 6.4.1 of Stinson)
</li></ul><p>
Are the outputs equivalent? Note that there is no way to test it with the current code, unless I use the forbidden <code>who_asked</code> parameter. Would it be possible to isolate the two constructions in two functions? Why do we need two constructions for the case of <code>n</code> being a prime power?
</p>
<p>
Vincent
</p>
TicketncohenFri, 02 May 2014 10:04:00 GMT
https://trac.sagemath.org/ticket/16231#comment:7
https://trac.sagemath.org/ticket/16231#comment:7
<p>
Yo !
</p>
<blockquote class="citation">
<p>
I added some documentation, please start editing from u/vdelecroix/16231
</p>
</blockquote>
<p>
Okay, I'll look at that right now.
</p>
<blockquote class="citation">
<p>
If <code>n</code> is a prime power, there is an optimal construction, i.e. a <code>TD(n+1,n)</code> and there is no need to check for product or Wilson construction. But right now the code in <code>transversal_design</code> does. For prime powers there are two places where some code is implemented:
</p>
<ul><li>in orthogonal_array (you refer to theorem 6.39 and 6.40 of Stinson)
</li><li>in mutually_orthogonal_latin_squares (you refer to section 6.4.1 of Stinson)
</li></ul><p>
Are the outputs equivalent?
</p>
</blockquote>
<p>
No idea. They return valid answers, but I have no idea if they are the same. I would say "no", but really who cares ? Let's keep only one.
</p>
<blockquote class="citation">
<p>
Note that there is no way to test it with the current code, unless I use the forbidden <code>who_asked</code> parameter.
</p>
</blockquote>
<p>
Am I guilty for that ?... <code>:-P</code>
</p>
<blockquote class="citation">
<p>
Would it be possible to isolate the two constructions in two functions? Why do we need two constructions for the case of <code>n</code> being a prime power?
</p>
</blockquote>
<p>
I don't think we need two constructions of the same designs... I mean. AFTER this patch is merged, I don't think we need two, given that they all communicate with each other. BEFORE this patch, we actually need three different implementations <code>;-)</code>
</p>
<p>
Nathann
</p>
TicketncohenFri, 02 May 2014 10:07:49 GMT
https://trac.sagemath.org/ticket/16231#comment:8
https://trac.sagemath.org/ticket/16231#comment:8
<p>
Okay, I agree with your modifications except one :
</p>
<pre class="wiki">+ if availability:
+ return False
+ from sage.categories.sets_cat import EmptySetError
+ raise EmptySetError("No Transversal Design exists when k>=n+2")
</pre><p>
We shouldn't duplicate non-existence results but rather forward them, in this case forward it from OA to TD.
</p>
<p>
The nice thing is that later we will be able to implement a 'non-existence result' exactly like a construction !!
</p>
<p>
A 'non-existence result' will be a function taking a "k,n,existence=" as parameter, which can sometimes return "False" as an answer instead of "Unknown" <code>;-)</code>
</p>
<p>
Thiiiiiiiiiis code will become *COOL*.
</p>
<p>
Nathann
</p>
TicketvdelecroixFri, 02 May 2014 10:13:33 GMT
https://trac.sagemath.org/ticket/16231#comment:9
https://trac.sagemath.org/ticket/16231#comment:9
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/16231#comment:8" title="Comment 8">ncohen</a>:
</p>
<blockquote class="citation">
<p>
Okay, I agree with your modifications except one :
</p>
<pre class="wiki">+ if availability:
+ return False
+ from sage.categories.sets_cat import EmptySetError
+ raise EmptySetError("No Transversal Design exists when k>=n+2")
</pre><p>
We shouldn't duplicate non-existence results but rather forward them, in this case forward it from OA to TD.
</p>
</blockquote>
<p>
For the simple reason that in <code>transversal_design</code> you first start to check if there exists a product and a Wilson decomposition before discovering that for trivial reasons your parameters are not valid...
</p>
<p>
Vincent
</p>
TicketncohenFri, 02 May 2014 10:15:33 GMT
https://trac.sagemath.org/ticket/16231#comment:10
https://trac.sagemath.org/ticket/16231#comment:10
<blockquote class="citation">
<p>
For the simple reason that in <code>transversal_design</code> you first start to check if there exists a product and a Wilson decomposition before discovering that for trivial reasons your parameters are not valid...
</p>
</blockquote>
<p>
Isn't the problem solved if we call <code>orthogonal_array</code> before trying the decomposition ?
</p>
<p>
Nathann
</p>
TicketvdelecroixFri, 02 May 2014 10:21:01 GMT
https://trac.sagemath.org/ticket/16231#comment:11
https://trac.sagemath.org/ticket/16231#comment:11
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/16231#comment:10" title="Comment 10">ncohen</a>:
</p>
<blockquote class="citation">
<blockquote class="citation">
<p>
For the simple reason that in <code>transversal_design</code> you first start to check if there exists a product and a Wilson decomposition before discovering that for trivial reasons your parameters are not valid...
</p>
</blockquote>
<p>
Isn't the problem solved if we call <code>orthogonal_array</code> before trying the decomposition ?
</p>
</blockquote>
<p>
It is if <strong>all</strong> easy checks of non-existence are done inside <code>orthogonal_array</code>. Moreover, it is not specified right now that when <code>availability</code> is set to <code>True</code> that an answer <code>False</code> means that the object does not exist...
</p>
TicketncohenFri, 02 May 2014 10:24:09 GMT
https://trac.sagemath.org/ticket/16231#comment:12
https://trac.sagemath.org/ticket/16231#comment:12
<p>
Yo !
</p>
<blockquote class="citation">
<p>
It is if <strong>all</strong> easy checks of non-existence are done inside <code>orthogonal_array</code>.
</p>
</blockquote>
<p>
Why ? It would work anyway. The order changes the performances, not the existence of a result.
</p>
<blockquote class="citation">
<p>
Moreover, it is not specified right now that when <code>availability</code> is set to <code>True</code> that an answer <code>False</code> means that the object does not exist...
</p>
</blockquote>
<p>
True. So you can either add something which we will remove in a patch today or tomorrow, or wait until we change "availability" to "existence" so that we can do this properly.
</p>
<p>
Nathann
</p>
TicketncohenFri, 02 May 2014 10:26:19 GMTbranch changed
https://trac.sagemath.org/ticket/16231#comment:13
https://trac.sagemath.org/ticket/16231#comment:13
<ul>
<li><strong>branch</strong>
changed from <em>u/ncohen/16231</em> to <em>public/16231</em>
</li>
</ul>
<p>
I changed the branch. You can append your commits to <code>public/16231</code> when you are done <code>:-)</code>
</p>
<p>
Nathann
</p>
TicketncohenFri, 02 May 2014 10:28:18 GMT
https://trac.sagemath.org/ticket/16231#comment:14
https://trac.sagemath.org/ticket/16231#comment:14
<p>
(aaaaaand I just began to prepare the 1000 OA constructions I finished this morning)
</p>
TicketvdelecroixFri, 02 May 2014 10:34:30 GMT
https://trac.sagemath.org/ticket/16231#comment:15
https://trac.sagemath.org/ticket/16231#comment:15
<p>
About my check at the begining of TD, there is exactly the same code at the begining of MOLS... so what?
</p>
TicketncohenFri, 02 May 2014 10:36:24 GMT
https://trac.sagemath.org/ticket/16231#comment:16
https://trac.sagemath.org/ticket/16231#comment:16
<blockquote class="citation">
<p>
About my check at the begining of TD, there is exactly the same code at the begining of MOLS... so what?
</p>
</blockquote>
<p>
As I say, we can either include it now and remove it later or not do it, really it is up to you. I still consider this code as "being worked on" and everything in there is pretty new. For as long as it does not return wrong results, I do not mind if it is not "finished" given that I am working on it and that I know it will be patched soon <code>:-)</code>
</p>
<p>
Nathann
</p>
TicketncohenFri, 02 May 2014 10:37:36 GMT
https://trac.sagemath.org/ticket/16231#comment:17
https://trac.sagemath.org/ticket/16231#comment:17
<p>
Gosh... The branch on <a class="closed ticket" href="https://trac.sagemath.org/ticket/16277" title="enhancement: MOLS constructions rom the Handbook of Combinatorial Designs (closed: fixed)">#16277</a> will be awful. I have three dependencies which all have dependencies. There will be one thousand commit on the branch and actually only ONE which is just about that branch <code>:-P</code>
</p>
<p>
This would have been complicated with Mercurial I guess <code>^^;</code>
</p>
<p>
Nathann
</p>
TicketgitFri, 02 May 2014 12:16:55 GMTcommit changed
https://trac.sagemath.org/ticket/16231#comment:18
https://trac.sagemath.org/ticket/16231#comment:18
<ul>
<li><strong>commit</strong>
changed from <em>a9dce705211f5593b926c0512a40ada05d978ff3</em> to <em>8257178acf8691b62a4092538bcaed47e73b3953</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=8d8b928c909f4282903cf4bd561797cf736b6c3e"><span class="icon"></span>8d8b928</a></td><td><code>more documentation to orthogonal_arrays.py</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=8257178acf8691b62a4092538bcaed47e73b3953"><span class="icon"></span>8257178</a></td><td><code>remove MOLS construction for prime powers + doc</code>
</td></tr></table>
TicketvdelecroixFri, 02 May 2014 12:18:39 GMT
https://trac.sagemath.org/ticket/16231#comment:19
https://trac.sagemath.org/ticket/16231#comment:19
<p>
Hi Nathann,
</p>
<p>
I updated the code with what I proposed. Please check.
</p>
TicketncohenFri, 02 May 2014 12:24:20 GMT
https://trac.sagemath.org/ticket/16231#comment:20
https://trac.sagemath.org/ticket/16231#comment:20
<p>
Yooooooooooo !
</p>
<p>
I agree with everything. Well.
</p>
<p>
Except : Vincent, you are one of the guys who cannot stand to see
</p>
<pre class="wiki">if ___ :
return
else:
return
</pre><p>
I am the kind of guy who cannot stand to see
</p>
<pre class="wiki">if ___:
return
return
</pre><p>
Sooooooo could we coexist in the way that you don't change my writing unless you need to, and I don't change yours unless I need to ? <code>:-P</code>
</p>
<p>
Thaaaaaaanks. Good to go for me. And the constructions patch will be ready soon <code>:-)</code>
</p>
<p>
Nathann
</p>
TicketvdelecroixFri, 02 May 2014 12:27:47 GMT
https://trac.sagemath.org/ticket/16231#comment:21
https://trac.sagemath.org/ticket/16231#comment:21
<p>
Hi Nathann,
</p>
<p>
I like both, but have a preference for the second one. Anyway I started doing it because both kinds were present. I will revert to the way you like.
</p>
TicketncohenFri, 02 May 2014 12:31:24 GMT
https://trac.sagemath.org/ticket/16231#comment:22
https://trac.sagemath.org/ticket/16231#comment:22
<p>
Well it really doesn't matter, let's keep it as it is ! I just had many reviews on "you should not write it the way you like, write it the way I like instead" <code>:-P</code>
</p>
<p>
It's cool like that, we have more interesting wars to fight <code>:-D</code>
</p>
<p>
Nathann
</p>
TicketncohenFri, 02 May 2014 12:44:56 GMT
https://trac.sagemath.org/ticket/16231#comment:23
https://trac.sagemath.org/ticket/16231#comment:23
<p>
I just tested, and all tests pass. So if it is okay for you, it can go too <code>:-)</code>
</p>
<p>
Nathann
</p>
TicketgitFri, 02 May 2014 12:50:58 GMTcommit changed
https://trac.sagemath.org/ticket/16231#comment:24
https://trac.sagemath.org/ticket/16231#comment:24
<ul>
<li><strong>commit</strong>
changed from <em>8257178acf8691b62a4092538bcaed47e73b3953</em> to <em>d051cf4f127aa7c23c0b4a09ca12d4ecaf2caee6</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=d051cf4f127aa7c23c0b4a09ca12d4ecaf2caee6"><span class="icon"></span>d051cf4</a></td><td><code>ValueError -> EmptySetError in latin_squares</code>
</td></tr></table>
TicketvdelecroixFri, 02 May 2014 12:52:27 GMT
https://trac.sagemath.org/ticket/16231#comment:25
https://trac.sagemath.org/ticket/16231#comment:25
<p>
Added a trivial change for uniformization. Feel free to positive review it.
</p>
<p>
I will start <a class="closed ticket" href="https://trac.sagemath.org/ticket/16272" title="enhancement: redesign transversal designs (closed: fixed)">#16272</a> now.
</p>
<p>
Vincent
</p>
TicketncohenFri, 02 May 2014 12:57:28 GMT
https://trac.sagemath.org/ticket/16231#comment:26
https://trac.sagemath.org/ticket/16231#comment:26
<p>
Argggggggg...
Nononono don't ! I already began !
</p>
<p>
Nathann
</p>
TicketncohenFri, 02 May 2014 12:59:17 GMT
https://trac.sagemath.org/ticket/16231#comment:27
https://trac.sagemath.org/ticket/16231#comment:27
<p>
Okay with your test. So I set this to <code>positive_review</code>. About <a class="closed ticket" href="https://trac.sagemath.org/ticket/16272" title="enhancement: redesign transversal designs (closed: fixed)">#16272</a> : I am writing the part of the patch that changes True/False into True/False/Unknown. I already did it for BIBD. I can see this to the end then you can take the branch and add the non-existence results ? Is that okay for you ?
</p>
<p>
If you want to work on designs you can look at <a class="closed ticket" href="https://trac.sagemath.org/ticket/16277" title="enhancement: MOLS constructions rom the Handbook of Combinatorial Designs (closed: fixed)">#16277</a> in the meantime. The two tasks do not conflict.
</p>
<p>
Nathann
</p>
TicketncohenFri, 02 May 2014 13:01:34 GMTstatus changed; reviewer set
https://trac.sagemath.org/ticket/16231#comment:28
https://trac.sagemath.org/ticket/16231#comment:28
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>positive_review</em>
</li>
<li><strong>reviewer</strong>
set to <em>Vincent Delecroix</em>
</li>
</ul>
TicketvdelecroixFri, 02 May 2014 13:02:15 GMT
https://trac.sagemath.org/ticket/16231#comment:29
https://trac.sagemath.org/ticket/16231#comment:29
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/16231#comment:27" title="Comment 27">ncohen</a>:
</p>
<blockquote class="citation">
<p>
Okay with your test. So I set this to <code>positive_review</code>. About <a class="closed ticket" href="https://trac.sagemath.org/ticket/16272" title="enhancement: redesign transversal designs (closed: fixed)">#16272</a> : I am writing the part of the patch that changes True/False into True/False/Unknown. I already did it for BIBD. I can see this to the end then you can take the branch and add the non-existence results ? Is that okay for you ?
</p>
</blockquote>
<p>
Ok. I let you start. I am looking at the literature right now.
</p>
TicketgitSun, 04 May 2014 16:17:00 GMTstatus, commit changed
https://trac.sagemath.org/ticket/16231#comment:30
https://trac.sagemath.org/ticket/16231#comment:30
<ul>
<li><strong>status</strong>
changed from <em>positive_review</em> to <em>needs_review</em>
</li>
<li><strong>commit</strong>
changed from <em>d051cf4f127aa7c23c0b4a09ca12d4ecaf2caee6</em> to <em>35be2feadd00e268b36f835913ec7ec19ad86472</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=e86d26cb8126f3e557cc6a27b1727e2055f67321"><span class="icon"></span>e86d26c</a></td><td><code>trac #15310: Merged with 6.2.rc2</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=5cfee91760bd3b73d19ebc1318a94861d62b226f"><span class="icon"></span>5cfee91</a></td><td><code>trac #16227: Merged with updated #15310</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=35be2feadd00e268b36f835913ec7ec19ad86472"><span class="icon"></span>35be2fe</a></td><td><code>trac #16231: Merged with updated #16277</code>
</td></tr></table>
TicketgitSun, 04 May 2014 16:17:42 GMTcommit changed
https://trac.sagemath.org/ticket/16231#comment:31
https://trac.sagemath.org/ticket/16231#comment:31
<ul>
<li><strong>commit</strong>
changed from <em>35be2feadd00e268b36f835913ec7ec19ad86472</em> to <em>9e5e94f648113d6b824039651bcb8d98144e01b2</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=9e5e94f648113d6b824039651bcb8d98144e01b2"><span class="icon"></span>9e5e94f</a></td><td><code>trac #16231: Merged with updated #16227</code>
</td></tr></table>
TicketncohenSun, 04 May 2014 16:18:09 GMTstatus changed
https://trac.sagemath.org/ticket/16231#comment:32
https://trac.sagemath.org/ticket/16231#comment:32
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>positive_review</em>
</li>
</ul>
<p>
Still updating (and making mistakes in the commit messages)
</p>
Ticketvbraun_spamTue, 06 May 2014 15:20:58 GMTmilestone changed
https://trac.sagemath.org/ticket/16231#comment:33
https://trac.sagemath.org/ticket/16231#comment:33
<ul>
<li><strong>milestone</strong>
changed from <em>sage-6.2</em> to <em>sage-6.3</em>
</li>
</ul>
TicketvbraunWed, 07 May 2014 08:31:08 GMTstatus, branch changed; resolution set
https://trac.sagemath.org/ticket/16231#comment:34
https://trac.sagemath.org/ticket/16231#comment:34
<ul>
<li><strong>status</strong>
changed from <em>positive_review</em> to <em>closed</em>
</li>
<li><strong>resolution</strong>
set to <em>fixed</em>
</li>
<li><strong>branch</strong>
changed from <em>public/16231</em> to <em>9e5e94f648113d6b824039651bcb8d98144e01b2</em>
</li>
</ul>
Ticket