@Joachim, you are right about what you say, but I do not think it applies to the geometry module.
Everything below is just an opinion, moreover I am not the original author the the geometry module, so take it with a grain of salt. The geometry module was created as a tool for high school euclidean 2d geometry and it was never meant to be used in advanced abstract math or to work in any number of dimensions (e.g. nobody will use it for elliptical curves cryptography or for geometry over a field that is not the real numbers). We have two options to go forward: - generalize it to N dimensions (which is not what this gsoc project is doing and it will probably never be done (a completely new module is more realistic)) - make it work in 3D (what this project is doing and what I discuss below) Given that it is only 2d and 3d that we are working on, I think a minor amount of code duplication[1] is a good thing, as it will make the code simpler. [1] at least in the beginning: during code reviews we can see whether there is something worth abstracting away. Going back to the current work in progress: While I do not have a very strong opinion on the above, there is one thing I insist on. A large amount of `if 2d:... elif 3d:...` snippets is an obvious antipattern in an OO language. The current works has a lot of them and it was the reason for which we decided to push the conversation to the mailing list. On 23 May 2014 15:08, Joachim Durchholz <j...@durchholz.org> wrote: > What's the status of those things that exist in the same way regardless of > number of dimensions? > Things like calculating a volume, constructing an orthogonal base, > calculating distances - all the linear algebra stuff that applies to > geometry. > > Ideally, it would all be the same code base (or transformation rule set). > > I know nothing about the geometric module project or its goals, so I'm not > sure whether this kind of thing is even useful for the project, let alone > doable. > But I'd like to know. The question which of the various geometric ADTs and > algorithms transfer neatly to higher dimensions, which do not, and which are > mere analogies has been haunting me since high school, so I'm too curious to > not ask ;-) > > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sympy+unsubscr...@googlegroups.com. > To post to this group, send email to sympy@googlegroups.com. > Visit this group at http://groups.google.com/group/sympy. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/537F9CC3.5060501%40durchholz.org. > > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAD8szLzzvr4PvMRC8x0Rd%2B-6PR_NjPO0EQ3yBuKtUVjERSJ3Fw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.