Talk:Defactoring algorithms: Difference between revisions
Update |
Cmloegcmluin (talk | contribs) No edit summary |
||
| Line 15: | Line 15: | ||
:: Well I changed my mind. I decided to leave the contents of this dev-note- and research-style page as is, and start anew at ''Saturation, torsion, and contorsion/Methods'', since what I actually want is an encyclopedic article that is suitable for reference. I'm taking the liberty instead of moving this page to something like ''Research on defactoring algorithms''. [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 09:35, 9 February 2023 (UTC) | :: Well I changed my mind. I decided to leave the contents of this dev-note- and research-style page as is, and start anew at ''Saturation, torsion, and contorsion/Methods'', since what I actually want is an encyclopedic article that is suitable for reference. I'm taking the liberty instead of moving this page to something like ''Research on defactoring algorithms''. [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 09:35, 9 February 2023 (UTC) | ||
::: Hm. Well, as I said before, I'd really rather you not start anew, for the benefit of the community. Could we please first at least try to find a way together to make this article work in your eyes, then? (Note: by the end of this reply, I come to see things closer to the way you see them, but I'd like you to see my thought process.) | |||
::: I have no problem with presenting algorithms in pseudocode. Feel free to make that change. | |||
::: I certainly agree that the "Other defactoring methods" section is dev note and research related. Dave himself has recommended I leave out. So I can take that part out, no problem. | |||
::: As for the main "Defactoring methods" section, however, it seems we have a decision to make. We can either: | |||
:::: 1) consider column Hermite defactoring to be the only relevant method, and thus the info on the other two is dev notes, | |||
:::: 2) consider all three methods to be relevant, and thus none of them are dev notes. | |||
::: Personally, I think that it's clear that column Hermite defactoring is the only relevant method, and so the information on the other two should be taken out. | |||
::: (Why did Dave and I include them in the first place? As you can probably understand, and maybe you also remember: we were introducing our defactoring findings as part of a greater effort, including terminological reform, and a questioning of the usefulness of the EA branch of RTT. So we felt it was important to err on the side of caution, carefully providing all of our research, evidence, proofs, etc. At this point 15 months later, however, it does definitely seem a bit overkill.) | |||
::: However, I'm not certain you agree that column Hermite defactoring is superior, because you say: "The conclusion seems pretty subjective." I don't know which "conclusion" you're referring to, but my best guess is that you are referring to the statement, "Column Hermite defactoring is arguably the best defactoring algorithm". However, I don't understand how the rest of what you say on that pertains to this. You question whether Hermite decomposition is a "single operation". I don't recall stating in the article that it is a single operation. And I don't know or care whether it is. That doesn't seem relevant to the argument. | |||
:::: * Comparing column Hermite defactoring with the Pernet-Stein method, it's irrelevant because they have the same steps except Pernet-Stein has an extra step. | |||
:::: * Comparing with Smith defactoring it's irrelevant, because Smith defactoring's Smith decomposition is equivalent to repeated Hermite decomposition, as we explain here: "...the nature of Smith decomposition is to essentially repeatedly Hermite decompose from either angle until you've achieved Smith normal form, which is wasteful and unnecessary in this context, when all that is required is a single column-Hermite decomposition. This helps explain why column Hermite defactoring is more performant in general than Smith defactoring, when code is run against thousands of examples at a time." | |||
::: But perhaps you have a different understanding of the relationship between the Hermite and Smith decompositions that you could explain for me. I do not consider myself an expert from the math side of things. My conclusions, as you know, are based on a bit of math research and a lot of empirical testing with code. | |||
::: I do appreciate that I have a tendency to write articles on this wiki in a style that is less like an encyclopedia and more like a beginner's textbook. Of course, Wikipedia is an encyclopedia, per the "pedia" part, but in general, wikis don't have to be encyclopedic in style. I rather like how this article starts by getting the reader comfortable with the idea of enfactored mappings and comma bases. And I think it's good to include the brief "Finding the greatest factor" section at the end, too. | |||
::: Anyway, now as I go over the "New development: column Hermite defactoring" section, even if we decided this was the only method worth keeping here, I can see that you might find a lot of that information tedious, too: the "How/why it works" and "By hand" sections are both way more in my textbook style, less in your encyclopedic style. So, perhaps we should provide two separate resources, since there may be two different learning types which shouldn't be compromised together. That said: | |||
:::: * While it's fine with me if you think this article's title is misleading and needs to be changed, I don't think "Research on defactoring algorithms" is quite right. It's more than only that, particularly on account of the introduction for beginners, tutorials by example, proofs, etc. Perhaps it's more of a "Guide to defactoring". (Though I'm sorry it was not very helpful to you as a guide, that is certainly its intention, given its structure, style, and contents.) | |||
:::: * I recommend that you only need "Saturation, torsion, and contorsion/Method". Singular. That is, I think you only need to document column Hermite defactoring if you are doing a separate encyclopedic type article. | |||
::: --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 17:13, 9 February 2023 (UTC) | |||