Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge some MatrixObj work into master #2640

Merged
merged 16 commits into from
Aug 15, 2018

Commits on Aug 14, 2018

  1. MatrixObj: install fallback methods for m[i,j]

    These delegate to MatElm resp. SetMatElm, so that old MatrixObj
    implementations which only provide these old accessors can be used with the
    new m[i,j] syntax.
    
    Ideally, these will be removed again one day in the future, together with
    MatElm and SetMatElm.
    fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    080cecf View commit details
    Browse the repository at this point in the history
  2. MatrixObj: minor changes in matobj.xml

    ssiccha authored and fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    71f0f2e View commit details
    Browse the repository at this point in the history
  3. MatrixObj: don't define various Position* methods

    Note that the cvec package also installs methods for some of these, and should
    possibly be adjusted to avoid them
    
    We should also think about replacements. Perhaps there should be
    PositionLastNonZeroRow and PositionLastNonZeroColumn methods?
    
    Finally, why is PositionLastNonZero for (row) vectors
    in vecmat.gi, which contains code for GF2 vectors and matrices?
    fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    64b1979 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b5aefb0 View commit details
    Browse the repository at this point in the history
  5. MatrixObj: replace MakeMatrix by additional Matrix variants

    Also add ZeroMatrix and IdentityMatrix variants, and add lots of comments.
    fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    d1f4992 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4dcc361 View commit details
    Browse the repository at this point in the history
  7. MatrixObj: more declarations of Vector and generic methods

    This makes `Vector` the main interface function to create vector objects.
    frankluebeck authored and fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    3b066d5 View commit details
    Browse the repository at this point in the history
  8. MatrixObj: further work on constructors

    - get rid of IsCheckingVector and IsCheckingMatrix
    - update internal doc:
      - NewMatrix now additionally accepts a flat list
      - remove redundant comments
    ssiccha authored and fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    d07e221 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    bb83528 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    eba251d View commit details
    Browse the repository at this point in the history
  11. MatrixObj: if possible use PositionNonZero not PositionNot

    changed most library calls to PositionNot
    
    added attributes OneOfBaseDomain, ZeroOfBaseDomain,
    and generic methods for plist vectors and plist matrices
    ThomasBreuer authored and fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    cc2dd08 View commit details
    Browse the repository at this point in the history
  12. MatrixObj: Get rid of IsChecking* for IsPlist*Rep

    IsCheckingVector and -Matrix do checks like:
    - when doing v * s, check whether s in BaseDomain(v) holds. this
      can potentially be very expensive
    - check whether accessing or binding to illegal entries
    - check whether dimensions of matrices and vectors fit when doing
      AddRowVector etc.
    
    \* for IsPlist*Rep already checks whether dimensions match and
    whether the base domains are identical.
    
    Instead some checks could be done (like index out of bounds checks)
    on the kernel level.
    ssiccha authored and fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    8e4ce3f View commit details
    Browse the repository at this point in the history
  13. MatrixObj: Doc BaseDomain, Length

    ssiccha authored and fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    d95df3e View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    7460426 View commit details
    Browse the repository at this point in the history
  15. MatrixObj: some more tests

    fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    b3cd252 View commit details
    Browse the repository at this point in the history
  16. MatrixObj: added the implication IsMatrix => IsMatrixObj

    and dealt with some side-effects:
    
    - changed calls of `MatElm(m,i,j)` to `m[i,j]`
      where `MatElm` methods for plain lists of plain lists
      are missing
    
    - changed those method installations from
      `InstallMethod` to `InstallOtherMethod`
      that currently cause a warning about matching
      multiple declarations;
      in a later step, some of these declarations
      will get merged
    
    - changed calls of `BaseDomain` to calls of
      `OneOfBaseDomain` or `ZeroOfBaseDomain`
      where only the one or zero element are needed
    
    - added comments to `lib/matobj1.gd`
    ThomasBreuer authored and fingolfin committed Aug 14, 2018
    Configuration menu
    Copy the full SHA
    c193f63 View commit details
    Browse the repository at this point in the history