#16534: Basic Block design methods
-------------------------------------+-------------------------------------
Reporter: brett | Owner:
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-6.4
Component: combinatorial | Resolution:
designs | Merged in:
Keywords: Block Design, | Reviewers:
Incidence Structure, Residual, | Work issues:
Derived, Complement, Supplement, | Commit:
Union | 910b4370825c97971adf1320722162fce6b3c52c
Authors: Brett Stevens | Stopgaps:
Report Upstream: N/A |
Branch: u/brett/design |
Dependencies: #16553 |
-------------------------------------+-------------------------------------
Comment (by ncohen):
Helloooooooo Brett,
- Replaced the links to [Col2007] to links toward the existing
bibliographical
entry [DesignHandbook]. In order to link toward a bibliographical entry,
you
must type '[DesignHandbook]_'.
- Replaced {{{``complementary``}}} (appears as Python code) with
{{{*complementary*}}} appears in italic.
- Several lines contained what we call "trailing whitespaces". I removed
them,
which explains why some lines of my commit seem to make no modification
at
all.
- {{{int_points = frozenset(self._point_to_index[x] for x in
points).difference(points)}}}: leads to that:
{{{
sage: IncidenceStructure([['a','b','c']]).trace(['a','b']).blocks()
[['a', 'b']]
sage:
IncidenceStructure([['a','b','c']]).trace(['a','b'],delete=True).blocks()
[['a', 'b']]
}}}
I fixed it and added a doctest.
- Please do not leave commented lines in the code (unless you think we
might
need them later), e.g.
{{{
# from sage.combinat.combination import Combinations
}}}
- The following modifications is a bit incorrect, as what it describes is
a pair
of Python variables. I reverted it.
{{{
#!diff
- ``(boolean_answer,(t,v,k,l))``.
+ (boolean_answer,`(t,v,k,l)`).
}}}
- The implemented code of 'derived' does not match the definition. If
there are
repeated blocks you only remove one of them as you compare the indices.
Do
whatever you think is best, but please make the doc consistent with the
implementation.
- `derived` (and some other functions I believe) do not handle non-integer
ground sets:
{{{
sage:
IncidenceStructure([[1,2,3],['a','b','c'],['a','b']]).residual(at_block=['a','b','c'])
...
ValueError: ['a', 'b', 'c'] is not in list
}}}
- `keep_repeats` -- is this keyword different from the `simple` keyword
used
elsewhere?
- These objects are incidence structures, thus the exceptions should not
mention
a 'design'.
- {{{
sage: IncidenceStructure("abc",["ab"]).complement()
Incidence structure with 3 points and 0 blocks
}}}
I added a commit on top of yours at public/16534. Please mind corner-cases
in
your code (e.g. empty list of blocks, non-integer labels) and what
actually
happens in each command (useless copies of possibly big data).
Cheers,
Nathann
--
Ticket URL: <http://trac.sagemath.org/ticket/16534#comment:42>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.