Opened 7 years ago

Closed 7 years ago

#18097 closed enhancement (fixed)

Parity check matrix-related methods

Reported by: dlucas Owned by:
Priority: major Milestone: sage-6.6
Component: coding theory Keywords: sd66
Cc: jsrn Merged in:
Authors: David Lucas Reviewers: Vincent Delecroix
Report Upstream: N/A Work issues:
Branch: bcf4700 (Commits, GitHub, GitLab) Commit: bcf4700ee253600230d2bb268f39da99c5d5e4be
Dependencies: Stopgaps:

Status badges

Description (last modified by dlucas)

Computing the syndrome of a vector is useful for many things (eg: decoding) in coding theory, but linear code does not have any syndrome method.

Besides, actual parity-check matrix computation creates a new LinearCode object. It can be enhanced in a way where this new object is not created anymore.

Furthermore, linear_code does not have a latex method.

Change History (9)

comment:1 Changed 7 years ago by dlucas

  • Branch set to u/dlucas/new_methods_in_linear_code

comment:2 Changed 7 years ago by dlucas

  • Authors set to David Lucas
  • Cc jsrn added
  • Commit set to a323216099a43a1b697b67228966d479acf7e604
  • Description modified (diff)
  • Status changed from new to needs_review

comment:3 follow-up: Changed 7 years ago by vdelecroix

  • Status changed from needs_review to needs_info

Hello,

From what I understand from your examples, I guess that having no syndrome means that you belong to the code. If so, it would be cool to have it in the documentation.

I tried to see the path used by your syndrome method. It is quite complicated as it goes through the dual code. This is relatively fast on the small examples you have but might be a trouble if you rely intensively on this method later on. Isn't there something more efficient?

Does it make sense only for vectors in GF(2)? Otherwise, please add examples with more exotic finite fields.

Vincent

comment:4 Changed 7 years ago by git

  • Commit changed from a323216099a43a1b697b67228966d479acf7e604 to 7ccc3697013b26972ade7007b2bbf5b154779fed

Branch pushed to git repo; I updated commit sha1. New commits:

7ccc369Fixed doctests and code for syndrome

comment:5 in reply to: ↑ 3 Changed 7 years ago by dlucas

Hello,

I fixed docstring and doctests for syndrome method.

Regarding

I tried to see the path used by your syndrome method. It is quite complicated as it goes through the dual code. This is relatively fast on the small examples you have but might be a trouble if you rely intensively on this method later on. Isn't there something more efficient?

I removed this behaviour in my first commits, so I did not change anything in the new commit ;-)

comment:6 Changed 7 years ago by dlucas

  • Status changed from needs_info to needs_review

comment:7 Changed 7 years ago by git

  • Commit changed from 7ccc3697013b26972ade7007b2bbf5b154779fed to bcf4700ee253600230d2bb268f39da99c5d5e4be

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

bcf4700Fixed doctests and code for syndrome

comment:8 Changed 7 years ago by vdelecroix

  • Reviewers set to Vincent Delecroix
  • Status changed from needs_review to positive_review

All test pass. Good to go.

sided note: we notice at sage days 66 that matrices cache ther kernel! It is very weird but makes the solution in this ticket very fast

sage: m = random_matrix(GF(11), 4, 2)
sage: m.right_kernel() is m.right_kernel()
True

comment:9 Changed 7 years ago by vbraun

  • Branch changed from u/dlucas/new_methods_in_linear_code to bcf4700ee253600230d2bb268f39da99c5d5e4be
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.